World of Gothic Archiv > Editing
Allgemeine Fragen zu DEADALUS
Seite 2 von 2  1  2 
10.04.2002, 12:12 #26
HornOx
Beiträge: 1.458

Ist zugegebener weise eine blöde Frage, aber: Kann irgendjemand MENU.SRC parsen? Bei mir motzt der Spacer obwohl ich das Orginalscript parsen will:
U:PAR: Unknown identifier : Apply_Options_performance ( line 183 )
Die datei in der angeblich der Fehler ist heißt menu_opt.d
Eigentlich sieht Apply_Options_Performance(); sehr nach einer externen Funktion aus, zumindest gibts bei mir im gesammten data/scripts-ordner keine weiter datei die noch ein "Apply_Options_Performance" beinhaltet...
[edit]wenn man menu.src per Gothic mit "reparse all scripts" parst funktioniert es gottseidank, aber interessieren würde es mich trotzdem ob nur der Spacer da nur bei mir motzt oder ob es ein Spacerbug ist. Ich hab übrigends das Spacerupdate, daran kanns nicht liegen[/edit]
10.04.2002, 18:04 #27
GülleMüller
Beiträge: 472

Funzt bei mir auch net. Ich denke mal dann isses 100%ig:

Der content und system Script sind unabhängig! Da der spacer nur für die Sachen da ist, welche im Spiel ablaufen braucht/darf er nicht auf die Systemkomponenten zugreifen. Diese stehen nur im Hauptprogramm zur Verfügung. Ich hoffe mal es stimmt so.
(hehe langsam steig ich hinter die Programmstrucktur :) )

Nach den Kommentaren im Script zu Urteilen war es auch notwendig, damit nicht irgendein Modellierer (ist das richtig geschrieben??) das Hauptmenu (Systemsachen, wie Laden,Speichern,usw) anfaßt...
:D :D :D :D

