Ein kleines Kampfscript - nur wie? :D

So.
Also hier das Konzept, hoffe auf Hilfe, konnte nciht wirklich durchsteigen.
Mir fehlt der Ansatz zum Programmieren, und ich weiß nicht wie ich das am besten mache.


Einstellungen durch den Spieler

Der User kauft sich ein Tier.
Stellt die Eigenschaften seines Tieres ein.

Eigenschaft A --> sagen wir HP (Lebenspunkte)
Eigenschaft B --> sagen wir Agilität
Eigenschaft C --> sagen wir Gift
Eigenschaft D --> sagen wir Ausdauer(Verteidigung halt)

Er kann auf diese Eigenschaften Malus, Normal u. Bonus verteilen.
Also Beispiele wären:

Eigenschaft A - Malus —> 6 HP

Eigenschaft A - Normal —> 8 HP

Eigenschaft A - Bonus —> 10 HP

Hoffe das ist so klar, das gleiche natürlich auch mit den anderen Eigenschaften. Natürlich wird es eine Begrenzung geben, sonst könnte man ja überall Boni vergeben.

So, nach den Eigenschaften, kommen wir zu den Befehlen.
Der Spieler stellt noch für 5 Runden die Befehle seines Tieres ein.

Befehl a --> sagen wir Giftangriff
Befehl b --> sagen wir Schwitzkasten
Befehl c --> sagen wir Biss

Jetzt stellt der Held ein, in welcher Runde sein Tier was tun soll.
Zum Beispiel:

  1. Runde —> Schwitzkasten
  2. Runde —> Biss
  3. Runde —> Biss
  4. Runde —> Giftangriff
  5. Runde —> Giftangriff

Der Spielablauf

Es wird eine Startzahl festgelegt. Sobald es genügend Anmeldungen gibt, startet der Kampfscript. Sagen wir mal bei 32 (sollte variabel sein).
Jedes Tier sucht sich einen Gegner. Es kämpfen dann jeweils 2 Tiere gegeneinander. Der Gewinner schreitet voran und sucht sich ein weiteres Tier zum Fighten. Bis am Ende eine bestimmte Anzahl an Tieren da ist (sollte auch variabel sein). Diese Tiere sind die Gewinner. Die Besitzer bekommen dann ein Preisgeld.

Kampfablauf

So, und die Effektivität dieser Befehle werden dann folgendermaßen bestimmt:

Schwitzkasten = (Ausdauer + Agilität) * Zufallswert zwischen 1 u. 2
usw.

und der Verteidiger, dann z.B. gegen Schwitzkasten:

Verteidigung gg. Schwitzkasten = (Agilität + Ausddauer) * Zufallswert zw. 1 u. 2

Nun, und jetzt, natürlich, wer kommt vorher dran?
Jeder hat seine 5 Rundenbefehle.
Nun, das läuft dann sozusagen über Schere-Stein u. Papier.

Giftangriff schlägt Schwitzkasten --> Der mit Giftangriff kommt vorher dran

Schwitzkasten schlägt Biss

Biss schlägt Giftangriff

Ja, und was ist wenn sie in Runde 1 z.B. den gleichen Befehl haben?
Dann wird der Counter einfach hochgesetzt. Also es geht dann mit den Befehlen der Runde 2 weiter, usw.
Es kann ja aber auch sein, dass sie alle 5 Befehle gleich haben. Dann wird per Zufall einem ein HP-Punkt abgezogen. So lange bis dann letztendlich einer stirbt.
Ach ja, nach Runde 5, wird der Counter einfach wieder auf Befehl für Runde 1 gesetzt.


Hoffe das ist verständlich genug.
Also an alle Leute, die vielleicht irgendwelche Zweifel haben.
Ich verfolge keine kommerziellen Ziele.
Diese Idee wurde von mir zum Üben ausgedacht, allerdings bin ich an der Umsetzung gescheitert. Deshalb wollte ich euch, die schlauen Köpfe hier fragen.

mfg
CCFly

So.
Also hier das Konzept, hoffe auf Hilfe, konnte nciht wirklich
durchsteigen.
Mir fehlt der Ansatz zum Programmieren, und ich weiß nicht wie
ich das am besten mache.

*snip* (langes konzept) */snip*

Hoffe das ist verständlich genug.
Also an alle Leute, die vielleicht irgendwelche Zweifel haben.
Ich verfolge keine kommerziellen Ziele.
Diese Idee wurde von mir zum Üben ausgedacht, allerdings bin
ich an der Umsetzung gescheitert. Deshalb wollte ich euch, die
schlauen Köpfe hier fragen.

ja okay - und was fragst Du nun?
Willst Du wirklich, dass Dir jemand ein etwa 30-50kb grosses Script schreib, das Deine Wünsche umsetzt?
Es gibt genug dieser Kampfspiele die aber halt dann nicht mit Gift oder sonst was angreifen sondern einfach nur mit hoher schlag, mittlerer Schlag, niedriger Schlag…
Das Hauptproblem muss eigentlich dabei die grafische umsetzung sein, und weil das nur Flash in richtig schöner Art umsetzen kann wirst Du hier auch Pech haben…

