World of Gothic Archiv > Editing
Neue Waffenattribute in Gothic.dat - wo?
Seite 1 von 1  1 
12.09.2003, 21:05 #1
aldee
Beiträge: 153
Neue Waffenattribute in Gothic.dat - wo?
Hat vielleicht jemand von euch herausgefunden, wo in der Gohtic.dat für die Waffen festgelegt wird, ob sie Geschick oder Stärke als Voraussetzung haben bzw. ob und welchen Talentbonus (1H oder 2H) sie besitzen?

In den offensichtlichen Attributen, also z. B.

RANGE_RAPIER
DAMAGE_RAPIER
CONDITION_RAPIER
VALUE_RAPIER

sind diese Werte leider nicht vorhanden, soweit ich feststellen konnte. Ich habe testweise einmal alle Werte des Rapiers mit denen der Rubinklinge überschrieben. Das Rapier braucht Geschick, die Rubinklinge Stärke - das war leider auch nach dem Überschreiben so.

Wer mit dem oben genannten gar nichts anfangen kann: Hier gibt's einige grundsätzliche Infos zum Aufbau der Gothic.dat.
12.09.2003, 21:19 #2
HornOx
Beiträge: 1.458

Hört sich so an als ob die von dir gefundenen Werte Konstanten seid und die nichtgefundenen Werte direkt in der c_item-Instanze zugeordnet werden und deshalb keinen passenden namen haben.
Du kannst ja mal testweise das G1 script kompilieren, ein Attribut ändern, nochmal kompilieren und dann die beiden Versionen vergleichen, dann weißt du wenigstens ob die gesuchten werte in der Nähe vom Instanzenamen steht oder ganz wo anders sind.
12.09.2003, 21:45 #3
aldee
Beiträge: 153

Muss nochmal nachfragen :-) Mit dem ModKit für G1 habe ich mich bislang nicht beschäftigt - ist das Scriptformat in Prinzip gleich geblieben? Und verstehe ich dich richtig: Was ich probieren könnte ist, im G1 ModKit bspw. die Voraussetzung einer Waffe von Stärke auf Geschick zu ändern, anschließend schauen, was sich an der kompilierten G1-Gothic.dat ändert und dann analog die Gothic.dat von NdR dazu durchsehen? Bzw. geht das Ändern des "Voraussetzungs-Attributs" mit dem G1-ModKit "out of the box"?

Prinzipiell ist es ja möglich, in der Gothic.dat von NdR die Attribute der Waffen zu ändern: also Preis, Reichweite, Schaden, Höhe des "Voraussetzungs-Attributs" (egal ob Stärke o. Geschick) - siehe verlinkter Thread. Nur welches Attribut denn nun abgefragt wird sowie die Sache mit dem Talentbonus finde ich leider nicht. Sollte aber doch irgendwie machbar sein, wenn schon der Rest geht :-)

Wenn ich gerade auf dem Schlauch stehen sollte was deine Antwort anbetrifft, bitte ich das zu entschuldigen :-)
12.09.2003, 22:07 #4
NicoDE
Beiträge: 1.398

Du hast bisher globale Konstanten modifiziert, die bei der Initialisierung einer Instanz referenziert werden. Was Du gerade anpassen willst, ist die Instanz selbst.

code\:
instance ItMw_Rapier(C_Item)
{
name = "Rapier";

mainflag = ITEM_KAT_NF;
flags = ITEM_SWD;
material = MAT_METAL;

value = Value_Rapier;

damageTotal = Damage_Rapier;
damagetype = DAM_EDGE;
range = Range_Rapier;

on_equip = Equip_2H_08;
on_unequip = UnEquip_2H_08;

cond_atr[2] = ATR_DEXTERITY;
cond_value[2] = Condition_Rapier;

visual = "ItMw_050_1h_Sword_Rapier_01.3ds";
description = name;
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Dex_needed; COUNT[3] = cond_value[2];
TEXT[4] = NAME_ADDON_BONUS_1H; COUNT[4] = Waffenbonus_08;
TEXT[5] = NAME_Value; COUNT[5] = value;
};



Nach Deiner alten Methode die Konstante Condition_Rapier zu modifizieren mag ja noch gehen (da sie wahrscheinlich nur beim Rapier benutzt wird). Doch ATR_DEXTERITY zu verändern ist jenseits von gut und böse, da es an etlichen Stellen benutzt wird und mit der Konstante in der Engine übereinstimmen muß.


Gruß Nico
13.09.2003, 06:26 #5
HornOx
Beiträge: 1.458

quote:
Was Du gerade anpassen willst, ist die Instanz selbst.
Eigentlich doch nur die Referenz auf die Konstante?

code\:
INSTANCE dummyschwert (C_Item)
{
//cond_atr[2] = ATR_STRENGTH;
cond_atr[2] = ATR_DEXTERITY;
};
Die G1 gothic.dat verändert sich beim Wechsel von ATR_STRENGTH zu ATR_DEXTERITY zwar nur um ein Byte aber das ist zu Weit von "dummyschwert" als das ich da irgeneinen Zusammenhang finden könnte :( Vermutlich wird das ganze auch noch zusätlich erschwert weil cond_atr ein Array ist :(
13.09.2003, 09:54 #6
aldee
Beiträge: 153

@HornOx: Stimmt, die Referenz zu verändern war das, was ich ursprünglich im Sinn hatte - wie dein Versuch zeigt (danke übrigens :-), wird das wohl wenig Erfolg haben. Macht es für den "Bytecode" einen Unterschied, ob man Arrays verwendet? War mir gar nicht bewusst - dachte das sei nur eine Datenstruktur im Quellcode.

@NicoDE: Erstmal, vielen Dank für deine Hilfe. Hier haben wir ja auch den Übeltäter für den Rapier-Bug (also dass das Rapier in der Verkaufsversion von NdR +8 auf 2H anstatt auf 1H liefert). Eine Frage habe ich noch - natürlich auch an alle anderen: Existieren weitere Waffen im Spiel, die +8 auf Zweihand geben (evtl. könntest du mal die Skripts "durchgreppen" ;-)? Ich habe anhand deines Skriptauszugs die Konstanten Equip_2H_08 bzw. UnEquip_2H_08 in Equip_1H_08 bzw. UnEquip_1H_08 umgewandelt - mangels Fähigkeit, die entsprechenden Referenzen aufzuspüren. Funktioniert auch alles bestens (Rapier gibt jetzt +8 auf Einhand). Ist aber natürlich ziemlich "unfein", daher die Frage. Was ich im Sinne habe ist klar, evtl. das Ding auch zum Download anbieten (wie den Light-Patch) - selbstverständlich mit entsprechenden Hinweisen von wegen Savegame erstellen, wenn das Rapier nicht angelegt ist.
13.09.2003, 14:15 #7
aldee
Beiträge: 153

Hab's jetzt einfach mal online gestellt. Hier oder hier.
Seite 1 von 1  1