Außerdem beugt sowas schweren Fehlern vor (und hindert die MODder am erweitern des Systemstuff :( ,tschah irgendwas is ja immer)

Naja, ich hab damit eigentlich kein Prob, da ich viel zu selten im Spacer abhänge...
10.04.2002, 18:08 #28
NicoDE
Beiträge: 1.398
Menu.src
Du kannst die Menu.src nicht parsen, weil die Externals fuer das Menu fehlen...
code\:
//////////////////////////////////////////////////////////////////////////////
//
// [GOTHIC]/_work/Data/Scripts/System/_intern/Menu_Externals.d
//
//////////////////////////////////////////////////////////////////////////////

function void Update_ChoiceBox(var string Item) {};
function void Apply_Options_Performance() {};
function void Apply_Options_Video() {};
function void Apply_Options_Audio() {};
function void Apply_Options_Game() {};
function void Apply_Options_Controls() {};
function int PlayVideo(var string Filename) {};

//////////////////////////////////////////////////////////////////////////////
//
// [GOTHIC]/_work/Data/Scripts/System/Menu.src
//
//////////////////////////////////////////////////////////////////////////////

MenuMenu_Defines.d

_internMenu_Externals.d
_internMenu.d

MenuMenu_Main.d
MenuMenu_Opt.d
MenuMenu_Opt_Game.d
MenuMenu_Opt_Graphics.d
MenuMenu_Opt_Video.d
MenuMenu_Opt_Audio.d
MenuMenu_Opt_Controls.d
MenuMenu_Misc.d
MenuMenu_Savegame.d
MenuMenu_Log.d
MenuMenu_Status.d



- nico
10.04.2002, 18:33 #29
NicoDE
Beiträge: 1.398

quote:
Zitat von GülleMüller
[...]Nach den Kommentaren im Script zu Urteilen war es auch notwendig, damit nicht irgendein Modellierer (ist das richtig geschrieben??) das Hauptmenu (Systemsachen, wie Laden,Speichern,usw) anfaßt... :D :D :D :D [...] Außerdem beugt sowas schweren Fehlern vor (und hindert die MODder am erweitern des Systemstuff :( ,tschah irgendwas is ja immer)[...]


Es geht nicht um die MODder...als die Scripte geschrieben wurden war nichtmal die Rede von einem MOD-Kit.
Dass sich das Menu in den Scripten befindet, hat eher den Hintergund, dass das Layout einfacher angepaßt werden kann, ohne den Code ändern zu müssen.


- nico
10.04.2002, 18:38 #30
NicoDE
Beiträge: 1.398

Wenn schon 'eingedeutscht', sollte es dann nicht Modifizierer heissen ?

- nico
10.04.2002, 18:39 #31
GülleMüller
Beiträge: 472

@NicoDE: axo, so kann mans auch machn :)

Gibts da irgendwelche Nebenwirkungen? Könnte sein, daß die Funcs im Quellcode damit probs kriegen(die sind doch da oder?)...
10.04.2002, 18:46 #32
NicoDE
Beiträge: 1.398

Welche Nebenwirkungen?

Die Externals werden dadurch in den Scripten nur bekannt gemacht.
(ja, es gibt diese Funktionen tatsaechlich in der Gothic.exe)
Sie werden ja fleißig im Menu benutzt, und nur dort.
(was das Script nicht weiß macht es nicht heiss--nur hier muss es diese Externals kennen)

- nico
10.04.2002, 20:03 #33
HornOx
Beiträge: 1.458

Warum kann "Gothic.exe -zreparse" die Dateien auch ohne die Dummyfunktionen parsen?
Aber was viel wichtiger ist: es bringt mir trotz allem nichts
Ich hab irgendwie gehoft das das funktionieren würde wenn ich per
quote:
INSTANCE MENUITEM_SAVE_SLOT1(C_MENU_ITEM_DEF)
{[...]
onSelAction[0] = SEL_ACTION_CONCOMMANDS;
onSelAction_S[0]= "insert dummyvieh";
onSelAction[1] = SEL_ACTION_CONCOMMANDS;
onSelAction_S[1]= "zerr rem HornOx";
onSelAction[2] = SEL_ACTION_STARTITEM;
onSelAction_S[2]= "MENUITEM_SAVE_SLOT1";
onSelAction[3] = SEL_ACTION_CLOSE;
onSelAction_S[3]= "SAVEGAME_SAVE";
fontName = MENU_FONT_SMALL;
};
ein NPC einfügen kann und der dann nach dem laden als reaktion auf hero eine Funktion aufruft und dann wieder verschwindet. Funktioniert aber nicht da im menu keine NPC-Instanzen sind und somit wird der Konsolenbefehl ignoriert :( Und selbst wenn ich ganz stupide in menu eine NPC-Instanze erzeugen wird das nicht funktionieren...
Immerhin weiß ich jetzt wie man das Grafikeinstellungenmenü etwas aufpeppen kann :)(wobei das natürlich auch nicht gespeichert wird :()
@NicoDE: Gib mir mal einen Tip, ich brauche entweder eine Funktion die nach jedem Laden oder eine die wirklich andauernd ausgeführt wird. Mir gehn so langsam die Ideen aus. Eine Endlosschleife geht aus Ermangelung einer Schleife nicht und Endlosrekursion zwingt auch den größten Speicher in die Knie...
11.04.2002, 00:18 #34
NicoDE
Beiträge: 1.398

Gegenfrage,

Wie soll innerhalb der Menu.dat auf die Gothic.dat zugegriffen werden,
und wo befindet sich eine globale Variable, die von beiden 'gesehen' wird?

Zum eigentlichen Problem,
warum kann man das nicht mit einem Dialog lösen (habe nicht alle Threads zum Problem gelesen)?


- nico

ps: Tip, laß das Menü wie es ist.
11.04.2002, 13:55 #35
HornOx
Beiträge: 1.458

quote:
Zitat von NicoDE
habe nicht alle Threads zum Problem gelesen
dann hier mal die zusammenfassung:

Problem:
Ich habe vor in meinem Mod das Aussehen des Helden während des Spiels zu verändern. z.B. bekommt er eine Glatze wenn er ins Sumpflager aufgenommen wird oder kann durch benutzen eines Rasiermessers seinen Bart für 2-3 Tage loswerden. Das funktioniert im Spiel auch gut, nur werden die Veränderungen am Aussehen nicht mit abgespeichert und beim laden sieht der held wieder so aus wie es in INSTANCE PC_Hero steht.

Lösungsansatz: Abspeichern des Aussehen des Helden per globaler Variablen (in Gothic.dat) und eine Funktion die entweder immer oder eben nur beim Neuladen ausgeführt wird die das abgespeicherte Aussehen wiederherstellt. Ich brauche also keine Variablen die in beiden .dat's sichtbar sind sondern nur einen Anstoss(vieleicht per Konsolenbefehl) von menu.dat auf gothic.dat das die in gothic.dat gespeicherte Funktion aufgerufen wird.

Absolute Notlösung die funktioniert aber sehr unschön ist: die Funktion die das Aussehen des Helden wiederherstellt muß nach jedem laden manuell(also vom Spieler) durch das benutzten eines Items aufgerufen werden.

Ich habe nicht vor das Aussehen des Helden (wie ja in diversen rollenspielen üblich) am Spielstart vom Spieler festlegen zu lassen(ansonsten würde ich das wirklich per Dialog machen) und selbst wenn könnte ich das nur machen wenn das obige Problem gelöst würde...

Und hier bisherigen fehlgeschlagenen versuche das problem zu lösen:
In "INSTANCE PC_Hero" Mdl_SetVisualBody() mit globalen variablen aufrufen in der Hoffnung das die beim neuladen neu eingelesen wird.
Eine Art Transformationszauber zu benützen, funkt nicht weil solange der Zauber aktiv ist nicht abgespeichert werden kann.

[edit]wenn man die externen Funktionen Npc_MemoryEntry und Npc_HasNews in externels.d in von menu.dat schmugelt sollte man so doch eigentlich daten zwischen den .dat's transverieren könnem. Ist noch nicht getestet aber könnte funktionieren. Ob News abgespeichert werden weiß ich nicht und bei meinem Problem hilf das nichts aber Güllemüller kann das eventuell bei den Tallenten>12 weiterhelfen...[/edit
11.04.2002, 21:50 #36
GülleMüller
Beiträge: 472

das Problem wird sein, daß man nicht auf die C_NPC,C_ITEM usw zugreifen kann. Ich weiß net was passiert, wenn man im system (vorher[ich denke mal das wird zuerst geladen]) ne hero(oder andere)-Instanz erstellt. Kann sein, daß es da Probs gibt, wenn nicht: PEREFKT!

Die externals gelten ja auch fürs Menuzeugs(es ex. jedenfalls alle external Funktionen inner Menu.dat).

tja, allerdings: Wenn man die C_NPC Instanzen vor der Initialisierung im Game erstellt(meinetwegen leer:)) werden die doch bestimmt überschrieben(außer sie bekommen trotz gleichen Namens ne andere interne ID).

Ich kanns frühestens Samstag testen, wenn es jemand anderes früher hinkriegt bitte mal das result posten
thx...

*HOFFDASESFUNZT!
14.04.2002, 02:49 #37
GülleMüller
Beiträge: 472
making da thread go upstairs :)
(bei editieren wird der Thread ja nich hochgeschoben oder?)

