Commit Graph

486 Commits

Author SHA1 Message Date
CTD 6afd8ab586 Merge remote-tracking branch 'upstream/master'
Conflicts:
	src/laws.c
2014-08-14 00:23:41 +02:00
CTD a1225a1269 Merge remote-tracking branch 'origin/Feature-1865' 2014-08-14 00:16:12 +02:00
CTD dfec8d8001 Merge remote-tracking branch 'origin/Verlasse-zu-spät-in-Befehlsreihenfolge'
Conflicts:
	src/laws.c
2014-08-14 00:14:51 +02:00
CTD d546065bfd Merge remote-tracking branch 'origin/Piraterie' 2014-08-13 23:59:09 +02:00
CTD f45b16e9a4 Merge remote-tracking branch 'origin/Bug-1938' 2014-08-13 23:58:30 +02:00
CTD 13e544a233 Merge remote-tracking branch 'origin/Bug-1857' 2014-08-13 23:57:43 +02:00
CTD 0e8126f538 Merge remote-tracking branch 'origin/Bug-1664' 2014-08-13 23:56:56 +02:00
CTD df1a4b5a47 Merge remote-tracking branch 'origin/Bug-1516' 2014-08-13 23:33:27 +02:00
Enno Rehling 444971542c fix missing curly brace, indentation. hope I got this right. 2014-08-13 19:55:10 +02:00
Enno Rehling b6f627a5d8 Merge branch 'Feature-1865' of github.com:CTD1/eressea-server-bugfixing into CTD1-Feature-1865
Conflicts:
	src/economy.c
2014-08-13 19:44:57 +02:00
CTD 233f707780 Merge remote-tracking branch 'origin/Bug-1610' 2014-08-13 15:56:44 +02:00
Enno Rehling 0a4962fbfd Published a new release. 2014-08-13 00:27:00 +02:00
Enno Rehling 04be680bd5 refactoring the pre-release script.
1. tests are now done in a subdiretory od the live server.
2. usage is easier, with commands.
3. using getopts for command-line parsing is cool.
2014-08-11 13:41:37 +02:00
Enno Rehling 3c2ae7ca93 preview script and logging cleanup
1. all log messages will be terminated with \n, whether the user provided
	it or not.
2. remove a bunch of print() calls from scripts to reduce clutter
3. replace printf calls with log_* calls to reduce clutter
4. add the new release preview script
2014-08-11 12:04:12 +02:00
Enno Rehling 45a16681c4 logic fix for FOLLOW (if we are not following a ship, and cannot see the target unit, then exit). 2014-08-08 18:18:17 +02:00
CTD 53a5314463 Fix für E2
Die Abfrage der Option war ohne Default, so das sie hier immer an war.
In E2 führ das dann wegen cmp_taxes zur assertion.

