Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Drakensang Savegame Format (*.dsa)
#19
Ich hab mir das ganze etwas einfacher gemacht und den Gegenstand einfach in eine Truhe geschmissen.
Zum einfügen des Gegenstandes habe ich in die Savegamedatei die Template Tabellen aus %root\Drakensang\export\db\game.db4 importiert.
Hier mal eine Beispielhafte SQL~Query welche ein Paar Amazonenbeinschienen einfügt.
Code:
INSERT INTO _Instance_Armor
(Guid,_ID,_Level,_Layers,Transform,Id,Graphics,Physics,GfxSkin,Name,LookAtText,
EquipmentType,RSKo,RSBr,RSRu,RSBa,RSLA,RSRA,RSLB,RSRB,ArMaterial,
ArTyp,ArGes,ArBE,QuestId,Gew,PickingRange,Value,ScriptPreset,ScriptOverride
,LimitedScript,PermanentEffect,IconBrush,Arme,Haende,Torso,Beine,Fuesse,Haare,
LookAtUnidentified,IdentificationTalent,InfoUnIdentified,InfoIdentified,
IdentificationDifficulty,IsIdentified,Robable,PickingHeight,UseAnim,CanUse,Race,
Sex,StorageGUID,Lootable,VelocityVector,PhysicCategory,StorageSlotId,SoundUI,
IsTradeItem,InventoryType,IsEquiped,EquipmentSlotId,LocalizeLookAtText,
IsMagical,CanDestroy,UseTalent,EntityDiscovered)
values (null,null,"dungeon02_hauptquartier",null,null,
(SELECT field1 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field2 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field3 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field4 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field5 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field6 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field7 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field8 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field9 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field10 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field11 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field12 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field13 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field14 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field15 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field16 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field17 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field18 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field19 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field20 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field21 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field22 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field23 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field24 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field25 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field26 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field27 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field28 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field29 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field30 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field31 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field32 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field33 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field34 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field35 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field36 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field37 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field38 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field39 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field40 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field41 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field42 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field43 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field44 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),(SELECT field45 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT field46 FROM _Template_Armor WHERE field1 = 'beine_amazonenruestung'),
(SELECT Guid FROM _Instance_Chest WHERE Id = "loc02_chest_spielerhaus_05"),0,null,"Pickable",-1,"ui_equipment",0,null,-1,null,1,0,0,null,0)
Vorsicht mit der Formatierung des Forums, gegebenenfalles müsst ihr Leerzeichen entfernen ;)

Die Guid (der Primärschlüssel) wird auf Null gesetzt, da er automatisch vergeben wird, verwendet man den Guid eines anderen Gegenstandes verschwindet dieser aus der Table.
Diese Query fügt ein Paar Beinschienen in einer Kiste ein und ist erst einsetzbar wenn man ein paar Quests in Ferdok gelöst hat.

Wenn ihr die Template Tabelle richtig importiert habt könnt ihr den Ausdruck 'beine_amazonenruestung' durch irgendetwas ersetzen, was euch interessanter vorkommt ;)
Viel Spaß beim experimentieren... Wer schlau ist benutzt replace ;)

Ps. mir ist bewusst, dass es sicher auch eine elegantere Methode gibt.. nur leider bin ich in SQLite nicht sonderlich bewandert. Bei Zeiten werde ich das ganze wohl mal programmatisch lösen.

EDIT: Nochmal etwas übersichtlicher, allerdings in zwei Statements gesplittet.
Nochimmer in die Kiste und 'beine_amazonenruestung' durch einen beliebigen Ausrüstungsgegenstand aus der _Template_Armor ersetzbar.
Code:
INSERT INTO "_Instance_Armor"
("_ID","Id","Graphics","Physics","GfxSkin","Name","LookAtText",
"EquipmentType","RSKo","RSBr","RSRu","RSBa","RSLA","RSRA","RSLB",
"RSRB","ArMaterial","ArTyp","ArGes","ArBE","QuestId","Gew",
"PickingRange","Value","ScriptPreset","ScriptOverride",
"LimitedScript","PermanentEffect","IconBrush","Arme","Haende",
"Torso","Beine","Fuesse","Haare","LookAtUnidentified",
"IdentificationTalent","InfoUnIdentified","InfoIdentified",
"IdentificationDifficulty","IsIdentified","Robable",
"PickingHeight","UseAnim","CanUse","Race","Sex")
SELECT
"field1","field1","field2","field3","field4","field5","field6","field7","field8","field9", "field10",
"field11","field12","field13","field14","field15","field16","field17","field18","field19", "field20",
"field21","field22","field23","field24","field25","field26","field27","field28","field29", "field30",
"field31","field22","field33","field34","field35","field36","field37","field38","field39", "field40",
"field41","field22","field43","field44","field45","field46"
FROM _Template_Armor
WHERE field1 = 'beine_amazonenruestung'
Code:
UPDATE "_Instance_Armor"
SET "Guid" = null,"_ID" = null,"_Level" = "dungeon02_hauptquartier",
"_Layers" = null,"Transform" = null,
"StorageGUID" = (SELECT Guid FROM _Instance_Chest WHERE Id = "loc02_chest_spielerhaus_05"),
"Lootable" = 0,"VelocityVector" = null,"PhysicCategory" = "Pickable",
"StorageSlotId" = -1,"SoundUI" = "ui_equipment","IsTradeItem" = 0,
"InventoryType" = null,"IsEquiped" = -1,"EquipmentSlotId" = null,
"LocalizeLookAtText" = 1,"IsMagical" = 0,"CanDestroy" = 0,
"UseTalent" = null,"EntityDiscovered" = 0
WHERE _ID = "beine_amazonenruestung"
Zitieren


Nachrichten in diesem Thema
Drakensang Savegame Format (*.dsa) - von Shazu - 02.08.2008, 23:21
RE: Drakensang Savegame Format (*.dsa) - von Jinnay - 07.08.2008, 04:14



Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste