import?

09/14/2009 06:21 X0R0N#1
Hi,
in dem Quellcode einer datei aus einem entpackten Spielclienten habe ich folgendes drinstehen (die punkkte sollen nur heisen das davor und danach noch was kommt)

Code:
...
import snd
import chat
import textTail
import snd
import net
...

Verstehe nicht woher er die dateien snd,chat,texttail und net hat. woher importiert er sie?


in Code sind einige Stellen die mit den Dateien verknüpft sind:
Code:
...
[COLOR="Red"]net[/COLOR].SendEnterGamePacket()
...
[COLOR="Red"]snd[/COLOR].FadeOutAllMusic()
...
[COLOR="Red"]chat[/COLOR].AppendChat(chat.CHAT_TYPE_INFO, name + locale.SCREENSHOT_SAVE1)
...
[COLOR="Red"]textTail[/COLOR].EnablePKTitle(constInfo.PVPMODE_ENABLE)
...
mich interessiert im grunde am meisten "net" die anderen funktionen sind für mein Vorhaben eigentlich uninteressant. Könnte mir da jemand genaueres drüber sagen?


Das ganze sieht mir nach cpp aus (mit dem ich mich nie so richtig außernandergesetzt hab :D)
09/16/2009 19:43 Adroxxx#2
Hier kannst du mal nachlesen was #import macht: [Only registered and activated users can see links. Click Here To Register...]

net, chat, etc. sind wohl in im Projekt vom dem Game und werden mittels import geladen.

Ist natürlich sehr schlecht, dass du dich mit C++ nicht auskennst, weil dass so natürlich schlecht für dich zu verstehen ist.

Benutzt werden die Sachen wie mit einem Objekt in C++.

IMO kannste dir "net","chat", etc. als Klassen Vorstellen.

In den Klassen sind Funktionen. Und um diese Aufrufen zu können muss man ein Objekt erstellen und dann über dieses Objekt die Funktionen aufrufen.

In der Klasse net ist dann z.B. die Funktion SendEnterGamePacket().

net.h
PHP Code:


public class net {

public: 
void SendEnterGamePacket()


net.cpp
PHP Code:
....

void net::SendEnterGamePacket() {

blablA
Bblablub
WSASend
(blub,bla....);
usw


game.cpp
PHP Code:

....

void Game::IrgendeineFunktion(){

net.SendEnterGamePacket()



09/16/2009 20:17 X0R0N#3
naja verstehen tu ich schon einiges in dem Bereich... habe cpp nur nie verwendet.
Das Problem ist das es keine z.B: net.cpp Datei gibt!
Ich verstehe nicht woher er diese lädt...
09/17/2009 15:05 link#4
Quote:
Originally Posted by mreddy93 View Post
Das ganze sieht mir nach cpp aus (mit dem ich mich nie so richtig außernandergesetzt hab :D)
Ne, bestimmt nicht.

Ist wahrscheinlich irgendein VB-Kram..
Mit import importierst du andere Module, um deren Funktionen nutzen zu können.

Wie wäre es, um an die SourceCode-Dateien heranzukommen, wenn du mal den Quelltextordner nach "SendEnterGamePacket" innerhalb der Dateien absuchst?...

@Adroxxx:
Was sieht daran für dich nach C++ aus? >_>
09/17/2009 15:15 Adroxxx#5
Quote:
Originally Posted by link View Post
@Adroxxx:
Was sieht daran für dich nach C++ aus? >_>
Für mich sehen die Snippets eigentlich nach gar nichts aus :P

net.SendEnterGamePacket()

könnte eigentlich jede Sprache sein.

Hab mir auch nie VB angeschaut, deshalb weiß ich auch nicht ob es das sein könnte. Der TO meinte dass er glaubt, dass es C++ sei. Und da es sich wohl um ein Game handelt, habe ich angenommen, dass es wahrscheinlich wäre, dass es c++ ist.

Einfachste Möglichkeit wäre ja, wenn der TO einfach einen etwas größeren, aussagekräftigeren Code Snippet posten würde.
Falls es wirklich VB ist, tuts mir natürlich leid, dass ich falsch informationen verbreitet habe.
09/17/2009 18:36 X0R0N#6
Damit ihr sehen könnt welche Sprache es ist, hier ein größerer Ausschnitt des Codes:
Code:
class GameWindow(ui.ScriptWindow):
	canQuestLettersShow = 1
	def __init__(self, stream):
		ui.ScriptWindow.__init__(self, "GAME")
		self.SetWindowName("game")
		[COLOR="Red"]net[/COLOR].SetPhaseWindow([COLOR="Red"]net[/COLOR].PHASE_WINDOW_GAME, self)
		player.SetGameWindow(self)

		self.quickSlotPageIndex = 0
		self.lastPKModeSendedTime = 0
		self.pressNumber = None

		self.guildWarQuestionDialog = None
		self.interface = None
		self.targetBoard = None
		self.console = None
		self.mapNameShower = None
		self.affectShower = None
		self.playerGauge = None

		self.stream=stream
		self.interface = interfaceModule.Interface()
		self.interface.MakeInterface()
		self.interface.ShowDefaultWindows()

		self.curtain = uiPhaseCurtain.PhaseCurtain()
		self.curtain.speed = 0.03
		self.curtain.Hide()

		self.targetBoard = uiTarget.TargetBoard()
		self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog))
		self.targetBoard.Hide()

