• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

[Veraltet] wie simuliere ich die kämpfe ?

DeletedUser

Gast
ich bin drann selber ein browsergame zu programieren und habe keine ahnung wie man die kämpfe simuliert .... wie kann man , oder mit welchen formeln kann ich das berechnen ?

:) bitte um hilfe vllt mit beispielen aus "die staemme"
 

DeletedUser

Gast
ich bin drann selber ein browsergame zu programieren und habe keine ahnung wie man die kämpfe simuliert .... wie kann man , oder mit welchen formeln kann ich das berechnen ?

:) bitte um hilfe vllt mit beispielen aus "die staemme"
Schau doch mal in einer Formelsammlung :mrgreen:
Oder überlege dir selber eine Formel^^
 

DeletedUser

Gast
welche formelsamung? wo finde ich die?

und selber eine ausdenken ist auc nicht einfach, muss bischen realistisch wirken
 

DeletedUser

Gast
dann nehm die zeit und überleg dir was o_O
und nein, ich nehme dir nicht die FoSu für das ds-system ab :S
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
schade, aber war i-wie schon klar dass es darauf hinläuft....könnte ich vllt kleinetipps bekommen, wie ich das am bessten mache? jemand der erfahrung hat könnte hier schon helfen.
möglicherweise punkte nennen, wo es bei dem verfahren probleme gab?
 

DeletedUser

Gast
Nimm dir nen Array, pack da alle Infos rein von deinen Einheiten wie z.B. Angriffs-Kraft bzw. Verteidigungskraft...
Dann machst du dir dein Formular fertig mit Input-Feldern, gibst den Input-Feldern namen wie z.B. "unit_one" das musst du nicht manuell machen, sondern einfach den Namen deiner Einheiten mit ins Array packen und dann mit $array['unit_name'] per foreach(); auslesen...
 

DeletedUser

Gast
[SPAM]
Soviele Browsergames.... wer soll die alle spielen? :mrgreen:
[/SPAM]

@topic: Guck dir mal das Kampfsystem von Ogame an das ist rundenbasiert, bei DS isses jetzt auch rundenbasiert.

MfG
dispy
 

DeletedUser

Gast
genau das meinte ich auch: einige einheiten haben vorrang gegenüber einer bestimmten anderen einheit. sie sollen nicht den ersten in der liste besiegen und dann erst zum nächsten übergehen, sondern gleihzeitig oder so kämpfen....
es soll ein "durcheinander" simuliert werden

also ich mach mir noch paar gedanken darüber, mal schauen was daraus wird^^
 

DeletedUser

Gast
liest du eigentlich wirklich nicht was man dir antwortet? Hast du die Forumssuche benutzt? sieht eher nicht so aus :S

@früchtchen: die eigeninitiative sollte man von jmd. der progrmaieren lernen will erwarten, dass falls er nicht weiß was FoSu bedeutet dies herausfindet
 

DeletedUser

Gast
@früchtchen: die eigeninitiative sollte man von jmd. der progrmaieren lernen will erwarten, dass falls er nicht weiß was FoSu bedeutet dies herausfindet

Es wurden keine Definitionen von FoSu in Deutsch gefunden.

Definitionen von FoSu im Web in Englisch:
* Fosu is a town in Ghana. It is the capital of Assin district.
en.wikipedia.org/wiki/Fosu


Und per Forensuche nach FoSu zu suchen ist zu paranoid. :)
 

DeletedUser

Gast
bevor ich das erste mal im DS Forum war, kannte ich auch noch kein FoSu, ich glaub das lese ich heut das erste mal.

Mir sind bis jetzt auch nur die Begriffe SuFu (Such Funktion) und NavFu (Nicht in phpBB Foren zu finden: Navigations Funktion)

Hier mal ne kleine Formel, die ich mir grade live zurecht rechne :)

PHP:
function kampf($type, $off = 0, $deff = 0, $boni = 0) {
  if($type == "Angriff")
    $off += $boni;

  if($type == "Verteidigung")
    $deff += $boni;

  if($off > $deff)
   return $off - $deff;

  if($deff > $off)
   return $deff - $off;

  if($deff == $off)
   return 0;
}

// zu verwenden wie Folgt:
// Ich greife an, mit Einheit welche 25 off hat
// Verteidiger hat einheit mit 30 deff
// da ich Feind im Wald (oder während nacht attakiere) bekomme ich 10 Zusatz Punkte für Angriff
$ergebnis = kampf("Angriff", 25, 30, 10);

