Giter Site home page Giter Site logo

pbemtools's People

Contributors

gulrak avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

xolgrim

pbemtools's Issues

Vorlage stuerzt ab, Runde 1161.

Hallo, seit diese Woche stuerzt Vorlage bei mir ab, ich habe extra die neuste Version 1.7.4.1 genommen. Der Server hat anscheinend seit dieser Auswertung irgendwas anders gemacht (Ich habe in Mantis ebenfalls ein Ticket eroeffnet). Fehlermeldungen im CR enthalten Zeichen die offenbar mehrfach nach UTF-8 konvertiert wurden, also aus einem Oe (ISO-8859-15 Code 214) wurde ein 0xc3 0x96 gemacht, diese beiden Codes wurden jeweils erneut durch UTF-8 kodiert, das Ergebnis sind dann 4 Bytes, 0xc3 0x83 0xc2 0x96. Ich habe ein Tool gebaut was so lange UTF-8 dekodiert bis etwas hoffentlich sinnvolles dabei herauskommt. Das Ergebnis sieht jedenfalls gut aus, auch mit diff alles soweit ok. Leider stuerzt Vorlage bei diesem Report ab, ob das damit zusammenhaengt ist eine gute Frage. Hier der Stacktrace:

...
Line 86876, Warnung: Unbekannte Feldkennung: speed
Line 87673, Warnung: Unbekannte Feldkennung: id
Line 87677, Warnung: Unbekannte Feldkennung: id
(0.10 sek.), Partei 6q.
lese 'creport1090'...Line 4379, Warnung: Unbekannte Feldkennung: id
Line 4383, Warnung: Unbekannte Feldkennung: id
Line 4387, Warnung: Unbekannte Feldkennung: id
Line 4391, Warnung: Unbekannte Feldkennung: id
Line 4400, Warnung: Unbekannte Feldkennung: id

Program received signal SIGSEGV, Segmentation fault.
0x000055555561b014 in Utf8toIso885915(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&) ()
(gdb) i r
rax 0x555555a476cd 93824997422797
rbx 0x5555566af240 93825010430528
rcx 0x555555a476c0 93824997422784
rdx 0xd 13
rsi 0x781000 7868416
rdi 0x7ffff6aa0000 140737331724288
rbp 0x5555566d1000 0x5555566d1000
rsp 0x7fffffffbec0 0x7fffffffbec0
r8 0x7ffff6aa0000 140737331724288
r9 0x0 0
r10 0x7ffff631f010 140737323855888
r11 0x202 514
r12 0x0 0
r13 0x7fffffffd398 140737488343960
r14 0xc08755 12617557
r15 0xc08756 12617558
rip 0x55555561b014 0x55555561b014 <Utf8toIso885915(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)+132>
eflags 0x10216 [ PF AF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb) bt
#0 0x000055555561b014 in Utf8toIso885915(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&) ()
#1 0x0000555555619838 in CReportStream::PrepareLine() ()
#2 0x00005555556050ec in CEinheit::CEinheit(CReportStream&, CRegion*) ()
#3 0x00005555556079b8 in CRegion::CRegion(CReportStream&, CKarte*, int, int) ()
#4 0x0000555555608271 in CKarte::Import(CReportStream&, int) ()
#5 0x0000555555609e95 in CReport::Import(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#6 0x000055555560dfdb in CReport::CReport(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#7 0x000055555557f7c2 in main ()
(gdb)

Falls mehr Informationen gewuenscht sind -> [email protected]

Anzeige von Helfestati

Die Vorlagedatei vom Prinzip her ja so aufgebaut, dass man so wenig wie möglich in den NR (oder Cr) schauen muss. Dafür fehlen noch die Helfestati der Partei, wenn man die optional anzeigen lassen könnte wäre das toll. Wenn das ganze dann noch übersichtlicher wäre als im CR um so besser. Die sortierung im CR erfolgt weder nach Parteiname noch nach der Nummer oder den Helfestati (erst ALLES, dann welche die BEWACHE enthalten ... und zum schluss diejenigen auf die man nur GIB hat)

Structures from the config file have mixed up data types

Version affected: 1.7.1

This leads to various errors, like:

talente.vms(568) : FEHLER: Ausdruck ungueltig '$stufe=UNIT.Magie.Stufe-RACES[UNIT.Typ].Magie': Strings koennen nicht in Subtraktionen verwendet werden.
(RACES[UNIT.Typ].Magie is wrongly returned as a string here)