@NicoDE: Da du dir bei den Antworten auf (code)inhaltliche Fragen recht sicher warst vermute ich mal, daß dir n paar codeschnipsel oder ein sehr gute Deassambler vorliegen/-t :) (oder hieß das nich mal Disassembler?? Verdammtes Matschbrain ).

Also: Lohnt es sich das oben genannte auszuprobieren, oder weißt du es 100%ig, daß es nich funzt? Dann laufe ich net in Gefahr mein Gothic zum 3.mal innerhalb von 1 1/2 Monaten zu frischn...

Wenn es nicht geht, kannst du mit Sicherheit sagen, daß es für uns Stino-Modder unmöglich ist von content auf system zuzugreifen?

cu

[EDIT]
Hab nochwas vergessen(siehe Matschbrain):
quote:

Gegenfrage,

Wie soll innerhalb der Menu.dat auf die Gothic.dat zugegriffen werden,
und wo befindet sich eine globale Variable, die von beiden 'gesehen' wird?



Es soll so sein, daß das game und menu auf dasselbe Verzeichnis zeigen. Dann könnte es doch sein, daß Gothic nicht 2 untersch. sondern 1 Variable anlegt. Das ist der einzige Hintergedanke, da ich halt nicht genau weiß, ob G1 das eben beschriebene macht. Außerdem ist es die einzige Hoffnung.
Oder kann man mit dieser "onEventAction"-Funk(siehe C_MENU_ITEM) doch auf den content Bereich(Gothic.dat) zugreifen?
14.04.2002, 12:27 #38
NicoDE
Beiträge: 1.398