// $ergebnis ist in diesem fall: 25+10 - 20 = 15

if($ergebnis > 0) {
  echo "<span>Sie haben den Sieg errungen</span>";
} else {
  echo "<span>Sie haben verloren (n00b)</span>";
}

is echt einfach, man könnte das Script noch auf mehrere Einheiten umprogrammieren, aber für BG's würde ich Klassen Design vorschlagen.

Wenn du dich mit PHP Klassen und MySQL auskennst, könnte ich mir gut vorstellen, das du es schaffen könntest. (fragt sich bloß noch wann)
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
alles klar, danke fürs erste.....der beispiel ist zwar sehr stark vereinfacht, aber ich kann damit schon was anfangen!
 

DeletedUser

Gast
Im Endeffekt solltest du eine Kombination aus dem obigen Script und einer MySQL-Tabelle basteln.In der Tabelle werden den Einheiten ihre off-und deffwerte zugeordnet,mit dem Script von SourceR85 wird dann gekämpft.
Für dein BG würde ich dir OOP ans Herz legen.

Lg
 

DeletedUser

Gast
und wie ist es besser zu machen: für jede einzelne einheit eine neue spalte in der datenbank anlegen, oder für jeden einheitentype eine spalte wo ich halt die anzahl der einheiten eintrage wieviele ich bereits habe?
 

DeletedUser

Gast
Eine Tabelle,in der du die Einheiten als Datensätze mit den entsprechenden Werten zufügst,wäre denke ich mal,sinnvoll.Wenn du willst,das Tag und Nachtbonuse zufällig gegeben werden,kannst du ja auch noch dafür eine Tabelle anlegen und dann mit :
PHP:
function mysqlrandom($table,$numitems)
{
$sql="SELECT * FROM ".$table." ORDER BY RAND(NOW()) LIMIT ".$numitems;
$result = mysql_query($sql);
	if($result)
	{
	return mysql_fetch_array($result);
	}
	else
	{
	return false;
	}
}
zufällig zurückgeben lassen.

Lg
 

DeletedUser

Gast
:mrgreen:
Hier mal ne kleine Formel,...
PHP:
...
  if($off > $deff)
   return $off - $deff;

  if($deff > $off)
   return $deff - $off;
...
if($ergebnis > 0) {
  echo "<span>Sie haben den Sieg errungen</span>";
} else {
  echo "<span>Sie haben verloren (n00b)</span>";
}
lol, das möchte ich bei ds auch haben, da gewinne ich dann immer
(außer bei deff==off wird immer eine positive zahl(=sieg) zurückgegeben) ;-)
 

DeletedUser

Gast
ok, da hab ich wohl nicht grade was Feines gemacht. :)
Das ist wohl auch der Grund, warum mann normalerweise nicht alles Live und Direkt im Forum Entwickelt, wie ich das bei meinem Ersten Post gemacht habe.

Jemand, der nur einen Denkanstoß für sein eigenes Projekt brauchte, dem wird es wohl helfen und derjenige hätte wohl auch selbst genug verstand gehabt es seinen Wünschen zu ändern.

Für alle Perfektionisten noch einmal mit etwas mehr Code:
PHP:
<?php
function kampf($type, $off = 0, $deff = 0, $boni = 0) {
  if($type == "Angriff")
    $off += $boni;

  if($type == "Verteidigung")
    $deff += $boni;

  if($type == "Angriff" && $off > $deff)
   return $off - $deff;
  elseif($type == "Angriff" && $off < $deff)
   return $off - $deff;

  if($type == "Verteidigung" && $deff > $off)
   return $deff - $off;
  elseif($type == "Verteidigung" && $deff < $off)
   return $deff - $off;

  if($deff == $off)
   return 0;
}

// zu verwenden wie Folgt:
// Ich greife an, mit Einheit welche 25 off hat
// Verteidiger hat einheit mit 30 deff
// da ich Feind im Wald (oder während nacht attakiere) bekomme ich 10 Zusatz Punkte für Angriff
$ergebnis = kampf("Angriff", 10, 30, 0);

// $ergebnis ist in diesem fall: 25+10 - 20 = 15

if($ergebnis > 0) {
  echo "<span>Sie haben den Sieg errungen</span>";
} else {
  echo "<span>Sie haben verloren (n00b)</span>";
}
 ?>
 
Zuletzt bearbeitet von einem Moderator:
Oben