Commits

bender  committed b972ebf

[config] Introduced variable cooldown time between wars, made values in war help dynamic, switch some static values with constants

  • Participants
  • Parent commits a4d87ea

Comments (0)

Files changed (5)

File brain/clear-wars.php

 $dblink=mysql_pconnect ('localhost', DB_USER, DB_PASS);
 mysql_select_db (DB_NAME);
 
-$query = 'select distinct B.aid1,B.aid2 from allyactions A, wars B where A.aid1=B.aid1 and A.aid2=B.aid2 and A.type in (20,21,22,23,24,25,26) and B.over>0 and date_add(B.end_of_war, interval 7 day)<now();';
+$query = 'select distinct B.aid1,B.aid2 from allyactions A, wars B where A.aid1=B.aid1 and A.aid2=B.aid2 and A.type in (20,21,22,23,24,25,26) and B.over>0 and date_add(B.end_of_war, interval ' . WAR_COOLDOWN . ' hour)<now();';
 
 if (!($res = mysql_query ($query)))
   echo "bah: ".$query.", ".mysql_error ();
 Sind all diese Bedingungen erf&uuml;llt, kannst du im "Allianz"-Dialog im Men&uuml; "Diplomatie" der anderen Allianz den Krieg erkl&auml;ren.<br>
 Wurde eine Kriegserkl&auml;rung ausgesprochen, so gelten die unten beschriebenen Regeln. Befindet sich eine Allianz im Krieg, so wird dies durch ein Axtsymbol auf der Webseite angezeigt. Klickt man auf dieses Symbol, gelangt man automatisch auf eine &Uuml;bersichtsseite, auf der der aktuelle Kriegsverlauf nachvollzogen werden kann.
 </p>
-<h3>Die ersten 12 Stunden eines Krieges</h3>
+<h3>Die ersten <?php echo WAR_WARMUP / 60; ?> Stunden eines Krieges</h3>
 <ul>
 <li>
-Innerhalb der ersten 12 Stunden, nachdem die Kriegserkl&auml;rung ausgesprochen wurde, kann diejenige Allianz, die den Krieg erkl&auml;rt hat, die Drohung noch zur&uuml;ckziehen
+Innerhalb der ersten <?php echo WAR_WARMUP / 60; ?> Stunden, nachdem die Kriegserkl&auml;rung ausgesprochen wurde, kann diejenige Allianz, die den Krieg erkl&auml;rt hat, die Drohung noch zur&uuml;ckziehen
 </li>
 <li>
-Innerhalb der ersten 12 Stunden,  nachdem die Kriegserkl&auml;rung ausgesprochen wurde, muss jede der beiden beteilgten Allianzen drei F&auml;hnchen platzieren - mehr dazu weiter unten.
+Innerhalb der ersten <?php echo WAR_WARMUP / 60; ?> Stunden,  nachdem die Kriegserkl&auml;rung ausgesprochen wurde, muss jede der beiden beteilgten Allianzen drei F&auml;hnchen platzieren - mehr dazu weiter unten.
 </li>
 </ul>
 <h3>Platzieren der F&auml;hnchen</h3>
 In jedem Dorf darf nur maximal ein F&auml;hnchen pro Krieg stehen. Ein Spieler darf aber auch zwei oder gar drei F&auml;hnchen haben. F&auml;hnchen aus verschiedenen Kriegen d&uuml;rfen auch in einem Dorf gemeinsam platziert werden.
 </li>
 <li>
-Jede Allianz hat nach der Kriegserkl&auml;rung 12 Stunden Zeit die F&auml;hnchen zu platzieren. Wurden nach Ablauf der Frist nicht alle F&auml;hnchen gesetzt, so werden sie vom System automatisch im jeweils gr&ouml;&szlig;ten Dorf der drei gr&ouml;&szlig;ten Spieler der Allianz platziert.
+Jede Allianz hat nach der Kriegserkl&auml;rung <?php echo WAR_WARMUP / 60; ?> Stunden Zeit die F&auml;hnchen zu platzieren. Wurden nach Ablauf der Frist nicht alle F&auml;hnchen gesetzt, so werden sie vom System automatisch im jeweils gr&ouml;&szlig;ten Dorf der drei gr&ouml;&szlig;ten Spieler der Allianz platziert.
 </li>	
 </ul>
 <h3>W&auml;hrend des Krieges:</h3>
 <ul>
 <li>Jede beteiligte Allianz kann jederzeit aufgeben. Der Krieg wird dann sofort beendet. </li>
 <li>Gelingt es einer der Allianzen, alle drei F&auml;hnchen des Gegners zu rauben, wird der Krieg beendet. </li>
