edit: Schande über mich, habe vergessen dein Beitragstitel zuende zu schreiben: "Gesammtkosten mit unterschieldlichen Startwerten" sollte es eigentlich heißen. evtl. wäre ja ein Mod so freundlich
Nunja Moin,
ich bin ein absoluter php-Einsteiger und habe mir als ein "erstes" Ziel gesetzt einen Upgradekosten-rechner für ein MMo zu "schreiben".
Auf der Startseite befindet sich Folgendes Formular:
[spoiler]
[/spoiler]
Nun sollte es möglich sein für jeden Rüstungstyp ein Level auszüwählen und danach das aktuelle level und das Ziellevel.
Dafür habe ich die Upgradekosten in Arrays gelegt:
calculator.php sieht momentan so aus:
(Ich hab nicht alle Array kopiert, und noch nicht alle werte eingetragen)
Nun mein Hauptsächliches Problem leigt an der while schleife da unten. Ich kann zwar wenn ich vin lv 1 auf lv 10 Upgraden will das richtige ergebniss erzielen, aber sobald z.B. das startlevel 2 ist wird das ergebniss falsch.
z.B. von 9 auf 10 werden die Kosten für "auf 9" und "auf 10" addiert, anstelle, das nur die Kosten von 10 ausgegeben werden. Das Problem besteht nur, wenn "$startlevel" != 1 ist
Verzeit wenn ich mit der while schleife total daneben lag. Ich bin wie gesagt ein totaler eisnteiger und dachte anfangs sowas könnte ich schon "realisieren".
Ich hoffe ich komme mit dem Post nicht schlecht an und habe alles was ihr braucht um mir zu helfen angegeben.
btw. ich will kein fertiges Script, sondern nur eine Hilfe, an welcher Stelle ich falsch lag und eine Idee wie ich den Fehler ausbügeln kann. Außerdem hoffe ich, das mein Fehler nicht nur an einem falsch gesetzen Buchstaben oder Zeichen lag und da diesen Post jetzt sinnlos macht.
mfg Suralc
Nunja Moin,
ich bin ein absoluter php-Einsteiger und habe mir als ein "erstes" Ziel gesetzt einen Upgradekosten-rechner für ein MMo zu "schreiben".
Auf der Startseite befindet sich Folgendes Formular:
[spoiler]
Code:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Content <form METHOD="GET" ACTION="calculator.php"> <table cellspacing=20 cellpadding=0 border=0 style="background-color: #eeeeee;" width=220> <tr> <td align=left><strong>Typ</strong> <br /> <SELECT name="type"> <option value="armor_war" >Ruestung Krieger</option> <option value="armor_mage" >Ruestung Magier</option> <option value="armor_hunter" > Jaeger </option> </SELECT> </td> </tr> <tr> <td align=left><strong>Level</strong><br /> <SELECT name="rank"> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> </SELECT> <td align=left><strong>Aktuelles Upgradelevel:</strong><br /> <SELECT name="start_level"> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> <option value="4" >4</option> <option value="5" >5</option> <option value="6" >6</option> <option value="7" >7</option> <option value="8" >8</option> <option value="9" >9</option> <option value="10" >10</option> </SELECT> </td> </tr> <tr> <td align=left><strong>Zielupgrade:</strong><br /> <SELECT name="end_level"> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> <option value="4" >4</option> <option value="5" >5</option> <option value="6" >6</option> <option value="7" >7</option> <option value="8" >8</option> <option value="9" >9</option> <option value="10" >10</option> </SELECT>
Nun sollte es möglich sein für jeden Rüstungstyp ein Level auszüwählen und danach das aktuelle level und das Ziellevel.
Dafür habe ich die Upgradekosten in Arrays gelegt:
calculator.php sieht momentan so aus:
PHP-Code:
<?php
$type = $_GET['type'];
$rank = $_GET["rank"];
$start_level = $_GET["start_level"];
$end_level = $_GET["end_level"];
// Upgrade Kosten Warrior Armor Rank:
if ($type == "armor_war")
{
if ($rank == "1")
{
$kosten = array(
"1" => "0",
"2" => "8400",
"3" => "11800",
"4" => "16500",
"5" => "23100",
"6" => "32300",
"7" => "45200",
"8" => "63300",
"9" => "88600",
"10" => "124100");
}
elseif ($rank == "2")
{
$kosten = array( "1" => "0",
"2" => "8400",
"3" => "11800",
"4" => "16500",
"5" => "23100",
"6" => "32300",
"7" => "45200",
"8" => "63300",
"9" => "88600",
"10" => "124100");
}
elseif ($rank == "3")
{
$kosten = array( "1" => "0",
"2" => "8400",
"3" => "11800",
"4" => "16500",
"5" => "23100",
"6" => "32300",
"7" => "45200",
"8" => "63300",
"9" => "88600",
"10" => "124100");
}
elseif ($rank == "4")
{
$kosten = array( "1" => "0",
"2" => "8400",
"3" => "11800",
"4" => "16500",
"5" => "23100",
"6" => "32300",
"7" => "45200",
"8" => "63300",
"9" => "88600",
"10" => "124100");
}
elseif ($rank == "5")
{
$kosten = array( "1" => "0",
"2" => "8400",
"3" => "11800",
"4" => "16500",
"5" => "23100",
"6" => "32300",
"7" => "45200",
"8" => "63300",
"9" => "88600",
"10" => "124100");
}
elseif ($rank == "6")
{
$kosten = array( "1" => "0",
"2" => "8400",
"3" => "11800",
"4" => "16500",
"5" => "23100",
"6" => "32300",
"7" => "45200",
"8" => "63300",
"9" => "88600",
"10" => "124100");
}
}
elseif ($type == "armor_mage")
{
$kosten = array( "1" => "0",
"2" => "8400",
"3" => "11800",
"4" => "16500",
"5" => "23100",
"6" => "32300",
"7" => "45200",
"8" => "63300",
"9" => "88600",
"10" => "124100");
}
elseif ($type == "armor_hunter")
{
$kosten = array( "1" => "0",
"2" => "8400",
"3" => "11800",
"4" => "16500",
"5" => "23100",
"6" => "32300",
"7" => "45200",
"8" => "63300",
"9" => "88600",
"10" => "124100");
}
usw...
$startlevel = $_GET["start_level"];
$endlevel = $_GET["end_level"];
$eins = 1;
$endlevela = $endlevel + $eins;
while($endlevela > $startlevel)
{
$gesammtkosten = $kosten["$startlevel"] + $gesammtkosten;
$startlevel++;
}
?>
Nun mein Hauptsächliches Problem leigt an der while schleife da unten. Ich kann zwar wenn ich vin lv 1 auf lv 10 Upgraden will das richtige ergebniss erzielen, aber sobald z.B. das startlevel 2 ist wird das ergebniss falsch.
z.B. von 9 auf 10 werden die Kosten für "auf 9" und "auf 10" addiert, anstelle, das nur die Kosten von 10 ausgegeben werden. Das Problem besteht nur, wenn "$startlevel" != 1 ist
Verzeit wenn ich mit der while schleife total daneben lag. Ich bin wie gesagt ein totaler eisnteiger und dachte anfangs sowas könnte ich schon "realisieren".
Ich hoffe ich komme mit dem Post nicht schlecht an und habe alles was ihr braucht um mir zu helfen angegeben.
btw. ich will kein fertiges Script, sondern nur eine Hilfe, an welcher Stelle ich falsch lag und eine Idee wie ich den Fehler ausbügeln kann. Außerdem hoffe ich, das mein Fehler nicht nur an einem falsch gesetzen Buchstaben oder Zeichen lag und da diesen Post jetzt sinnlos macht.
mfg Suralc
Kommentar