[Guide]Proto vom Server nach Client exportieren

08/31/2012 13:32 .Scare™#1
Hallo Com,

Quote:
Ich wollte eigentlich gerade anfangen ein Tool zu schreiben mit dem man die item_proto und die mob_proto vom Server in den Client exportieren kann.
Doch dabei bin ich bei Navicat Premium auf was ganz gutes gestoßen.

Man kann ohne ein tool die proto's von dem Server so Exportieren das man eine fast fertige .dump.xml hat.

wie das geht erkläre ich euch nun hier:
Was braucht ihr:
  • [Only registered and activated users can see links. Click Here To Register...] (Hier handelt es sich um eine Trial lizenz, ohne keygen etc, daher kein Warez)
  • Notebad++
  • Brain

Wie geht es:

Ihr startet nun Navicat Premium und geht in die Player Datenbank, darin findet ihr eure 2 proto's.

Nun macht ihr einen rechts klick auf die item_proto und wählt "Export Wizard" aus.

Nun öffnet sich ein neues Fenster bei dem ihr mehrere Formate zur auswahl habt. da wählt ihr nun "XML file(*.xml)" aus und klickt auf Next.

Nun kommt ein neues Fenster bei dem ihr angeben müst wo das ihr sie speichern wollt. (das ist euch überlassen wo.) wen ihr das erledigt habt klickt auf Next.

Jetzt kommt schon wider ein neues Fenster bei dem ihr Optional einzelne Zeilen entfernen könnt, ich mache alles. dan wider auf Next klicken.

Beim nachfolgendem Fenster muss aktiviert sein:
  • Include column titles
  • Continue on error (optional)
  • Use Attributes Format in XML

Jetzt wider auf Next und Start

So, nun habt ihr es fast geschaft.

Hier sind nun 2 Ausschnitte eine von einer originalen item_proto_dump.xml und eine von der proto die wir gerade exportiert haben.

Original:
Code:
<item_proto extended="true" version="1">
	<Item vnum="1" name="'µ·²Ù·¯¹Ì'" gb2312name="Yang" type="9" subtype="0" weight="0" size="1" antiflag="0" flag="0" wearflag="0" immuneflag="0" gold="0" buy_price="0" limittype0="0" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0" socket1="64992" socket2="127" socket3="64976" socket4="21631" socket5="4855" refine_vnum="0" refine_set="0" magic_pct="0" specular="0" socket_pct="0" />
	<Item vnum="2" name="'Çѱ¹¹«½Ö¹öÁ¯'" gb2312name="Deutsche Version" type="0" subtype="0" weight="0" size="1" antiflag="0" flag="0" wearflag="0" immuneflag="0" gold="0" buy_price="0" limittype0="0" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0" socket1="64992" socket2="127" socket3="64976" socket4="21631" socket5="4855" refine_vnum="0" refine_set="0" magic_pct="0" specular="0" socket_pct="0" />
	<Item vnum="10" name="'µµ+0'" gb2312name="Schwert+0" type="1" subtype="0" weight="0" size="2" antiflag="32" flag="1" wearflag="16" immuneflag="0" gold="0" buy_price="0" limittype0="1" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="7" applyvalue0="22" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="15" value2="19" value3="13" value4="15" value5="0" socket0="0" socket1="64992" socket2="127" socket3="64976" socket4="21631" socket5="4855" refine_vnum="11" refine_set="1" magic_pct="15" specular="0" socket_pct="1" />