		self.console = consoleModule.ConsoleWindow()
		self.console.BindGameClass(self)
		self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200)
		self.console.Hide()

		self.mapNameShower = uiMapNameShower.MapNameShower()
		self.affectShower = uiAffectShower.AffectShower()

		self.playerGauge = uiPlayerGauge.PlayerGauge(self)
		self.playerGauge.Hide()

		self.__SetQuickSlotMode()

		self.__ServerCommand_Build()
		self.__ProcessPreservedServerCommand()

	def __del__(self):
		player.SetGameWindow(0)
		[COLOR="Red"]net[/COLOR].ClearPhaseWindow([COLOR="Red"]net[/COLOR].PHASE_WINDOW_GAME, self)
		ui.ScriptWindow.__del__(self)

	def Open(self):
		app.SetFrameSkip(1)

		self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())

		self.quickSlotPageIndex = 0
		self.PickingCharacterIndex = -1
		self.PickingItemIndex = -1
		self.consoleEnable = FALSE
		self.isShowDebugInfo = FALSE
		self.ShowNameFlag = FALSE

		self.enableXMasBoom = FALSE
		self.startTimeXMasBoom = 0.0
		self.indexXMasBoom = 0

		global cameraDistance, cameraPitch, cameraRotation, cameraHeight

		app.SetCamera(cameraDistance, cameraPitch, cameraRotation, cameraHeight)

		constInfo.SET_DEFAULT_CAMERA_MAX_DISTANCE()
		constInfo.SET_DEFAULT_CHRNAME_COLOR()
		constInfo.SET_DEFAULT_FOG_LEVEL()
		constInfo.SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE()
		constInfo.SET_DEFAULT_USE_ITEM_WEAPON_TABLE_ATTACK_BONUS()
		constInfo.SET_DEFAULT_USE_SKILL_EFFECT_ENABLE()

		# TWO_HANDED_WEAPON_ATTACK_SPEED_UP
		constInfo.SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE()
		# END_OF_TWO_HANDED_WEAPON_ATTACK_SPEED_UP

		import event
		event.SetLeftTimeString(locale.UI_LEFT_TIME)

		textTail.EnablePKTitle(constInfo.PVPMODE_ENABLE)

		if constInfo.PVPMODE_TEST_ENABLE:
			self.testPKMode = ui.TextLine()
			self.testPKMode.SetFontName(locale.UI_DEF_FONT)
			self.testPKMode.SetPosition(0, 15)
			self.testPKMode.SetWindowHorizontalAlignCenter()
			self.testPKMode.SetHorizontalAlignCenter()
			self.testPKMode.SetFeather()
			self.testPKMode.SetOutline()
			self.testPKMode.Show()

			self.testAlignment = ui.TextLine()
			self.testAlignment.SetFontName(locale.UI_DEF_FONT)
			self.testAlignment.SetPosition(0, 35)
			self.testAlignment.SetWindowHorizontalAlignCenter()
			self.testAlignment.SetHorizontalAlignCenter()
			self.testAlignment.SetFeather()
			self.testAlignment.SetOutline()
			self.testAlignment.Show()

		self.__BuildKeyDict()
		self.__BuildDebugInfo()

		# PRIVATE_SHOP_PRICE_LIST
		uiPrivateShopBuilder.Clear()
		# END_OF_PRIVATE_SHOP_PRICE_LIST

		# UNKNOWN_UPDATE
		exchange.InitTrading()
		# END_OF_UNKNOWN_UPDATE

		if debugInfo.IsDebugMode():
			self.ToggleDebugInfo()

		## Sound
		snd.SetMusicVolumef(systemSetting.GetMusicVolume()*[COLOR="Red"]net[/COLOR].GetFieldMusicVolume())
		snd.SetSoundVolume(systemSetting.GetSoundVolume())

		netFieldMusicFileName = [COLOR="Red"]net[/COLOR].GetFieldMusicFileName()
		if netFieldMusicFileName:
			snd.FadeInMusic("BGM/" + netFieldMusicFileName)
		elif musicInfo.fieldMusic != "":						
			snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)

		self.__SetQuickSlotMode()
		self.__SelectQuickPage(self.quickSlotPageIndex)

		self.SetFocus()
		self.Show()
		app.ShowCursor()

		[COLOR="Red"]net[/COLOR].SendEnterGamePacket()

		# START_GAME_ERROR_EXIT
		try:
			self.StartGame()
		except:
			import exception
			exception.Abort("GameWindow.Open")
		# END_OF_START_GAME_ERROR_EXIT

	def Close(self):
		self.Hide()

		global cameraDistance, cameraPitch, cameraRotation, cameraHeight
		(cameraDistance, cameraPitch, cameraRotation, cameraHeight) = app.GetCamera()

		if musicInfo.fieldMusic != "":
			snd.FadeOutMusic("BGM/"+ musicInfo.fieldMusic)

		self.onPressKeyDict = None
		self.onClickKeyDict = None

		chat.Close()
		snd.StopAllSound()
		grp.InitScreenEffect()
		chr.Destroy()
		textTail.Clear()
		quest.Clear()
		background.Destroy()
		guild.Destroy()
		messenger.Destroy()
		skill.ClearSkillData()
		wndMgr.Unlock()
		mouseModule.mouseController.DeattachObject()

		if self.guildWarQuestionDialog:
			self.guildWarQuestionDialog.Close()