Das wars, jetzt sollte alles rund sein.
2014-08-08 17:27:13 +02:00
CTD fe0ff71aa1 E2 fähig gemacht
Der Burgenbesitzer sieht nur noch etwas wenn er auch Leuchtturmbesitzer
ist.
Das geht jetzt auch für E2 ohne region_owner rule.
2014-08-08 17:15:12 +02:00
CTD 90cf6d845f replace strstr
Neu Funktion check_param die überprüft ob ein übergebener Wert in dem
Wert des entsprechenden Parameters steht.
2014-08-08 13:29:26 +02:00
Enno Rehling 8dd4b783b1 fix gcc error 2014-08-08 01:26:35 +02:00
Enno Rehling 3767957caa indentation + whitespace changes 2014-08-08 01:24:12 +02:00
Enno Rehling 1918f56990 indentation + whitespace changes 2014-08-08 01:16:35 +02:00
CTD bf4bda36a2 Bug 1610 FOLGE SCHIFF und andere lange Befehle
FOLGE SCHIFF ist genau wie FOLGE EINHEIT jetzt ein Halblanger Befehl.
Das ist konsequent und entfernt an einigen Stellen Spezialbehandlungen.
2014-08-08 01:14:58 +02:00
CTD f33de38812 Piraterie repariert
Die Piraten sind oftmals einfach in ein falsches (leeres) Ozeanfeld
gesegelt, wenn es irgendwo ein Opfer gab.
2014-08-08 01:14:57 +02:00
CTD 0d0aad593a Abtreiben Unabhänig von Wahrnehmung
Der Kapitän sollte den Leuchtturm auch sehen, wenn das Besitzer mangels
genug Wahrnehmung das Schiff nicht sieht. Sprich der Sturmschutz des
Leuchtturm hängt jetzt nicht mehr vom Wahrnehmungstalent der Insassen
sondern nur noch von der Größe des Leuchtturms ab, und davon ob der
Unterhalt bezahlt wurde.
sail() ruft als einzige Funktion check_leuchtturm() ohne Partei auf,
daher der einfach Check ob eine Partei übergeben wurde oder nicht.
2014-08-08 01:14:56 +02:00
CTD 549a4fbe5b Bug 1857 abtreiben trotz leuchtturmüberwachung e2
Leuchttürme verhindern nicht das Abtreiben sondern reduzieren nur die
Chance auf 1/3.
Das ist für Automatisierung schlecht, daher Reduzieren Leuchttürme das
Abtreiben jetzt auf 0.
Für E4 oder zukünftige Spiele habe ich das auch gleich konfigurierbar
gemacht.
rules.lighthous.stormchancedevisor gibt den Wert an durch den die
Sturmchance geteilt wird, 0 = kein Abtreiben wenn Leuchtturm in
Reichweite.
2014-08-08 01:14:55 +02:00
Enno Rehling 13ba2b8362 Merge pull request #24 from CTD1/Bug-1610
Bug 1610 FOLGE SCHIFF und andere lange Befehle
2014-08-08 01:11:31 +02:00
Enno Rehling 1470b56253 Merge pull request #23 from CTD1/Piraterie
Piraterie repariert
2014-08-08 01:06:49 +02:00
Enno Rehling cad82999d0 Merge pull request #22 from CTD1/Bug-1857
Bug 1857 abtreiben trotz leuchtturmüberwachung e2
2014-08-08 01:00:59 +02:00
Enno Rehling 75e98ae0cb Merge pull request #20 from CTD1/Bug-1664
Bug 1664: Obwohl kein Holz vorhanden ist, kommt die Meldung, daß der Unt...
2014-08-08 00:48:52 +02:00
Enno Rehling b92c51d579 Merge pull request #19 from CTD1/Bug-1516
Bug 1516 Trotz Reserviere, Pferde abgegeben.
2014-08-08 00:41:04 +02:00
Enno Rehling b3a58c6a43 fix tabs 2014-08-08 00:37:51 +02:00
Enno Rehling 500e24d71e Merge pull request #18 from CTD1/Bug-1938
Bug 1938 [E3] Magiepatzer kaputt (auraverlust statt kostensteigerung)!
2014-08-08 00:36:36 +02:00
Enno Rehling 1bd78438f2 Merge branch 'Verlasse-zu-spät-in-Befehlsreihenfolge' of github.com:CTD1/eressea-server-bugfixing into CTD1-Verlasse-zu-spät-in-Befehlsreihenfolge
Conflicts:
	src/laws.c
2014-08-08 00:34:55 +02:00
Enno Rehling 95dae121de Merge branch 'Bug-1803' of github.com:CTD1/eressea-server-bugfixing into CTD1-Bug-1803
Conflicts:
	src/laws.c