</item_proto>
Exportierte:
Code:
<?xml version="1.0" standalone="yes"?>
<RECORDS>
<RECORD vnum="1" name="µ·²Ù·¯¹Ì" locale_name="Yang" type="9" subtype="0" weight="0" size="1" antiflag="0" flag="0" wearflag="0" immuneflag="" gold="0" shop_buy_price="0" refined_vnum="0" refine_set="0" refine_set2="0" magic_pct="0" limittype0="0" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0" socket1="127" socket2="127" socket3="127" socket4="127" socket5="127" specular="0" socket_pct="0" addon_type="0"/>
<RECORD vnum="2" name="Çѱ¹¹«½Ö¹öï" locale_name="Deutsche Version" type="0" subtype="0" weight="0" size="1" antiflag="0" flag="0" wearflag="0" immuneflag="" gold="0" shop_buy_price="0" refined_vnum="0" refine_set="0" refine_set2="0" magic_pct="0" limittype0="0" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0" socket1="127" socket2="127" socket3="127" socket4="127" socket5="127" specular="0" socket_pct="0" addon_type="0"/>
<RECORD vnum="10" name="µµ+0" locale_name="Schwert+0" type="1" subtype="0" weight="0" size="2" antiflag="32" flag="1" wearflag="16" immuneflag="" gold="0" shop_buy_price="0" refined_vnum="11" refine_set="1" refine_set2="0" magic_pct="15" limittype0="1" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="7" applyvalue0="22" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="15" value2="19" value3="13" value4="15" value5="0" socket0="0" socket1="127" socket2="127" socket3="127" socket4="127" socket5="127" specular="0" socket_pct="1" addon_type="0"/>
</RECORDS>
Jetzt sehen wir das es noch kleine Unterschiede gibt.
Diese Unterschiede können wir am besten mit "Notepad++" verbessern.

Wir öffnen nun die gerade Exportierte .xml mit Notebad++
drücken ctrl+F oder strg+F (je nach Tastatur) geht nun auf den Register Ersetzen.

hier sind die suchen und ersetzen befehle die ihr eingeben müst:
Code:
Suchen          Ersetzen

<?xml version="1.0" standalone="yes"?><RECORDS>        <item_proto extended="true" version="1">

RECORDS          item_proto

RECORD            item
Bei der mob_proto ist es das selbe nur müsst ihr da andere Wörter ersetzen (logisch oder)

HGW, nun habt ihr eine item_proto die ihr in eurem Client nutzen könnt.

auf diese art braucht ihr auch keine tools die nur zu 50% gehen oder garnicht oder sonst noch viele Fehler rein hauen.

nun habt ihr immer eine perfekt an den Server angepasste proto.

Quote:
Ich hoffe das einigen helfen wird. Über ein [Only registered and activated users can see links. Click Here To Register...] würde ich mich auch freuen. =)

Mfg .Scare™
08/31/2012 13:37 IgorGlock#2
Hehehe, die klassiche Methode ganz ohne Tools.

Fein, fein.
08/31/2012 13:51 [Patrick]#3
Danke, werde ich ganz sicher gebrauchen können. :)

€dit: Mal eine dumme Frage, geht auch Item_proto Clientside zu Serverside? :awesome:

Müsst doch auch gehen, oder nicht? :D
08/31/2012 14:01 .Scare™#4
Quote:
Originally Posted by [Patrick] View Post
Danke, werde ich ganz sicher gebrauchen können. :)

€dit: Mal eine dumme Frage, geht auch Item_proto Clientside zu Serverside? :awesome:

Müsst doch auch gehen, oder nicht? :D
Ja und nein, kommt ganz drauf an ob du eine .dump.xml hast bei der alle werte drin stehen, wen ja dann müsste es gehen, ansonsten könnte ein fehler kommen oder es fehlen halt noch ein paar Daten in der proto auf dem Server.

ich habe gerade ein tool geschrieben welches du von der .dump.xml to .sql conventieren kannst, weis nur noch nicht ob ich es wirklich releasen soll, da die Com hier recht undankbar ist....

mfg
08/31/2012 14:04 [Patrick]#5
Ok, danke. Dann werde ich es lieber nicht versuchen von xml zu sql. :)
08/31/2012 15:17 .Scare™#6
Programm an [Patrick] geschikt,

hoffe es passt alles. bei fragen etc, einfach eine pn schicken.
08/31/2012 15:33 vıo#7
Nice
08/31/2012 19:44 .Scare™#8
Quote:
Originally Posted by B0XeR #1 View Post
Nice
Danke,

da ich bis jetzt noch keine Grossen Fragen gesehen habe, denke ich das es verständlich ist.

Hoffe es wird euch noch helfen, da dies ja schon immer ein großes Thema wahr mit dem Client to Server und umgekehrt.

mfg

Edit: DL Link für NaviCat Premium hinzugefügt (Post #1)
08/31/2012 20:41 andreyo2011#9
Hi,

Can you translate it in english?I don't know german and google translate isn't very usefull.
09/01/2012 00:33 .Scare™#10
Quote:
Originally Posted by andreyo2011 View Post
Hi,

Can you translate it in english?I don't know german and google translate isn't very usefull.
sorry, my english is very poor.
but I will try as best I can translate.