ja okay - und was fragst Du nun?
Willst Du wirklich, dass Dir jemand ein etwa 30-50kb grosses
Script schreib, das Deine Wünsche umsetzt?
Es gibt genug dieser Kampfspiele die aber halt dann nicht mit
Gift oder sonst was angreifen sondern einfach nur mit hoher
schlag, mittlerer Schlag, niedriger Schlag…
Das Hauptproblem muss eigentlich dabei die grafische umsetzung
sein, und weil das nur Flash in richtig schöner Art umsetzen
kann wirst Du hier auch Pech haben…

Nein, das will ich nicht.
Ich will wissen, wie ich dieses Problem am besten angehe, wie ich es am besten mache.
Sag mir z.B. haue es in eine Datenbank rein, benutze Arrays, hier foreach, dort while, usw.

Re^3: Ein kleines Kampfscript - nur wie? :smiley:

Nein, das will ich nicht.

naja, dann sag das doch auch :wink:
weil schau mal - Du musst schon mal ne useridentifikation einbauen - dann eine registrierungsprozedur und und und…

Ich will wissen, wie ich dieses Problem am besten angehe, wie
ich es am besten mache.

da hat jeder seine eigenen Techniken - eine universallösung gibts da nicht.

Sag mir z.B. haue es in eine Datenbank rein,

dazu musst Du erst mal zur Datenbank connecten
mysql_connect($servername,$username,$passwort);
danach die datenbank selectieren
mysql_select_db($datenbank);
danach den SQL-Befehl absetzen
z.B.
mysql_query("insert into $tabellenname set rasse=’$rasse’, wert1=’$wert1’…);

benutze Arrays,

erstellen
weg1:
$array[schlüssel1] = „wert1“;
$array[schlüssel1] = „wert2“;
weg2:
$array = array();
$array[] = „wert1“;
$array[] = „wert2“;
weg3:
$fruits = array (
„Früchte“ => array („a“=>„Orange“, „b“=>„Banane“, „c“=>„Apfel“),
„Zahlen“ => array (1, 2, 3, 4, 5, 6),
„Löcher“ => array („erstes“, 5 => „zweites“, „drittes“)
);
auslesen:
echo $array[0];
echo $array[‚a‘];

hier foreach, dort while, usw.

foreach gibts nicht - aber while each
$fruit = array(‚a‘ => ‚Apfel‘, ‚b‘ => ‚Banane‘, ‚c‘ => ‚Preiselbeere‘);

reset ($fruit);
while (list ($key, $val) = each ($fruit)) {
echo „$key => $val\n“;
}

noch ein Beispiel

$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
und noch eins
for ($i = 0;$i ";
}

aber solche Grundlegenden Fragen sind eigentlich eher was für http://www.php.net
Du kennst die meisten Befehle scheinbar eh schon, also kannst Du da auch gezielt danach suchen

hehe glaube wir reden nur aneinander vorbei :smile:)

Ich weiß wie Arrays aufgebaut sind, wie ich eine Datenbank anspreche, usw.

Mir geht es darum, dass mir jemand/du sag(s)t wie ich das Script aufbauen könnte.

Also am besten wie?
Zum Beispiel, dass ich die Werte a in eine Tabelle einfügen soll, oder dann irgendwelche ausgegebene Werte über eine while-Schlife in ein Array, dort dann auswerten lassen.
So was meine ich.
Ich beschäftige mich jetzt seit ca. 3 Monaten hobbymäßig mit PHP.

Also die genannten Begriffe sind für mich alles bekannte Sachen, aber es kann auch sein, dass ich irgendwo Lücken habe.
Ich weiß halt nicht wie ich das Kampfscript am besten angehen sollte.

Ach ja, Login oder Registrierung oder so brauche ich nicht,

  1. ich habe diese Kompenenten schon mal programmiert
  2. geht es hier um den Kampfscript, sonst um gar nichts.

hier foreach, dort while, usw.

foreach gibts nicht - aber while each

doch foreach gibt es :wink:

Hallo

Perl-ähnlich ist einen Foreach-Anweisung, besonders nützlich im Zusammenhang mit Arrays.

foreach( as )
{

}

Speichert den ersten Wert des Arrays in der Temporärvariable und führt den Schleifeninhalt aus. So kann man z.b. einen Array besonders schön ausgeben:
foreach($myarray as $myvariable)
{
echo "$myvariable, ";
}

Beachten Sie dass foreach offensichtlich einen PHP-internen Cursor im Array verwendet, wenn Sie foreach in einer rekursiven Funktion auf ein globales Array anwenden, dann verreckt die Rekursion genau an der Stelle. Verwenden Sie dann lieber whiles (mit lokalen Zählern) oder lokale Arrays.

cu

Tja, da wirst du wahrscheinlich selber denken müssen. Programmier es doch erst einmal so, wie du es denkst, und wenn du dann scheiterst, frag wieder nach. Weil solche allgemeinen Fragen kann man einfach nicht beantworten.

Als Tipp würde ich dir Objektorientierte Programmierung empfehlen, und du musst halt deine Tiere und Spieler in einer Datenbank speichern, die Veränderung in den Werten berechnen und dann wieder speichern. Da ich deine ewig lange Erläuterung nur überflogen habe, kann ich dir leider auch nciht genau antworten, aber wie gesagt: Du musst schon ein konkretes Problem haben, damit man dir helfen kann.