ich habe mich die letzte Zeit intensiv mit dem Code des Spiels auseinander gesetzt, zumidest mal mit python. Auch wenn es im Quellcode viele Elemente gibt, die ohne Probleme entfernt werden können und ich sehe oftmals Codes, die komplett unstrukturiert und übersichtlich sind. Als Beispiel werfen wir mal einen Blick in die typische game.py welche bei jedem fast gleich aussieht. Doch schon ganz oben fängt des ganze an:
1. --> Zusammenfügen der ganzen imports und löschen von doppelten imports.
Code:
import os import app import dbg import grp import item import time import background import chr import chrmgr import cw_player import snd import chat import textTail import snd import net import effect import wndMgr import fly import systemSetting import quest import guild import skill import messenger import localeInfo import constInfo import exchange import ime import ui import serverInfo import uiCommon import uiPhaseCurtain import uiMapNameShower import uiAffectShower import uiPlayerGauge import uiCharacter import uiTarget import uiDeathCause import uiauctionbuylink import uiTeleport import uiMobInfo import uiProphecy import cw_lootfilter import localeString import nonplayer import uiCelestialPortal import uiToolTip
Code:
import serverInfo,uiCommon,uiPhaseCurtain,uiMapNameShower,uiAffectShower,uiPlayerGauge,uiCharacter,uiTarget import uiDeathCause,uiauctionbuylink,uiTeleport,uiMobInfo,uiProphecy,cw_lootfilter,localeString,nonplayer,uiCelestialPortal,uiToolTip
2. --> entfernen von Codes, die im Spiel nicht verwendet werden.
Überall in den Files befinden sich Code schnipsel, welche so aussehen:
Code:
# if not app.IsPressed(app.DIK_LSHIFT):
3. Kommentare welche auf Koreanisch sind.
Es befinden sich haufenweise Kommentare wie das hier z.B.
Code:
# ij¸¯ÅÍ ÁÂÇ¥ ¹
Code:
######################################################################################
Jedenfalls genügt es, wenn man Funktionen mit eindeutigen Kommentaren versieht und diese auch lesen kann. Es kann auch vorkommen (abhängig vom Editor), dass diese Zeichenfolge beim Bearbeiten Probleme bereitet und beim Speichern (ich glaube die uilocale.py) oder sowas in der Richtung.
4. (Trifft nicht auf alle zu, da manche lieber den Abstand zwischen den Commands so lassen wollen), doch man kann alle Leerzeichen und Tabs am Ende jeder Zeile direkt rauslöschen. Ebenfalls können alle Leerzeilen mit rausgelöscht werden, dadurch wird der Code nochmal locker 100-300 Zeilen kleiner und ist am Ende übersichtlicher.
Wer diese Schritte befolgt, wird es später leichter haben, Dinge im Code zu suchen und zu verändern.
Das gleiche habe ich auch mit der Source des Clienten und des Servers gemacht, dort sollte man etwas vorsichtiger sein, weil das compilen eben zeitaufwändiger ist. Dort findet man sehr viele solche Elemente:
Code:
// NOTE : 매트릭스에서 위치를 직접 얻어온다 - [levites]
Code:
/*스에서 위치를 직접 얻어온다
Ich hoffe mit diesen Tipps konnte ich dem einen oder anderen bisschen helfen, auch wenn das jetzt keine große Sache ist. Es wird euch am Ende eben Zeit sparen und vllt geht das compilen auch etwas schneller, wenn das System nicht solange braucht, jede Datei vollständig einzulesen. Ich habe mir die Zeit genommen und ich hab das Gefühl, dadurch läuft das Spiel am Ende ein tick flüssiger und sauberer. vllt bilde ich mir des aber auch nur ein, es auszuprobieren, schadet auf jeden Fall nicht.
Wer dies machen will, soll am besten nach jeder File die root zusammenpacken und des Game starten und testen ob nichts versehentlich falsch gelöscht wurde. Auch backups sollten davor gemacht werden.
Falls ihr weiter Fragen habt, was Python und dem Modding von Metin2 angeht, könnt ihr mich gerne anschreiben.
€: Ich würde für diese Aktion Notepad++ benutzen, da dieser Editor alle Funktionen hat, dies schnell für die gesamte Datei zu übernehmen. Niemand will jede einzelne Zeile von Hand bearbeiten/löschen, sowas kann damit in wenigen Sekunden gemacht werden.
mit freundlichen Grüßen, Endless