Selbst wenn es möglich wäre, finde ich, dass man es nicht einsetzen sollte.
Ich möchte nur daran erinnern, dass das Menu geladen sein kann _ohne_ ein laufendes Spiel im Hintergrund zu haben...

- nico

ps: ich halte nicht viel von Disassemblern, selbst die besseren sind definitiv nicht in der Lage brauchbare Ergebnisse zu liefern (auch wenn ich sie benutze, aber nicht für Gothic ;)
14.04.2002, 14:57 #39
GülleMüller
Beiträge: 472

Dafür gibts ja den flag "IT_ONLY_IN_GAME".
Wird ja auch verwendet, um net ein leeres Game zu saven(klingt immer wieder luschtig).

------------INFO ONLY-------------------------------------------
Da ich das noch gar nich so richtig ausformuliert habe, was ich eigentlich machen wollte, erklär ichs mal genauer:
Ich will einen Ordner für die zu parsenden Scripts der Gothic.dat und der menu.dat erstellen, also die Scripts mischen.
Dann werde ich die .src dateien so anpassen, daß sie die notwendigen Scripts (z.B. /content/_Intern/CLASSES.D,...) des anderen Blockes mit einbinden. Nun (hoffe ich) wird z.B. die hero-Instanz zwar in beiden .DATs abgespeichert, aber von beiden Teilblöcken(menu,gothic) erkannt und modifiziert.
Da stellt sich halt die Frage: Wird also die hero-Instanz mit dengleichen oder unterschiedlichen internen IDs abgespeichert?! Tritt das erste ein, kann man von beiden Teilblöcken auf die hero-Instanz zugreifen. Wenn allerdings das zweite der Fall ist, kann mans sogut wie vergessen, weil dann auch die eingefügten Funktionen nicht auf den anderen Block zugreifen können, also:
Du hast zwar alle Funktionen/Variablen in der Gothic.dat und Menu.dat, aber es sind unterschiedliche. Schlußfolgerung: unbrauchbar! (jedenfalls fürs erste)

Die Teilblöcke werden dann in der ini Datei unter [FILES] eingefügt, wobei game=menu=[diesesVerzeichnis] ist.
---------------------Info end--------------------------------------
nagut werd mal sehn obs irgendwie funzt...

cu
20.04.2002, 17:16 #40
GülleMüller
Beiträge: 472
Gut, andere Frage....
Hab gesehn, daß NPCs nicht viel zaubern. Wenn aber dann nur mit hilfe von Animationen(FAKE!! :)). Das ist zwar net so schlimm, nur wie kann ich NPCs dazu bewegen nicht-Angriffs-Zauber zu benutzen(und dann auch außerhalb von Kämpfen)??
Ich bräuchte einfach nur ne Funktion welche die Spell_logic_xxxxx anspricht(sonst muß man improvisieren und das ist heftidsch!). Nur mir scheint, das ist mal wieder intern...

Falls jemand ne bessere Idee hat immer her damit :)
Seite 2 von 2  1  2