Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0002175 | Eressea | Magie | öffentlich | 2015-12-06 12:59 | 2017-12-05 19:50 |
Reporter | Enno | Bearbeitung durch | Enno | ||
Priorität | normal | Schweregrad | kleinerer Fehler | Reproduzierbar | nicht getestet |
Status | geschlossen | Lösung | erledigt | ||
Produktversion | 3.7.4 | ||||
Zielversion | 3.8.1 | Behoben in Version | 3.8.1 | ||
Zusammenfassung | 0002175: Unstimmigheiten in Zauber "Fluch brechen" | ||||
Beschreibung | In der XML-Datei der Zauber steht für break_curse (sp_destroy_magic): parameters="kcc?" Das heisst, die korrekte Syntax sollte sein KEYWORD Aus dem Report der Partei 7:
Beschreibung: Dieser Zauber ermöglicht dem Magier, gezielt eine bestimmte Verzauberung einer Einheit, eines Schiffes, Gebäudes oder auch der Region aufzulösen. Art: Normaler Zauber Stufe: 7 Rang: 3 Komponenten:
| ||||
Zusätzliche Informationen | Interessant auch, dass nur syntax="spellid" in den Daten steht, d.h. für einen eventuellen zweiten Parameter ist hier überhaupt kein Name angegeben. | ||||
Tags | Keine Tags zugeordnet. | ||||
Partei | 7 | ||||
Spiel | E2 | ||||
Report | 957 | ||||
Ich fürchte, dass das parameters Attribut hier einfach falsch ist. Im Code wird sich auf eine zweites Argument auch nie bezogen, und ich kann mir kaum vorstellen, was das sein sollte. |
|
Ja, das war mir auch aufgefallen. Ich dachte, ich hätte das ? schon entfernt. Das zweite Argument ist aber nötig (sp_break_curse) Das sollte kcc heißen und gut. |
|
Oh, ich sehe gerade, habe sp_break_curse und sp_destroy_magic verwechselt, weil letzteres auch break_curse aufruft. Danke. |
|
Problem ist noch, wie macht man es, dass ein Ziel angegeben werden kann, welches REGION/EINHEIT/SCHIFF/GEBÄUDE sein kann? Es müsste da noch einen parameter-typ geben, der das symbolisiert (c reicht nicht), oder die Syntax von "parameters" muss komplexere Ausdrücke verstehen. Uff. Im Code steht der so beschrieben:
Im Report ist es ja immer nur eine Zeile, da müsste es also evtl. so heißen: ZAUBERE "Fluch brechen" [REGION | EINHEIT Warum muss man das Ziel überhaupt angeben, die Zauber-Id ist doch wohl eigentlich global eindeutig? |
|
Aha. Dass das angegeben wird, ist ein Shortcut, um das verzauberte Objekt zu finden (mit der Zauber-Id bekommt man über findcurse nur ein struct curse, aber keinen Hinweis darauf, was da verzaubert ist. Für remove_curse braucht man allerdings das Ziel, und für die Erfolgsmeldung auch. Ich schalge vor, für 3.8 ändern wir die Syntax des Zaubers, und lassen sp_destroy_magic mehr Arbeit machen (alle Objekte der Region durchsuchen, oder das Ziel des Zaubers in struct curse speichern). |
|
Langsam. Was du da beschreibst, leistet 'kc' bereits. Das steht für KEYWORD+ID oder so ähnlich. Und die Syntax wird genau so erzeugt, wie du sie beschreibst. Es gibt sogar noch attribute buildingtarget, shiptarget, regiontarget, unittarget, mit dem man das beschränken kann.
Also Deinen zweiten Kommentar verstehe ich vielleicht nicht. Willst du die Syntax auf ZAUBERE "Fluch brechen" |
|
"lohnt sich das" kann ich nicht beantworten. Ich dachte halt, einfacher ist besser, und das sollte nicht schwierig sein, aber es kann natürlich gut sein, dass die Antimagie-Sprüche wirklich niemand verwendet. Dazu kommt, dass mich der Spruch auch durch seine Komplexität verwirrt hat, weshalb ich heute schon ein bisschen Zeit da hinein gesteckt habe. Das nicht wieder tun zu müssen, wäre schon lohnend. So eine angekündigte Veränderung zu einem neuen Release finde ich dann einen guten Zeitpunkt für so eine Veränderung, wenn man es macht. |
|
In erster Näherung habe ich jetzt mal das Fragezeichen aus dem Syntax genommen (und den Code, der es benutzt hätte, gefixt). https://github.com/eressea/server/pull/429 Falls ich nach meiner OP noch Lust habe, den Spruch zu vereinfachen, habe ich die Arbeit daran in einen lokalen Branch getan. Schauen wir mal. |
|
Noch mal nachgedacht. Ist das denn immer eindeutig? Können zum Beispiel eine Einheit und eine Region gleichzeitig mit einem Spruch mit der selben ID verzaubert sein? Oder wahrscheinlicher: Können zwei Einheiten mit dem selben Zauber verzaubert sein? Falls ja, würde das den Zauber Fluch brechen einerseits mächtiger machen -- er kann zwei Einheiten gleichzeitig entzaubern -- und andererseits weniger mächtig -- er kann nicht eine Einheit entzaubern und die andere in Ruhe lassen. Mir fällt kein Zauber ein, der mehrere Objekte gleichzeitig betrifft, aber das muss nicht heißen, das es so etwas nicht gibt. |
|
Im Log heute moegen stand immer noch: ERROR: unknown spell parameter ? for spell analyze_magic |
|
In E3 war da immer noch kc? in dem Zauber, gefixt in https://github.com/eressea/server/pull/436 |
|
reicht für's erste hier. |
|
Änderungsdatum | Benutzername | Feld | Änderung |
---|---|---|---|
2015-12-06 12:59 | Enno | Neuer Eintrag | |
2015-12-06 12:59 | Enno | Status | neu => zugewiesen |
2015-12-06 12:59 | Enno | Bearbeitung durch | => Enno |
2015-12-06 13:00 | Enno | Notiz hinzugefügt: 0006381 | |
2015-12-06 13:00 | Enno | Notiz hinzugefügt: 0006382 | |
2015-12-06 13:28 | Solthar | Notiz hinzugefügt: 0006383 | |
2015-12-06 14:19 | Enno | Notiz hinzugefügt: 0006384 | |
2015-12-06 14:24 | Enno | Notiz hinzugefügt: 0006385 | |
2015-12-06 14:29 | Enno | Notiz hinzugefügt: 0006386 | |
2015-12-06 15:35 | Solthar | Notiz hinzugefügt: 0006387 | |
2015-12-06 16:41 | Enno | Notiz hinzugefügt: 0006390 | |
2015-12-06 16:54 | Enno | Notiz hinzugefügt: 0006391 | |
2015-12-06 17:42 | Solthar | Notiz hinzugefügt: 0006395 | |
2015-12-13 09:36 | Enno | Notiz hinzugefügt: 0006408 | |
2015-12-15 08:08 | Enno | Notiz hinzugefügt: 0006409 | |
2015-12-17 13:46 | Enno | Notiz hinzugefügt: 0006415 | |
2015-12-17 13:46 | Enno | Status | zugewiesen => erledigt |
2015-12-17 13:46 | Enno | Behoben in Version | => 3.8.1 |
2015-12-17 13:46 | Enno | Lösung | offen => erledigt |
2017-12-05 19:50 | Enno | Status | erledigt => geschlossen |
2022-04-27 17:27 | Enno | Kategorie | ZAUBER => Magie |