-<li> Trifft keiner der beiden F&auml;lle zu, wird der Krieg nach 7 Tagen autmatisch beendet. </li>
+<li> Trifft keiner der beiden F&auml;lle zu, wird der Krieg nach <?php echo WAR_DURATION / 24; ?> Tagen autmatisch beendet. </li>
 </ul>
 <h3>Punkte und Gewinner</h3>
 Zum Abschluss des Krieges werden alle  k&auml;mpferischen Handlungen w&auml;hrend des Krieges gewertet. 
 </li>
 	<li>Jedes vom Gegner erbeutete F&auml;hnchen gibt zus&auml;tzlich Punkte, und zwar 0,5 % der Punkte, die die gegnerische Allianz zum Zeitpunkt der Kriegserkl&auml;rung hatte. Diese Punkte werden erst nach Ende des Krieges berechnet und nicht zum Zeitpunkt des Fahnenraubes. </li>
 	<li>f&uuml;r jeden Tag, den die Allianz den Krieg fr&uuml;her beenden konnte (durch das Rauben der F&auml;hnchen) gibt es zus&auml;tzliche Punkte:
-	<div><span class="formula"> (eigene Punkte des Krieges + (eigene Punkte des Krieges *  eigentlich verbleibendeTage / 7 ) * 0,5)</span></div></li>
-	<li>Wurde die Kriegserkl&auml;rung innerhalb der ersten 12 Stunden noch zur&uuml;ckgezogen, so gibt es f&uuml;r keine der Allianzen Punkte, der Krieg wird nicht gewertet</li>
+	<div><span class="formula"> (eigene Punkte des Krieges + (eigene Punkte des Krieges *  eigentlich verbleibendeTage / <?php echo WAR_DURATION / 24; ?>) * 0,5)</span></div></li>
+	<li>Wurde die Kriegserkl&auml;rung innerhalb der ersten <?php echo WAR_WARMUP / 60; ?> Stunden noch zur&uuml;ckgezogen, so gibt es f&uuml;r keine der Allianzen Punkte, der Krieg wird nicht gewertet</li>
 	<li>Hat eine der Allianzen aufgegeben, so werden der anderen Allianz automatisch soviele Punkte gut geschrieben, wie ihre drei F&auml;hnchen wert w&auml;ren. Die Allianz, die aufgegeben hat, bekommt 0 Punkte - egal, wieviele Punkte sie während des Krieges bekommen hat. </li>
 	<li>Diejenige Allianz, die nach allen Berechnungen mehr Punkte hat, gilt als der Gewinner des Krieges</li>
 </ul>
 <h3>Nach dem Krieg</h3>
 <p>
-Nach dem Krieg gibt es eine 7-t&auml;gige Phase des Waffenstillstands. In dieser Zeit k&ouml;nnen die beiden Allianzen sich einander keinen Krieg erkl&auml;ren.
+Nach dem Krieg gibt es eine <?php echo WAR_COOLDOWN / 24; ?>-t&auml;gige Phase des Waffenstillstands. In dieser Zeit k&ouml;nnen die beiden Allianzen sich einander keinen Krieg erkl&auml;ren.
 </p>

File php/base/config.inc.sample.php

 define ("WORLD_SPEED", 1.5);
 // Sets the speed for troop movement
 define ("WORLD_UNIT_SPEED", 4);
+// Sets the speed for merchant movement
+define ("WORLD_MERCH", 4);
 // This is in _addition_ to WORLD_SPEED (as in WORLD_SPEED*BUILD_SPEED)
 // for land and city building duration
 define ("BUILD_SPEED", 2.0);
 define ("WAR_WARMUP", 720);
 // How long is the  war (Hours)
 define ("WAR_DURATION", 168);
+// How long is the  war (Hours)
+define ("WAR_COOLDOWN", 168);
 
 // Are group attacks possible in this world?
 define ("GROUP_ATTACK_POSSIBLE", false);

File php/war_functions.php

 function calctimeDiff ($aid1, $aid2, $causer_aid)
 {
 	//berechnet, wieviele tage der krieg "zu früh" beendet wurde
-	$query = "SELECT time_to_sec(TIMEDIFF(adddate(A.begin, interval 7 day),now()))/3600/24 as diff FROM wars A WHERE aid1=".$aid1." AND aid2=".$aid2;
+	$query = "SELECT time_to_sec(TIMEDIFF(adddate(A.begin, interval " . WAR_DURATION . " hour),now()))/3600/24 as diff FROM wars A WHERE aid1=".$aid1." AND aid2=".$aid2;
 	if (!$res = mysql_query($query))
 		log_err  ("war_functions.php: could not check time from now to end of war: ".$query);
 	else
 				if ($f == 0)
 					$output = "Deine Allianz befindet sich derzeit nicht im Krieg";
 				else
-					$output = "Deine Allianz hat in den letzten 7 Tagen keine Kriege beendet";
+					$output = "Deine Allianz hat in den letzten " . WAR_COOLDOWN . " Tagen keine Kriege beendet";
 				echo "<span id=\"bug\">".$output."</span>";
 			}
 			else