Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0002491 | Eressea | General | öffentlich | 2018-09-11 18:58 | 2022-07-17 15:15 |
Reporter | Solthar | Bearbeitung durch | Enno | ||
Priorität | normal | Schweregrad | kleinerer Fehler | Reproduzierbar | nicht getestet |
Status | erledigt | Lösung | erledigt | ||
Produktversion | 3.17.2 | ||||
Zielversion | 27.2 | Behoben in Version | 27.3 | ||
Zusammenfassung | 0002491: Verfluchte Gegenstände verhalten sich nicht, wie sie sollen | ||||
Beschreibung | Mir scheint, dieser Code in laws.c verursacht, dass "verfluchte" Gegenstände im Astralraum zerfallen. Ich vermute, dass aber das Gegenteil beabsichtigt war, oder?
| ||||
Tags | Keine Tags zugeordnet. | ||||
Partei | 1wpy | ||||
Spiel | E2 | ||||
Report | 1092 | ||||
Für beutel des nagativen gewichts könnte das auch gewollt gewesen sein. Warum die not lost sind verstehe ich eh nicht. |
|
Die sind aber nicht CURSED. Was der Unterschied ist, könnte ich gar nicht so schnell sagen. CURSED kann man nicht weggeben, ist die Grundidee, glaube ich. Nur ein paar sehr handgeschneiderte Gegenstände haben dieses Attribut. |
|
Hab mir bei der Gelegenheit die Attribute mal angeschaut: notlost: snowball/man/globe, birthdaycake, lebkuchenherz, questkey1/2, museumexitticket (aber nicht museumticket), magicbag, pegasus, elvenhorse, dolphin, mistletoe, notlost und cursed: ring_of_levitation, aog, jadee_ring/dress, wentee_ring/dress, lmsreward, cursed: seashell, presspass CURSED: battle.c: geht nicht kaputt, wenn Besitzer stirbt (BUG? sollte NOTLOST sein?) give.c: kann nicht übergeben werden; verhindert Einheiten- oder Personenübergabe (BUG? aber nicht, wenn Partei oder Einheit stirbt (unit.c:gift_items())? CURSED | NOTLOST: battle.c: wird auf jeden Fall erbeutet (BUG? Sollte cursed wirklich erbeutet werden?) CURSED & !NOTLOST: laws.c: zerfällt im Astralraum NOTLOST: faction.c: wird auf jeden Fall übergeben, wenn Partei stirbt unit.c: wird nicht an Bauern übergeben, wenn Partei stirbt (BUG? s.o., gift_items()) laws.c: verhindert Astralraumzerfall Zusammenfassend: Die Intention von CURSED scheint zu sein, dass es nicht übergeben werden kann, die von NOTLOST, dass es nicht verschwinden kann. Was ist aber mit Gegenständen, die beides sind? Kann ich sie erbeuten, wie eine verfluchte Waffe in D&D? Oder eben nicht, weil es ein personalisierter Gegenstand ist wie ein Presseausweis? Im Code scheinen beide Ideen vorzukommen. Weitere mögliche Fehler: sp_combatrosthauch / sp_rosthauch / sp_seduce ignorieren die Flags sp_undeadhero kann CURSED umgehen |
|
Oh je, verfluchte Gegenstände können durch RESERVIERE übergeben werden (aber nicht durch GIB). |
|
Ich habe ein "Amulett des Treffens" im Kampf erbeutet, kann das aber nicht abgeben. Das muss dann aus obiger Liste "imsreward" oder "aog" sein, die restlichen Dinge sind ja recht klar am Namen zu erkennen. Mindestens beim Ring der Levitation ist es gewollt gewesen, dass der nach dem tode des Besitzers weiterhin existiert. |
|
Ja, das Amulett des Treffens ist aog (Amulett of Gathering). Zu der Motivation für den Astralraum-Code kann ich nicht mehr viel sagen, das ist lange her. Wir wollten auf jeden Fall vermeiden, dass man mit Pferden Massenhaft Material transportiert, und keine Schiffe mehr für eine Invasion braucht. Der Beutel des n. Gewicht fällt da wohl auch drunter. Mir sind diese Flags auch nicht geheuer, es kann gut sein, dass die gelegentlich vertauscht worden sind. Ich werde mir das selber noch einmal ansehen müssen, Danke aber auf jeden Fall für die detailierte Auflistung! |
|
Zur Ergänzung: Verwirrend ist hier auch, dass Gegenstände auf verschiedene Weisen verändern können: Da gibt es i_change und i_remove, die nicht nur direkt, sondern auch von change_resource aufgerufen werden und zwar über den Hook resource_type.uchange(), was aber möglicherweise i_change auch ganz übergehen kann ... Schwer zu sagen, wo da überall abfragen auf ITF_CURSED und NOTLOST sein müssten. |
|
lmsreward ist übrigens der "Gürtel der Heldentaten", der Lohn für den Sieg bei einem "Last Man Standing" Event, den es wohl mal gab. Hat den wohl jemand? Vor einer Weile, als ich mal Inventar gemacht habe, gab es davon zwei Stück. |
|
Ich traue mich immer noch nicht recht dran an diese Sache, weil ich nicht weiß, was die Intention hinter astral_crumble war. Ich habe auch keine commit history, weil der Code von vor 2010 ist. |
|
Mhhh, astral crumble klingt irgendwie lecker und gleichzeitig gefährlich. Zumindest im Announce von 2005 ist keine Erwähnung davon: ** Astralraum, Problematik Der Astralraum ist eine ziemlich praktische Angelegenheit, und Zugang zum Astralraum so etwas wie Lufthoheit - ohne sieht man auf Dauer echt alt aus. Allerdings ist das ganze zu weit gegangen. In letzter Zeit werden Kriege vermehrt geführt, indem die komplette Invasionsarmee durch den Astralraum gelaufen kommt und mitten auf der angegriffenen Insel aussteigt. Das ist bei der Pentagramm-Tirawon Schlacht so gewesen, und auch vorher schon passiert. Momentan sind über 50.000 Personen im Astralraum. Das ganze ist aus mehreren Gründen schlecht: Jegliches Verschiffen von Truppen wird überflüssig, weil man im Astralraum schneller und sicherer vorankommen kann, wenn man nur eine Armee hat, die groß genug ist. Man kann auch wesentlich mehr Gewicht mitnehmen als auf Schiffen, da Katapulte, Pferde, Steine, usw. keinerlei Problem sind (speziell wegen des Draig-Zaubers). Ein einzelnes Magiegebiet (Draig) kriegt einen abnormen Vorteil - eine Allianz die den Zauber nicht hat, kann eigentlich Invasionen vergessen. Und es gibt noch weniger als ohnehin schon Möglichkeiten, sich auf einen Angriff vorzubereiten - es ist schlimm genug, seine Küsten zu befestigen, aber wenn die Feinde prinzipiell von überall kommen können, was soll man da noch tun? ** Astralraum, Änderungen
|
|
Das sollte auf jeden Fall einheitlich sein. |
|
Ich habe einen Bugfix für RESERVIERE eingespielt. |
|
Zum Amulett des Treffens: Da war glaube ich die Intention, dass das nur Spieler haben, die bei dem ersten Bremer Treffen dabei waren, und dass sie es nicht aus Versehen verlieren können. Das gibt der Code natürlich so nicht her, und inzwischen sind die Dinger sicher zum großen Teil in den falschen Händen, und die Spieler verschwunden. Da brauche ich nichts mehr zu retten, glaube ich, das ist halt, wie es ist. |
|
Allerdings: seashell und presspass sind Gegenstände wie das Amulett des Treffens. Soll der Besitzer nicht an andere Parteien geben können, deshalb CURSED. Und sollen im Astralraum nicht kaputt gehen, deshalb nicht NOTLOST. Dann sollte das Amulett evtl. auch so sein, und ich glaube, der Code tut das richtige. |
|
Irgendwie scheint es aber eine Konfusion (evtl. nur bei mir) zu geben, zwischen "Gegenstände, die die Einheit nicht weggeben kann" und "Gegenstände, die man einer anderen Partei nicht geben darf". |
|
Aber aktuell würde seashell im Astralraum doch kaputtgehen (da cursed und nicht NOTLOST). |
|
Ja, ich glaube, das muss alles nochmal neu durchdacht werden, angefangen von "was wollen wir eigentlich erreichen?". Wir wollen Dinge, die man nicht an andere Parteien geben kann (z.B. seashell), und Dinge die nicht aus der Welt verschwinden können (z.B. museumticket). Sonst noch Kategorien? Gibt es überhaupt einen Grund, Übergabe innerhalb der eigenen Partei zu untersagen? |
|
Mal sehen: Wildentes Hochzeitsfrack? Vielleicht war der schon so gedacht. Ring der Levitation? Amulett des Treffens? Gürtel der Heldentaten? Akkredition des Xontormia-Expreß? Dafür finde ich keinen Code mehr. Sind also nur noch Andenken, falls sie noch existieren. Bleibt als einziges die Muschel. Die kriegt man auf dem Muschelplateau und kann damit offenbar eine Art Nachricht abspielen. Das sollte tatsächlich dann auch nicht innerhalb der Partei übergeben werden. Und es gibt keinerlei Grund, dass sie im Astralraum zerfallen sollte. Es ergibt tatsächlich auch Sinn, dass die Muschel nicht NOTLOST ist. Man kann den Status "ist auf dem Muschelplateau gewesen" nicht erben. Die anderen NOTLOST-Gegenstände sind dann noch Schneeball/mann, Schneekugel, Pegasus (gibt es da noch einen?), Zauberbeutel, Elfenpferd, Delphin (!?), Mistelzweig. Davon finde ich Zauberbeutel und Elfenpferd problematisch. Das führt theoretisch zu einer Inflation, da die noch neu erzeugt werden, aber nicht kaputt gehen. Die anderen sind wohl einmalige Sachen, insofern finde ich es hübsch, dass sie nicht kaputt gehen. Questkeys gibt es zwar noch Code, ich weiß aber nicht, ob der noch triggern kann. Auf jeden Fall scheint es plausibel (gewesen) zu sein, dass die nicht verloren gehen können. Ohne Key kein Quest. Ähnliches gilt wahrscheinlich für Museumtickets? Lebkuchenherz ist wohl auch eher ein Andenken. |
|
Fazit: Ja, Cursed sollte Übergabe auf welchem Wege auch immer verhindern. Der Gegenstand geht mit der Einheit verloren. Wobei es da mit Personenübergaben ein schwer zu stopfendes Loch gibt. Dazu müsste man die Regel einführen "An eine Einheit mit einem CURSED Gegenstand dürfen keine Personen übergeben werden". Meiner Meinung nach dürften sie auch nicht im Kampf erbeutet werden. Das gibt nur weitere Schlupflöcher. Der Status NOTLOST und CURSED ist demnach meiner Ansicht nach ein Widerspruch. Wenn es nach dem Tod der Einheit erhalten bleibt, kann man es auch gleich übergebbar machen, oder? Ich würde für die entsprechenden Gegenstände einfach das CURSED-Flag entfernen. Sie haben keine Funktion mehr und sind nur noch Andenken. An vielen Stellen im Code wird CURSED und NOTLOST gleich behandelt. Das wäre dann ein Fehler. Testfälle für Cursed: Verboten sind GIB, RESERVIERE, Beute und dieser Gib-mir-all-dein-Zeug-Zauber. Gibt es noch andere? Erlaubt ist EInheitenübergabe. Und CURSED sollte eher NOT_TRANSFERABLE heißen. Und ja, die CURSED-Sache im Astralraum ist ein Bug. Elfenpferde und Zauberbeutel sollten wahrscheinlich kein NOTLOST mehr haben. Testfälle für Notlost: Hm, im Grunde sollte es da der Hook beim Entfernen von leeren Einheiten reichen? Oder wie läuft das nach dem Kampf oder wenn eine Einheit ertrinkt oder verhungert? NOTLOST-Gegenstände sollten vererbt oder erbeutet werden oder, falls keine Erben da sind, kriegt die ein Geist. Und was passiert, wenn die Einheit zum Beispiel ertrinkt? Gibt es Wasserzombies? |
|
Wenn die Einheit stirbt erbt ein Ghast, wenn die Einheit ertrinkt, erbt ein Geist, so ist das glaube ich implementiert. Mit den Quest keys kann man ein großes Tor öffnen und vermutlich auch wieder schließen, letzteres teste ich in wenigen Wochen. Ring der Levitation und Amulett des Treffens existieren definitiv noch. Warum soll man die Muschel nicht parteiintern übergeben können, der Sinn dahinter erschließt sich mir nicht wirklich. Generell ist es eine zimlich doofe Sache Gegenstände zu haben, die man nicht innerhalb der Partei übergeben kann (Meist dann an den Museumswärter). Bei Elfenpferden und vor allem Zauberbeuteln bin ich voll bei dir, die sollten keinen besonderen Schutz genießen. |
|
Joa, vielleicht hast du recht. Ich fand die Idee cool, dass der Gegenstand gewissermaßen die Einheit auf immer markiert, aber das könnte auch parteiweit gelten. Das macht die implementierung auch viel einfacher. Man muss eigentlich nur noch auf GIB und Beute und diesem Dingsbumszauber aufpassen. Aber ich vergesse bestimmt was. |
|
Die Änderung an RESERVIERE nehme ich zurück wegen Bug 2871. RESERVIERE und GIB von ITF_CURSED in der eigenen Partei ist erlaubt (aber nicht an fremde Parteien). Es gibt da noch einen seltsamen Check in |
|
Auch geändert habe ich das mit dem Zerfall im Astralraum. Das war in der Tat kontraproduktiv. |
|
Offenbar durften Einheiten, die eine Muschel (ITF_CURSED) haben, keine Personen an andere Einheiten abgeben. Das macht keinen Sinn, habe ich gestrichen. Bei der Gelegenheit auch getestet, dass eine Einheit nicht mitsamt ihrer Muschel an eine andere Partei gegeben werden darf. |
|
Änderungsdatum | Benutzername | Feld | Änderung |
---|---|---|---|
2018-09-11 18:58 | Solthar | Neuer Eintrag | |
2018-09-11 19:04 | Xolgrim | Notiz hinzugefügt: 0008089 | |
2018-09-11 22:44 | Solthar | Notiz hinzugefügt: 0008090 | |
2018-09-12 09:02 | Solthar | Notiz hinzugefügt: 0008091 | |
2018-09-12 11:56 | Solthar | Notiz hinzugefügt: 0008092 | |
2018-09-12 11:57 | Solthar | Zusammenfassung | Verfluchte Gegenstände zerfallen im Astralraum? => Verfluchte Gegenstände verhalten sich nicht, wie sie sollen |
2018-09-12 17:32 | Xolgrim | Notiz hinzugefügt: 0008093 | |
2018-09-12 21:11 | Enno | Notiz hinzugefügt: 0008096 | |
2018-09-12 21:11 | Enno | Bearbeitung durch | => Enno |
2018-09-12 21:11 | Enno | Status | neu => zugewiesen |
2018-09-12 21:11 | Enno | Produktversion | => 3.17.2 |
2018-09-12 23:23 | Solthar | Notiz hinzugefügt: 0008100 | |
2018-12-11 18:33 | Enno | Notiz hinzugefügt: 0008298 | |
2022-03-09 18:06 | Enno | Notiz hinzugefügt: 0009550 | |
2022-03-09 18:53 | Solthar | Notiz hinzugefügt: 0009551 | |
2022-03-09 19:50 | Enno | Notiz hinzugefügt: 0009552 | |
2022-03-09 20:23 | Enno | Notiz hinzugefügt: 0009553 | |
2022-03-09 20:23 | Enno | Zielversion | => 27.2 |
2022-03-09 20:27 | Enno | Notiz hinzugefügt: 0009554 | |
2022-03-09 20:34 | Enno | Notiz hinzugefügt: 0009555 | |
2022-03-09 20:38 | Enno | Notiz hinzugefügt: 0009556 | |
2022-03-09 20:38 | Enno | Notiz bearbeitet: 0009555 | |
2022-03-09 22:03 | Solthar | Notiz hinzugefügt: 0009557 | |
2022-03-10 09:20 | Enno | Notiz hinzugefügt: 0009558 | |
2022-03-10 10:10 | Solthar | Notiz hinzugefügt: 0009559 | |
2022-03-10 10:37 | Solthar | Notiz hinzugefügt: 0009560 | |
2022-03-10 11:00 | Solthar | Beziehung hinzugefügt | verwandt mit 0002831 |
2022-03-10 11:19 | Xolgrim | Notiz hinzugefügt: 0009561 | |
2022-03-10 12:56 | Solthar | Notiz hinzugefügt: 0009563 | |
2022-07-16 20:38 | Enno | Beziehung hinzugefügt | verwandt mit 0002871 |
2022-07-16 22:03 | Enno | Notiz hinzugefügt: 0009716 | |
2022-07-16 22:03 | Enno | Notiz hinzugefügt: 0009717 | |
2022-07-17 15:15 | Enno | Status | zugewiesen => erledigt |
2022-07-17 15:15 | Enno | Lösung | offen => erledigt |
2022-07-17 15:15 | Enno | Behoben in Version | => 27.3 |
2022-07-17 15:15 | Enno | Notiz hinzugefügt: 0009718 |