Hi!
Ich hab neulich auf meinem Server ein Kampfsystem gefunden... doch ich habe es nie fertig gemacht!
Es fehlt noch ein Computergesteuerter Gegner!
Nun wollte ich von euch wissen... könnte das kleine Kampfsystem etwas Spass machen, wenn ich es fertig mache? Wenn ja, dann werd ich vielleicht mal weiterbauen...
(Ich wollte das mal für den Marti95. machen, der könnte euch bekannt sein ^^)
Hier erstmal die Adresse...
Fight
(wundert euch nicht, dass ihr direkt 4 Fehlermeldungen bekommt, das sind nur Notices, weil bestimmte Variablen nur zu Beginn ungesetzt sind)
Und hier natürlich der Code:
kampf.php
PHP-Code:
<?php
session_start();
?>
<html>
<head>
<style type="text/css">
BODY {background-color:#333333; color:#FFFFFF;}
TD {border:1px solid #666666;}
</style>
<title>Fight</title>
</head>
<body>
<?php
error_reporting(E_ALL);
include 'functions.php';
$round = (int)$_SESSION['round'];
$s_leben = (int)$_SESSION['s_leben'];
$c_leben = (int)$_SESSION['c_leben'];
$s_concentrate = (int)$_SESSION['s_concentrate'];
$c_concentrate = (int)$_SESSION['c_concentrate'];
@$action_type = $_POST['action_type'];
@$action_num = (int)$_POST['action_num'];
$s_atk = 216;
$s_def = 285;
$c_atk = 245;
$c_def = 209;
$s_max_leben = 386;
$c_max_leben = 347;
if (empty($action_type)) {
unset($round);
}
if (empty($round)) {
$round = 1;
$s_leben = $s_max_leben;
$s_leben = $s_max_leben;
$action_type = 'none';
$s_concentrate = 80;
$c_concentrate = 80;
}
echo "<b>Runde $round!</b><br><br>";
if ($action_type == 'none') {
$s_wert = 0;
$c_wert = 0;
}
if ($action_type == 'active') {
switch($action_num) {
case 1: $s_wert = wert_1($s_atk); break;
case 2: $s_wert = wert_2($s_atk); $s_concentrate=$s_concentrate-6; break;
case 3: $s_wert = wert_3($s_atk); $s_concentrate=$s_concentrate-22; break;
case 4: $s_wert = wert_4($s_atk); $s_concentrate=$s_concentrate-40; break;
}
}
if ($action_type == 'neutral') {
switch($action_num) {
case 1: $s_wert = wert_x($s_def); $s_concentrate+=rand(4,7); break;
case 2: $s_wert = wert_x($s_def); $s_concentrate=$s_concentrate-10; $s_leben += $s_max_leben/10; if ($s_leben>$s_max_leben) {$s_leben = $s_max_leben;} break;
case 3: $s_wert = wert_3($s_def)-$s_def; $s_concentrate+=rand(15,22); break;
case 4: $s_wert = wert_3($s_def)-$s_def; $s_concentrate=$s_concentrate-10; $s_leben += $s_max_leben/5; if ($s_leben>$s_max_leben) {$s_leben = $s_max_leben;}; break;
}
}
if ($action_type == 'passive') {
switch($action_num) {
case 1: $s_wert = $s_def; break;
case 2: $s_wert = wert_2($s_def); $s_concentrate=$s_concentrate-5; break;
case 3: $s_wert = wert_3($s_def); $s_concentrate=$s_concentrate-21; break;
case 4: $s_wert = wert_3($s_def)+wert_3($s_def); $s_concentrate=$s_concentrate-36; break;
}
}
$s_prozent = $s_leben/($s_max_leben/100);
?>
<img alt="Energie" title="Energie" src="herz.gif" border="0"> <?php echo "$s_leben/$s_max_leben ($s_prozent%)"; ?><br>
<img alt="ATK-Wert" title="ATK-Wert" src="atk.gif" border="0"> <?php echo $s_atk; ?><br>
<img alt="DEF-Wert" title="DEF-Wert" src="def.gif" border="0"> <?php echo $s_def; ?><br>
<img alt="Konzentration" title="Konzentration" src="funkel.gif" border="0"> <?php echo $s_concentrate; ?><br><br><br>
<table>
<tr><td colspan=3><b>Agressiv</b></td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="active">
<input type="hidden" value="1" name="action_num">
<input type="submit" value="Angriff"></form>
</td><td>Du greifst unkonzentriert mit deinem Standard-ATK Wert an!
</td><td><img src="funkel.gif" border="0"> 0
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="active">
<input type="hidden" value="2" name="action_num">
<input type="submit" value="Kick"<?php if ($s_concentrate < 6) echo ' disabled'; ?>></form>
</td><td>Mit dem Fuß hast du etwa 10% mehr Kraft, allerdings brauchst du auch Balance.
</td><td><img src="funkel.gif" border="0"> 6
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="active">
<input type="hidden" value="3" name="action_num">
<input type="submit" value="Haken"<?php if ($s_concentrate < 22) echo ' disabled'; ?>></form>
</td><td>Ein gezielter Schlag auf verwundbare Stellen richtet etwa 40% mehr Schaden an!
</td><td><img src="funkel.gif" border="0"> 22
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="active">
<input type="hidden" value="4" name="action_num">
<input type="submit" value="Punch"<?php if ($s_concentrate < 40) echo ' disabled'; ?>></form>
</td><td>Warte den richtigen Augenblick ab und schlag mit voller Kraft zu!<br>Du triffst deinen gegner mit dem doppeltem ATK-Wert, also 100% stärker!
</td><td><img src="funkel.gif" border="0"> 40
</td></tr>
<tr><td colspan=3><b>Passiv</b></td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="neutral">
<input type="hidden" value="1" name="action_num">
<input type="submit" value="Konzentrieren"></form>
</td><td>Du erhälst ein paar Konzentrationspunkte und wehrst mit etwa 80% deines DEF-Wertes ab.
</td><td><img src="funkel.gif" border="0"> <font color="green">4-7</font>
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="neutral">
<input type="hidden" value="2" name="action_num">
<input type="submit" value="Heilung"<?php if ($s_concentrate < 10) echo ' disabled'; ?>></form>
</td><td>Du erhälst 10% deiner maximalen Energie zurück und wehrst mit etwa 80% deines DEF-Wertes ab.
</td><td><img src="funkel.gif" border="0"> 10
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="neutral">
<input type="hidden" value="3" name="action_num">
<input type="submit" value="Hochkonzentration"></form>
</td><td>Du bekommst einige Konzentrationspunkte und wehrst mit etwa 40% deines DEF-Wertes ab.
</td><td><img src="funkel.gif" border="0"> <font color="green">15-22</font>
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="neutral">
<input type="hidden" value="4" name="action_num">
<input type="submit" value="Risiko-Heilung"<?php if ($s_concentrate < 10) echo ' disabled'; ?>></form>
</td><td>Ein Notfall-Risiko... du bekommst zwar 20% deiner maximalen Energie zurück,<br>wehrst aber nur mit etwa 40% deiner Verteidigung ab!
</td><td><img src="funkel.gif" border="0"> 10
</td></tr>
<tr><td colspan=3><b>Defensiv</b></td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="passive">
<input type="hidden" value="1" name="action_num">
<input type="submit" value="Verteidigen"></form>
</td><td>Du wehrst mit deime DEF-Wert ab.
</td><td><img src="funkel.gif" border="0"> 0
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="passive">
<input type="hidden" value="2" name="action_num">
<input type="submit" value="Ausweichen"<?php if ($s_concentrate < 5) echo ' disabled'; ?>></form>
</td><td>Schau auf deinen Gegner! Somit kannst du mit etwa 10% mehr DEF ausweichen!
</td><td><img src="funkel.gif" border="0"> 5
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="passive">
<input type="hidden" value="3" name="action_num">
<input type="submit" value="Technik-Abwehr"<?php if ($s_concentrate < 21) echo ' disabled'; ?>></form
></td><td>Mit der richtigen Technik kannst du den Angriff um etwa 40% besser abwehren.
</td><td><img src="funkel.gif" border="0"> 21
</td></tr>
<tr><td><form action="#" method="post"><input type="hidden" name="action_type" value="passive">
<input type="hidden" value="4" name="action_num">
<input type="submit" value="Vorausdenken"<?php if ($s_concentrate < 36) echo ' disabled'; ?>></form>
</td><td>Konzentriere dich völlig auf deinen gegner, um seine Bewegungen einschätzen zu können!<br>Somit kannst du mit etwa dem dreifachen DEF-Wert abwehren! (280% um genau zu sein)
</td><td><img src="funkel.gif" border="0"> 36
</td></tr>
</table>
<?php
if ($action_type == 'active') $type='aggressiv';
if ($action_type == 'passive') $type='Defensiv';
if ($action_type == 'neutral') $type='Neutral';
if ($action_type == 'none') $type='-';
echo "Dein Aktionstyp: $type<br>";
echo "Dein Wert: $s_wert";
// FLUSH //
$round++;
$_SESSION['round'] = $round;
$_SESSION['s_leben'] = $s_leben;
$_SESSION['c_leben'] = $c_leben;
$_SESSION['s_concentrate'] = $s_concentrate+rand(2,5);
$_SESSION['c_concentrate'] = $c_concentrate+rand(2,5);
?>
<br><form action="#" method="post">
<input type="submit" value="Neustart"></form>
</body>
</html>
Dazu fehlen noch ein paar Funktionen, die sind hier:
functions.php
PHP-Code:
<?php
function wert_1($atk) {
$tp = $atk/10;
$tp = $tp*2;
$toleranz = rand(-$tp,$tp);
return round($atk+$toleranz);
}
function wert_2($atk) {
$tp = $atk/10;
$atk += $tp;
$tp = $atk/10;
$tp = $tp*2;
$toleranz = rand(-$tp,$tp);
return round($atk+$toleranz);
}
function wert_3($atk) {
$tp = $atk/10;
$tp = $tp*4;
$atk += $tp;
$tp = $atk/10;
$tp = $tp*2;
$toleranz = rand(-$tp,$tp);
return round($atk+$toleranz);
}
function wert_4($atk) {
$atk += $atk;
$tp = $atk/10;
$tp = $tp*2;
$toleranz = rand(-$tp,$tp);
return round($atk+$toleranz);
}
function wert_x($atk) {
$tp = $atk/10;
$tp = $tp*2;
$atk = $atk-$tp;
$tp = $atk/10;
$tp = $tp*2;
$toleranz = rand(-$tp,$tp);
return round($atk+$toleranz);
}
?>
Hier noch etwas Kleinsch**ß zum besseren Verständnis:
Buchstaben s und c in den Variablen bedeuten Spieler und Computer! Diese Variablen könnten z.B. aus einer Datenbank ausgelesen werden!
bei action_num und action_type ist kein Kürzel davor, weil der Computer ja direkt im Script aggieren kann, und nichts per Formular übergeben muss ^^
die wert_1(), wert_2(), ... -funktionen Dienen nur zum Erstellen einer %-Zahl, um die der Wert erhöht wird und einen Toleranzwert... von 20%
so... hier beantworte ich auch gleich mal eine eventuelle Frage:
Was bedeutet der Aktionstyp und der Wert?
Mit dem Aktionstyp und dem Wert wird Schaden ermittelt, und zwar so:
Es gibt den Aktionstyp Defensiv (Passiv ist auch quasi defensiv) und Aktiv (oder Agressiv, weiss nichtmehr) und wenn der Spieler eine "passive" oder eine "neutrale" Aktion ausführt, dann ist der Aktionstyp defensiv, d.h. dass der Spieler dem Gegner KEINEN Schaden zufügen kann, aber dafür einen höheren Wert hat... zum Thema Wert gibts gleich mehr!
Wenn der Aktionstyp wiederrum Aktiv/Agressiv ist, dann kann der Spieler dem Gegner Schaden zufügen...
Jetzt mehr zum Wert:
Es muss natprlich auch ein Wert her... weil wenn der Spieler z.B. mit dem Wert 200 "defensiv" aggiert, aber der Gegner mit einem Wert von 300 "agressiv", dann werdem dem Spieler 100 Punkte an Leben abgezogen (300 - 200, also die Differenz der Werte). Hätte der Spieler allerdings einen defensiven Wert von 300 gehabt, und der Gegner einen von 200, dann wäre überhaupt kein Schaden abgezogen worden, da derjenige mit dem höheren Wert DEFENSIV aggiert hat...
ich hoffe, das versteht ihr!
bitte um Feedback 