or

[Waffen]
;Index, Waffe,                Talent,             Schaden, Bezeichnung
0,      "Adamantiumaxt",      "Hiebwaffen",         22.5,  "Adamantaxtträger"
1,      "Armbrust",           "Armbrustschießen",   11,    "Armbrustschützen"

ergibt:

> e WAFFEN[0].name
Ergebnis         (str): Adamantiumaxt
> e WAFFEN[0].schaden
Ergebnis         (int): 22
>
> e WAFFEN[1].name
Ergebnis         (str): Armbrust
> e WAFFEN[1].schaden
Ergebnis         (flt): 11.000

Auflösung von floats zu gering für Gewicht und Kapazität

Bei grossen Einheiten mit tausenden von Individuen können Kapazitäten und Gewichte zustatande kommen, die mit den 6 Stellen die floats bieten, nicht abgebildet werden.

Hinweis: Der Vorlage-Interpreter benutzt eigentlich überall intern double, nur dort wird künstlich mit float gerechnet.

Neue Expression-Engine

Die alte Expression-Engine ist Hauptgrund dafür, das Vorlage Closed-Source-Freeware ist. Aber sie ist auch überaus kompliziert implementiert, langsam im Parsen und zudem setzt sie auf einer unnötig großen Value-Implementation auf, die mindestens 70 Bytes pro Value verbraucht.

Eine neue Implementation sollte die Wartbarkeit und Performance verbessern und den Speicherverbrauch senken.

In .eressearc eine neue [Terrain]-Kategorie "Halle" hinzufügen

In Igjarjuks Halle gibt es neben den Terrains "Gang" und "Wand" auch das neue Terrain "Halle".
In .eressearc schlage ich eine weitere Zeile in der Kategorie [Terrains] vor:

[Terrains]
; CRT, MZM, MZO, MAXBAUER, LAND, EISEN, LAEN, STEIN, ADAMANTIUM
...
"Hochland", "H", "h", 4000, 1, 1, 1, 1, 0
...
"aktiver Vulkan", "A", "a", 500, 1, 1, 1, 1, 0
...
"Wand", "M", "m", 0, 0, 0, 0, 0, 0
"Feuerwand", "F", "f", 0, 0, 0, 0, 0, 0
"Halle", "L", "l", 0, 1, 0, 0, 0, 0

Das Initial "H" von Halle ist schon für Hochland vergeben. Der nächste Buchstabe "a" schon für aktiver Vulkan. Der nächste Buchstabe in "Halle" ist das "L", aber natürlich kann man auch einen anderen Buchstaben nehmen.

Hier ein Ausschnitt aus einem CR (gespeichert von Magellan), in dem das Terrain "Halle" vorkommt:

...
REGION -121 -69
947773045;id
"Patilbabon";Name
"Halle";Terrain
"231";Insel
0;Baeume
0;letztebaeume
0;Schoesslinge
0;letzteSchoesslinge
0;Bauern
0;letztebauern
0;Pferde
0;letztepferde
0;Silber
0;letztessilber
0;letzterekruten
GRENZE 1
"gewaltiges offenes Tor";typ
5;richtung
-1;prozent
...

Bewachende Parteien anzeigen

Die Information wer eine Region bewacht ist sehr wichtig, es wäre schön wenn das auch dargestellt werden würde.

"Die Region wird von Erben Chelestras (ech) und Bàn bean si (eLfe) bewacht."

Um das Nachzubilden solltest du genug .cr Material haben, ich helf aber gerne aus, falls nötig.

Unterschiedliche Zeilenumbrüche für Kommentare (;) und Einheiten

Ich habe den Zeilenumbruch auf 1000 gestellt, damit ich in den Routen meiner Schiffe nicht immer einen Umbruch drin habe. Leider wirkt sich das auch auf die Zeilenumbrüche der Kommentare aus, was besonders bei der Zeile " ; Materialpool:" in Regionen in denen man viel und unterschiedliches Zeig liegen hat sehr unübersichtlich bei der Darstellung ist. Wenn das nicht zu aufwändig ist würde ich mir unterschiedliche Optionen für den Zeilenumbruch der Einheiten und den Zeilenumbruch von Kommentaren (mit ;) wünschen.

Option für Sortierung von Schiffen und Gebäuden

Wie schon in Discord angesprochen, würde eine Option welche Schiffe und Gebäude in denen man sich befindet immer über jene sortiert in denen man nicht steht die Übersichtlichkeit in sehr stark bebauten Regionen bzw. Regionen mit massiver Flottenpräsens sehr erhöhen.

