Commit graph

180 commits

Author SHA1 Message Date
Enno Rehling
41d42fa248 localization of alliance status "ALL".
fix for https://bugs.eressea.de/view.php?id=1993
2014-08-16 03:07:37 +02:00
Enno Rehling
158d4f8d4b MSVC: compile cleanly with level 4 warnings 2014-08-14 19:39:45 +02:00
Enno Rehling
ff73358b9c Some tiny errors that slipped through Visual Studio's warnings. 2014-08-14 09:59:33 +02:00
Enno Rehling
dafe71f4b8 micro optimizations.
removing a lot of mallocs through strdup  by replacing getcommand calls with get_command, which takes a buffer. only one left.
removing mkname calls with a static buffer for keyword-tokens.
commit the schema file I had lying around.
2014-08-14 09:57:05 +02:00
Enno Rehling
38352ef3bf add the build number to saves.
this should make future debugging sessions easier, telling us what bugs were or were not fixed at the time of an incident.
added a test to make sure data file can be read/written, and at a minimum, sets global data-version.
also clean up test framework a bit, and introduce a helpful macro.
2014-08-14 05:06:36 +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
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
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
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
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
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
405c63f447 this old race alias stuff has been dead code for years. 2014-08-06 23:44:47 +02:00
Enno Rehling
afd41286b5 config file reading based on game name and install location. 2014-08-03 20:37:05 +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
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
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
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
2bec7e2bbe save game id in the data file, not name of XML file 2014-07-23 11:54:51 +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
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
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
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
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
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