Ich habe gesehen, dass viele diese Funktion schon haben und diese für Geld verkaufen und ich finde es ist nicht viel Arbeit und
genau aus diesem Grund habe ich es mal gecodet.
Der Code mag vielleicht nicht der schönste sein, aber er funktioniert
Das ganze wird dann so aussehen:
Die Einstellungen werden jedesmal in einer externen Datei geladen und beim Clientstart mitgeladen.
Nun zum Tutorial:
in game.py:
Such nach :
Code:
self.__ProcessPreservedServerCommand()
Code:
from uigameoption import OptionDialog if os.path.exists("lib/shoprange.lib"): try: f = open("lib/shoprange.lib","rb") self.ShopRange = f.read().strip() constInfo.MAX_SHOP_DISTANCE = float(self.ShopRange) except : pass OptionDialog().ctrlShopNames.SetSliderPos(constInfo.MAX_SHOP_DISTANCE / 10000.0) self.ShopUpdater = ui.Window() self.ShopUpdater.SetParentProxy(self) self.ShopUpdater.OnUpdate = self.__OnShopUpdate self.ShopUpdater.Show()
Code:
def OnUpdate(self):
Code:
def __OnShopUpdate(self): uiPrivateShopBuilder.UpdateADBoard()
Einfach oben folgendes einfügen:
Code:
MAX_SHOP_DISTANCE = 10000.0
Suchen nach:
Code:
self.showsalesTextButtonList.append(GetObject("salestext_on_button")) self.showsalesTextButtonList.append(GetObject("salestext_off_button"))
Code:
self.ctrlShopNames = GetObject("sales_name_controller") self.ctrlShopNames.SetSliderPos(constInfo.MAX_SHOP_DISTANCE / 1000.0) self.ctrlShopNames.SetEvent(ui.__mem_func__(self.__OnChangeShopRange)) self.ctrlShopNames.Show()
Code:
def __CheckPvPProtectedLevelPlayer(self):
Code:
def OnUpdate(self): self.ctrlShopNames.SetSliderPos(constInfo.MAX_SHOP_DISTANCE/10000) def __OnChangeShopRange(self): constInfo.MAX_SHOP_DISTANCE = (self.ctrlShopNames.GetSliderPos()*10000) f = open("lib/shoprange.lib","w+") f.write(str(constInfo.MAX_SHOP_DISTANCE)) f.close()
(wird 3x gefunden und 3x auskommentieren oder löschen)
Code:
self.RefreshShowSalesText()
Code:
self.showsalesTextButtonList
suchen nach und löschen (oder auskommentieren):
Code:
{ "name" : "salestext_on_button", "type" : "radio_button", "x" : LINE_DATA_X, "y" : 240, "text" : uiScriptLocale.OPTION_SALESTEXT_VIEW_ON, "default_image" : ROOT_PATH + "middle_button_01.sub", "over_image" : ROOT_PATH + "middle_button_02.sub", "down_image" : ROOT_PATH + "middle_button_03.sub", }, { "name" : "salestext_off_button", "type" : "radio_button", "x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH, "y" : 240, "text" : uiScriptLocale.OPTION_SALESTEXT_VIEW_OFF, "default_image" : ROOT_PATH + "middle_button_01.sub", "over_image" : ROOT_PATH + "middle_button_02.sub", "down_image" : ROOT_PATH + "middle_button_03.sub", },
Code:
{ "name" : "sales_name_controller", "type" : "sliderbar", "x" : LINE_DATA_X, "y" : 240, },
und such nach der Funktion
Code:
def UpdateADBoard(): for key in g_privateShopAdvertisementBoardDict.keys(): g_privateShopAdvertisementBoardDict[key].Show()
Code:
def UpdateADBoard(): for key in g_privateShopAdvertisementBoardDict.keys(): distance = player.GetCharacterDistance(key) if distance <= constInfo.MAX_SHOP_DISTANCE: g_privateShopAdvertisementBoardDict[key].Show() else: g_privateShopAdvertisementBoardDict[key].Hide()
Das sollte nun alles sein oder ich habe etwas vergessen^^
Falls dies der Fall ist schreibt mich bitte mal an.