2014-08-08 00:25:17 +02:00
CTD c49c3af1d9 Bug 1610 FOLGE SCHIFF und andere lange Befehle
FOLGE SCHIFF ist genau wie FOLGE EINHEIT jetzt ein Halblanger Befehl.
Das ist konsequent und entfernt an einigen Stellen Spezialbehandlungen.
2014-08-07 18:53:29 +02:00
CTD 7ac56b3fbf Piraterie repariert
Die Piraten sind oftmals einfach in ein falsches (leeres) Ozeanfeld
gesegelt, wenn es irgendwo ein Opfer gab.
2014-08-07 16:02:47 +02:00
CTD 906dd457fc Abtreiben Unabhänig von Wahrnehmung
Der Kapitän sollte den Leuchtturm auch sehen, wenn das Besitzer mangels
genug Wahrnehmung das Schiff nicht sieht. Sprich der Sturmschutz des
Leuchtturm hängt jetzt nicht mehr vom Wahrnehmungstalent der Insassen
sondern nur noch von der Größe des Leuchtturms ab, und davon ob der
Unterhalt bezahlt wurde.
sail() ruft als einzige Funktion check_leuchtturm() ohne Partei auf,
daher der einfach Check ob eine Partei übergeben wurde oder nicht.
2014-08-07 14:37:49 +02:00
CTD 37e0226e5b Bug 1857 abtreiben trotz leuchtturmüberwachung e2
Leuchttürme verhindern nicht das Abtreiben sondern reduzieren nur die
Chance auf 1/3.
Das ist für Automatisierung schlecht, daher Reduzieren Leuchttürme das
Abtreiben jetzt auf 0.
Für E4 oder zukünftige Spiele habe ich das auch gleich konfigurierbar
gemacht.
rules.lighthous.stormchancedevisor gibt den Wert an durch den die
Sturmchance geteilt wird, 0 = kein Abtreiben wenn Leuchtturm in
Reichweite.
2014-08-07 14:04:03 +02:00
Enno Rehling 91eead0993 fix test runner 2014-08-07 13:23:11 +02:00
CTD 8b9f344484 Fixing server crash
Mit rules.region_owner_pay_building  ein kann es vorkommen, das wegen
einem leeren Gebäude die größte Burg in der Region gesucht wird. Wenn es
aber keine Burg in der Region gibt, wird building_owner mit NULL
aufgerufen. Das musste abgefangen werden.
2014-08-07 11:24:55 +02:00
Enno Rehling 6889f186a9 Merge branch 'master' of https://github.com/eressea/server 2014-08-06 23:48:24 +02:00
Enno Rehling 405c63f447 this old race alias stuff has been dead code for years. 2014-08-06 23:44:47 +02:00
Enno Rehling b90b744287 removing unused RECRUIT_CLASSIC option. Dead code is dead. 2014-08-04 19:53:16 +02:00
Enno Rehling afd41286b5 config file reading based on game name and install location. 2014-08-03 20:37:05 +02:00
Enno Rehling 7d9442d360 missing include 2014-08-02 23:05:01 +02:00
CTD 51356b061c Feature 1865 leere unterhaltspflichtige Gebäude
Gebäude ohne Besitzer werden automatisch vom Regionsbesitzer übernommen
(Die Einheit wird sozusagen der neue Gebäudebesitzer). Betreten dann nur
noch wenn Helfe Bewache vom Regionsbesitzer.
Wichtig:
<param name="rules.region_owners" value="1"/>, ist Voraussetzung,  es
geht also nicht in E2.
Es kann für beliebige Gebäude eingeschaltet werden.
Example config :
<param name="rules.region_owner_pay_building" value="market harbour
lighthouse"/>
2014-08-01 16:13:35 +02:00
Enno Rehling 64ef71143a Use two-phase RESERVE in regular process_orders 2014-08-01 13:12:18 +02:00
CTD 7d64046022 Bug 1664: Obwohl kein Holz vorhanden ist, kommt die Meldung, daß der Unterhalt für die Schmiede gezahlt wurde
Es wird im ersten Durchlauf nur noch gezahlt wenn das Gebäude dann auch
Arbeiten kann (also alles da ist). Ich habe den 2ten Durchlauf erhalten,
auch wenn er in Code nicht mehr genutzt wird.
2014-07-30 16:13:14 +02:00
CTD 246a92f666 Bug 1516 Trotz Reserviere, Pferde abgegeben.
Gib xyz anzahl irgendwas ignoriert nicht mehr das eigene Reserviere.
2014-07-29 14:33:57 +02:00
CTD 8aa356df75 Bug 1938 [E3] Magiepatzer kaputt (auraverlust statt kostensteigerung)!
Erst Bezahlen, dann Patzer. Sonst werden die Kosten im Falle des
"kleinsten" Patzers noch beim aktuellen Spruch erhöht.
2014-07-28 15:38:39 +02:00
Enno Rehling bd2809a975 removing the core directory (moving to res and scripts).
it's from when open-source Eressea was limited, and we no longer need the separation.
JSON configuration for ship flags.
2014-07-28 14:27:30 +02:00
CTD db6179ddeb Betrete vor dem Kampf
Damit Besitzer anderer Gebäude in der Region  vor einem Kampf in die
Burg fliehen können, noch ein 4tes mal Betrete.
2014-07-28 11:16:45 +02:00
CTD 03b69cc37e Verlasse wurde erst nach dem Kampf ausgeführt
Verlasse wurde erst nach Kämpfe ausgeführt, da die Befehle mit der
selben Prio als LiFo abgearbeitet werden. Das ist vor allem bei
überfüllten Burgen vor dem Kampf schlecht.
2014-07-28 10:49:19 +02:00
CTD 964c03eb92 Bug 1803 RESERVIERE ALLES tut nichts
Reserviere Alles implementiert.
Option für rules.reserve.twophase in die Befehlsabarbeitung
implementiert.
2014-07-28 10:29:35 +02:00
Enno Rehling d994caf7a3 Merge branch 'master' of https://github.com/eressea/server 2014-07-26 22:52:31 +02:00
Enno Rehling d9457a2488 rewrite of the Lua module system.
At this time, only E2 is working.
Fixing a lot of old code (monster is no longer id 0).
package.paths configured from eressea.ini
install directory configured from eressea.ini
moving building_action into a seaprate module (it's deprecated)
2014-07-26 22:52:25 +02:00
Enno Rehling 46ab9e7bb6 version 280 installed in production 2014-07-24 08:07:34 +02:00
Enno Rehling 1342b625cc Merge branch 'master' of github.com:eressea/server 2014-07-24 08:06:27 +02:00
Enno Rehling e048e86985 Merge pull request #15 from CTD1/patch-bug1690
Bug 1690: [E3] +1 Bonus für Zauber von Elfen im Wald
2014-07-24 08:06:17 +02:00
Enno Rehling 955a57273d code review changes 2014-07-24 08:04:30 +02:00
Enno Rehling 10e08ab306 Merge pull request #14 from CTD1/master
Bug 1755 Beschworene Skelette mit Ausdauerproblemen
2014-07-24 07:58:50 +02:00
Enno Rehling 44327d91f6 setting the rules directory with -r (overrides config.rules from eressea.ini) 2014-07-23 15:44:57 +02:00
Enno Rehling 2bec7e2bbe save game id in the data file, not name of XML file 2014-07-23 11:54:51 +02:00
CTD 4670767a3b Bug 1690: [E3] +1 Bonus für Zauber von Elfen im Wald
Es wurden immer 5 und nicht wie im kommentar beschrieben stufe/spellpwer
* 5 Personen von dem Spruch betroffen.
2014-07-23 10:52:39 +02:00
Enno Rehling 51207167c8 allow reading the configuration from a different directory (-c dir). 2014-07-23 08:10:14 +02:00
Enno Rehling af73c6dcdf Output a message, give feedback about keys used.
Remove unused variable.
2014-07-22 11:27:43 +02:00
Enno Rehling 018d4ca38e fix quest keys to work again.
add a function to walk borders with a callback.
2014-07-22 10:59:47 +02:00
Enno Rehling 13165f2354 Move quest objects to the module that uses them (museum portals). 2014-07-21 11:34:57 +02:00
Enno Rehling 2a95c5c1be new server release 2014-07-20 09:53:55 +02:00
Enno Rehling 956efc48d5 new two-phase reserve for e4 2014-07-20 09:42:45 +02:00
Enno Rehling e44d4aa9b9 implemented a suggested change to RESERVE.
http://bugs.eressea.de/view.php?id=1675#c5240
new setting "rule.reserve.twophase" reserves from self first, before reserving from others.
fix a crash when trying to flush logs and there is no logfile.
2014-07-20 06:19:21 +02:00
CTD 9d102fd069 BUG 1786 Fehlschlag ZERSTÖRE Gerüst
Einheiten ohne Personen können nichts zerstören (das ist OK), da aber
Zerstöre vor Rekrutiere und zusammen mit Gib abgearbeitet wird, kann
eine Temp-Einheit normalerweise nichts Zerstören, auch wenn sie in der
Auswertung Pesonen hat.
Wenn sie Personen übergeben bekommt hängt es von der genauen
Reihenfolger der Einheiten in der Region ab.
Daher habe ich Zerstöre nach Gib, Vergessen und Rekrutieren geschoben.
2014-07-18 15:21:10 +02:00
CTD 4cfa1ec7c3 Bug 1755 Beschworene Skelette mit Ausdauerproblemen
Sowohl Beschworenen Untote als auch Monster (Drachen, für Monster-Untote
war es Ok) hatten keine Anpassung ihrer Max-HP nach der Zuweisung von
Skills.
2014-07-18 13:15:18 +02:00
Enno Rehling a4675c61fd installing resource files through cmake. 2014-07-17 15:55:50 +02:00
Enno Rehling 4506bff522 new server version installed. 2014-07-17 15:18:18 +02:00
Enno Rehling 4c4652667c fix code to work with gcc, move init_locales() outside of util. 2014-07-17 15:16:57 +02:00
Enno Rehling 97de950884 Merge pull request #13 from TomBraun/master
Change umlauts in the german comment
2014-07-17 15:13:30 +02:00
Enno Rehling ae238799b4 Merge pull request #12 from CTD1/master
Bugfix http://bugs.eressea.de/view.php?id=2009
2014-07-17 15:11:00 +02:00
Enno Rehling 1500bcac70 REKRUTIERE RASSE funktioniert nicht (Bug 2012)
http://bugs.eressea.de/view.php?id=2012
init_locales must not be called before races have been configured.
make jsonconf initialize translations
handle missing strings in translations, log errors.
2014-07-17 14:38:56 +02:00
CTD 5e2c5657bd Falscher Magischer Beutel bei Gewichtsberechnung
Bei der Änderung
92f43a7b51
wurde der Magische Beutel durch den Magischen Kräuterbeutel ersetzt, so
das dieser nun das Gewicht reduzierte und der "Bag of Holding" völlig
nutzlos wurde.
2014-07-17 12:59:47 +02:00
TomBraun 19ce861120 Change umlauts in the german comment 2014-07-16 12:10:58 +02:00
CTD 3bd63955a2 Klammern vergessen 2014-07-16 10:28:32 +02:00
CTD1 700a88fd79 Umlaute in Kommentaren
sind doof.
2014-07-15 15:46:02 +02:00
CTD1 6987c61d97 Bug 0002014: Zwergenausrüstung kann nicht hergestellt werden
Nicht auf die Fraction Rasse checken, (die ist normalerweise Halbling, kann aber auch Zwerg sein wenn mit der Starteinheit eigenartige Dinge gemacht wurden) sondern ob der Hersteller eine Zwergen oder Golem ist.
Da Zwergensachen nur von Zwergen benutzt werden können, stellt es keinen Vorteil für andere Völker da wenn sie über Golems Zwergensachen machen können.
2014-07-15 15:34:42 +02:00
CTD1 38a754844e BUG 0001980: Gegener hält Burg obwohl alle geflohen sind!
http://bugs.eressea.de/view.php?id=1980
Der Test unten erzeugt eine Temp-Einheit welche nach dem Kampf die Burg hält, trotz einer vernichtenden Niederlage innerhalb von 2 Kampfrunden. Der Angreifer darf die Burg zwar betreten, bekommt aber nicht das Kommando.
Grund ist das beim Betreten der Burg via u_set_building() nur dann die betretende Einheit zum Burgenbesitzer wird wenn es keinen Burgenbesitzer gibt.
Die eher aufgerufene Funktion building_owner() versucht zwar nach dem Kampf einen neuen Burgenbesitzer zu finden, da sich zu diesem Zeitpunkt aber nur eine Tote Einheit und einen Temp Einheit, beide mit 0 Personen, in der Bug befinden schlägt dies Fehl. Es wird von der Funktion zwar 0 zurückgegeben, aber b->_owner wird nicht zurückgesetzt (Vermutlich da der Server an anderer Stelle sonst annimmt das noch nie jemand in der Burg war). Daher die Überprüfung bei u_set_building ob der Burgenbesitzer tot ist, und wenn ja wird die betretende Einheit neuer Burgenbesitzer.

local r1 = region.create(1, 2, "plain")
local f1 = faction.create("a@b.de", "human", "de")
local f2 = faction.create("c@d.de", "human", "de")
f1.age=20
f2.age=20

local b1 = building.create(r1, "castle")
b1.size = 100

local u0 = unit.create(f1, r1, 10)
u0.building = b1
u0:add_item("money", u0.number * 100)
u0:clear_orders()
u0:add_order("KÄMPFE")
u0:add_order("MACHE TEMP 1")
u0:add_order("ENDE")

local u1 = unit.create(f1, r1, 100)
u1.building = b1
u1:add_item("money", u1.number * 100)
u1:clear_orders()
u1:add_order("KÄMPFE FLIEHE")
u1:add_order("GIB TEMP 1 ALLES PERSONEN")
u1:add_order("GIB TEMP 1 ALLES")
u1:add_order("GIB TEMP 1 Kommando")

local u2 = unit.create(f2, r1, 101)
u2:add_item("sword", u2.number)
u2:add_item("money", u2.number * 100)
u2:set_skill("melee", 16)
u2:clear_orders()
u2:add_order("KÄMPFE")
u2:add_order("ATTACKIEREN " .. itoa36(u1.id))
u2:add_order("BETRETE BURG " .. itoa36(b1.id))

process_orders()


Das sollte für Schiffe eigentlich das gleiche sein, also da die gleiche Änderung.
2014-07-15 15:24:21 +02:00
Enno Rehling acb0cd7404 installed build 677 in production, increase build number to 678 2014-07-07 03:42:43 +02:00
Enno Rehling b2b35fd9d0 add a test for the E3 reduced give quota.
foreign units receive only 50% of silver given to them.

Conflicts:
	tests/pool.lua
2014-07-07 03:41:33 +02:00
Enno Rehling 68d96014b1 a new method for finding out that a unit died in battle.
turns out, a unit can have 0 people without dying or being a TEMP (GIVE them all away, then RECRUIT more).
2014-07-06 13:00:14 -07:00
Enno Rehling 4d173cf7e2 if a unit is empty, and not a TEMP, then it is dead and cannot recruit.
This fixes http://bugs.eressea.de/view.php?id=2010
2014-07-06 12:39:03 -07:00
Enno Rehling fdae518ef7 also read the extended race::ec_flags from JSON configuration. 2014-07-06 00:53:15 -07:00
Enno Rehling 88f9d247bd Revert "use race::flags|RCF_NOGIVE instead of race::ec_flags|GIVEITEM"
E3 Tests (GIVE) did not pass.

This reverts commit 5ec3f5b83a.
2014-07-06 00:29:52 -07:00
Enno Rehling 5ec3f5b83a use race::flags|RCF_NOGIVE instead of race::ec_flags|GIVEITEM
None of this has tests, it'd going to be years before a change like this can be made without fear D-:
2014-07-05 23:31:34 -07:00
Enno Rehling b21cb8f5c7 Simple test for rules.give (there are many more, can_give deserves a test to itself).
The more tests I write, the more I hate the infrastructure for them.
2014-07-05 23:06:51 -07:00
Enno Rehling b9b627a171 refactor setup for economy tests.
rename can_steal->check_steal for consistent naming, check_give->can_give, too.
2014-07-05 22:47:26 -07:00
Enno Rehling f14264e3bb test coverage for can_steal.
add a default message for when no messages are loaded, so that msg_feedback/msg_message doesn't return NULL when XML has not been laoded.
initialize some core stuff before running tests (there probably needs to be more).
2014-07-05 20:14:11 -07:00
Enno Rehling 072f927d5b replace RCF_CANSTEAL with RCF_NOSTEAL for less confusing default behavior. 2014-07-05 19:29:12 -07:00
Enno Rehling 5b437c5833 Replace RCF_PLAYERRACE with RCF_NPC, it's the less confusing default for tests. 2014-07-05 19:21:06 -07:00
Enno Rehling 4a8707b06d fix a fall-through in jsonconf causing an error message.
add tests for pool, not working because of missing GIVEITEM on
JSON-configured races (TBD).
2014-07-05 18:21:20 -07:00
Enno Rehling d743d32215 bind "blocked" flag for Lua (bug 1922).
remove unused region-flags.
2014-07-05 10:46:43 -07:00
Enno Rehling d5e9899544 remove battle statistics, the flag is not set anywhere, and I have not used them in ages. 2014-07-05 10:45:03 -07:00