Delta auch bei Wirtschaftsbilanz angeben

Bei Personen, Einheiten, Helden und im Warenaustausch sieht man jede Woche das Delta zur Vorwoche. Bei der Wirtschaftsbilanz sind nur die absoluten Zahlen von Einkommen, Ausgaben und Vermögen angegeben. Ich fände es kosistenter und praktischer, wenn hier auch zusätzlich das Delta zur Vorwoche mit angegeben wird.

Der Marker für das Kommando auf Schiffen bzw. in Gebäuden sollte mit ':' getrennt werden

Bei Einheiten auf Schiffen oder in Gebäuden wird durch ein S oder s bzw. B oder b angezeigt das die Einheit auf einem Schiff oder in einem Bauwerk ist und die Version mit Großbuchstaben markiert die Einheit mit dem Kommando.

Das Feature stammt aus der Zeit vor der Base36-Umstellung und ist mit den alphanumerischen Einheitennummern unübersichtlich, darum sollte ein Trennzeichen (':') dazwischen angezeigt werden.

REGION.BUILDING[<idx>].Unterhalt ist immer 0

Ich iteriere über alle Gebäude einer Region und möchte den Unterhalt für das Gebäude übergeben. Unabhängig vom Typ des Gebäudes bleibt $unterhalt aber immer 0.
Alle anderen Attribute werden korrekt ausgelesen.

	$j=0
  	$m=REGION.BUILDING.SIZE
	#while $j<$m {
		$name=REGION.BUILDING[$j].Name
		$typ=REGION.BUILDING[$j].Typ
		$besitzer=REGION.BUILDING[$j].Besitzer
		$unterhalt=REGION.BUILDING[$j].Unterhalt
		
		#if $unterhalt>0 {
			$anzahl=UNIT[$besitzer].Anzahl
			$silber=$unterhalt+$anzahl*10
			GIB $besitzer $silber Silber
		}
		$j=$j+1
	}
vorlage.exe -v

Vorlage 1.7.6-96da0b5 [Build 576]

#tag EINHEIT[$var] ejcOrdersconfirmed 1

Anytime I try to set the unit with a $var it throws an error.

Error

$var_ID='hl04'
#tag EINHEIT[$var_ID] ejcOrdersconfirmed 1
#tag EINHEIT[UNIT[$var_ID].NUMMER] ejcOrdersconfirmed 1

These work correctly

#tag EINHEIT['hl04'] ejcOrdersconfirmed 1
#tag EINHEIT[hl04] ejcOrdersconfirmed 1
#tag EINHEIT[UNIT.NUMMER] ejcOrdersconfirmed 1
#tag EINHEIT[UNIT[UNIT.NUMMER].NUMMER] ejcOrdersconfirmed 1

Interne Umstellung auf Unicode

Bisher arbeitet Vorlage intern vollständig mit ISO-8859-1, aber es wäre wünschenswert dort auf den Unicode-Zeichenbereich zurückgreifen zu können, insbesondere für exotische Einheitennamen.
Da Vorlage in der Scriptsprache kein unmittelbares Feature hat, Zeichen in Integer zu wandeln, oder Integer in Zeichen, sind Einflüsse auf die Skripte nicht zu erwarten, so lange die Strings sich so verhalten das Zeichen Codepoints entsprechen, also length(<txt>) die Anzahl der Codepoints und nicht der Bytes liefert, und die Funktionen für reguläre Ausdrücke mit Unicode arbeiten und substr() sich auf Codepoints bezieht, sollte die Skript-Sicht zu der bisherigen kompatibel sein.
Einzig im Umfeld von Inplace-Ausdrücken ($(...)) sind Inkompatibilitäten denkbar, wenn jemand sich Zeichenkonvertierungen selber implementiert hat. Wenn möglich sollte vor Problemen gewarnt werden.

Werte nahe an 0xffffffff

Hallo,

Hier scheint was nicht zu passen, es schaut wie ein negativer Wert aus der als uint32_t interpretiert wird.

10: 26560 ; . . |Pl. frei: 4294967283 -1| | |
11: 26753 ; . W |Pl. frei: 4294967292 -1|Bäume: 1 +0|Schößlinge: 4 +0|
12: 27302 ; - XXX (xxx), 1(+4294967153) Person
13: 27386 ; + YYY (yyy), 52(+4294967291) Personen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.