Verstehe immernoch nicht wo er "net" hernimmt.
Es ist keine "net.*" im Verzeichniss und sehe auch nichts derartiges. Irgendwoher muss er das doch importieren.
09/17/2009 19:21 link#7
olol, das ist Python.

Wenn du dir einfach nur den Source Code heruntergeladen hast, wirst du damit wenig anfangen können.
Du benötigst schon den Interpreter und, falls verwendet, die Bibliotheken Dritter.
Wenn du alles haben solltest, schaue im Python-Verzeichnis im Ordner 'Lib' nach
09/17/2009 21:18 X0R0N#8
Quote:
Wenn du dir einfach nur den Source Code heruntergeladen hast
Habe den Spielclienten entpackt und bin so an den Code gekommen.
Wie meinst du das mit dem Interpreter? Meinst du ich soll Python installieren?
09/29/2009 14:35 dcprj#9
Quote:
Originally Posted by mreddy93 View Post
Habe den Spielclienten entpackt und bin so an den Code gekommen.
Wie meinst du das mit dem Interpreter? Meinst du ich soll Python installieren?
Wenn Du beabsichtigst, in Python geschriebene(, nicht eingebettete) Skripts zu benutzten, dann benötigst Du auch den Python-Interpreter. Du musst zugeben, dass das logisch klingt.