Jump to content

sananemk

Inactive Member
  • Posts

    47
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by sananemk

  1. 9 hours ago, Tasho said:
    • Don't take pride in how well you code. Take pride in how well you learn. Then learning that your code needs improvement provides you with an opportunity to demonstrate how good you are at learning, instead of coming across as criticism of how bad a "programmer" you are.
    • The truth is that probably in 1/2 years when you will see your current code you will agree that it was a mess. Learning programming is a never ending process and there will always be someone who is better at it than you.
    • So if person who said that your code is a mess is not just mean and it is not another case of "I would do it better" disease common among programmers you should ask him/her what exactly is wrong with your code and how can you improve it.
    • The trick is to learn to accept it. Learn to accept that you could do better. Learn to live with the flaws. Learn to accept that you're not going to get it perfect this time, and probably the next time too, and that it's a deliberate choice because the alternative is not delivering. And that's worse.
    • Disclaimer: none of this should be read as "bad code is OK".

    I hope you get these points (you can search on google more then this) and learn, don't try to look a smart because you do not impress anyone, we just want to help you, i not want to make too much off-topic, is enough i think.

    9b1_eM9mTb6po9Ue6sa3Dw.png

    Stop criticizing people negatively.If you trust the coding, you share something so that everyone can see?
    These people are at least releasing instead of selling.
    You could leave simple examples to help if the intention was not to boast and to improve coding.
    Just go and play in the sand :)

  2. I am getting errors while compiling with Qt Creator.

    1.
    MultiThread.cpp:94: error: 'const class QString' has no member named 'toAscii'
         PutFileData(this->pEpkInstance, this->lFilesList.at(this->iPointer++).toAscii().data(), g_storage_type, &iOutSize, &iHashCRC32);
                                                                               ^

    2.
    MultiThread.cpp:95: error: 'class QString' has no member named 'toAscii'
         PutFile(this->pEixInstance, GetIntelVirtualPath(szFileVirtualPath).toAscii().data(), g_storage_type, iOutSize, iHashCRC32);
                                                                            ^

    MultiThread.cpp

    #include "MultiThread.h"
    
    EterIndexThread::EterIndexThread(EINSTANCE *pEixInstance, const char *szEterIndexName) :
        pEixInstance(pEixInstance), szEterIndexName(szEterIndexName)
    {
    }
    
    EterIndexThread::~EterIndexThread()
    {
        this->pEixInstance    = 0;
        this->szEterIndexName = 0;
    }
    
    void EterIndexThread::run()
    {
        *this->pEixInstance = LoadEterIndex(this->szEterIndexName, g_index_key, MODE_READ);
    
        this->exit();
    }
    
    UINT32 EterPackThread::iPointer = 0;
    
    EterPackThread::EterPackThread(EINSTANCE *pEpkInstance, const char *szEterPackName, PLIST pEterIndexItems) :
        pEpkInstance(pEpkInstance), szEterPackName(szEterPackName), pEterIndexItems(pEterIndexItems)
    {
        EterPackThread::iPointer = 0;
    }
    
    EterPackThread::~EterPackThread()
    {
        this->pEpkInstance    = 0;
        this->szEterPackName  = 0;
        this->pEterIndexItems = 0;
    
        EterPackThread::iPointer = 0;
    }
    
    void EterPackThread::run()
    {
        if(!*this->pEpkInstance) *this->pEpkInstance = LoadEterPack(this->szEterPackName, g_pack_key, MODE_READ);
    
        // Check if the istances are valid
        if(this->pEpkInstance == NULL)
            this->exit();
    
        UINT8 *pEterPackData = GetFileData(*this->pEpkInstance, this->pEterIndexItems[EterPackThread::iPointer]);
        UINT32 pEterPackSize = GetDataSize(*this->pEpkInstance);
        char szFilePath[MAX_PATH], szMainDirectory[MAX_PATH];
    
        // Check if the DLL returned valid data
        if(pEterPackData == NULL && pEterPackSize > 0)
            this->exit();
    
        memcpy(szMainDirectory, this->szEterPackName, strlen(this->szEterPackName)-4);
        szMainDirectory[strlen(this->szEterPackName)-4] = 0;
    
        _snprintf(szFilePath, MAX_PATH, "%s\\%s", szMainDirectory, GetFilteredPath(this->pEterIndexItems[EterPackThread::iPointer]->VirtualPath));
        CheckAndCreateDir(szFilePath);
    
        _snprintf(szFilePath, MAX_PATH, "%s\\%s", szMainDirectory, GetFilteredPath(this->pEterIndexItems[EterPackThread::iPointer++]->VirtualPath));
        FastIO::FileWrite(szFilePath, "wb", pEterPackData, pEterPackSize);
    
        this->exit();
    }
    
    INT32 PackThread::iPointer = 0;
    
    PackThread::PackThread(QString szDirectoryPath, QStringList lFilesList, EINSTANCE pEixInstance, EINSTANCE pEpkInstance)
        : szDirectoryPath(szDirectoryPath), lFilesList(lFilesList), pEixInstance(pEixInstance), pEpkInstance(pEpkInstance)
    {
        PackThread::iPointer = 0;
    }
    
    PackThread::~PackThread()
    {
        this->szDirectoryPath = QString();
        this->lFilesList      = QStringList();
    
        this->pEixInstance = 0;
        this->pEpkInstance = 0;
    
        PackThread::iPointer = 0;
    }
    
    void PackThread::run()
    {
        if(this->szDirectoryPath.isEmpty() || this->lFilesList.isEmpty() || !this->pEixInstance || !this->pEpkInstance) return;
        if(this->lFilesList.count() < PackThread::iPointer) return;
    
        UINT32 iOutSize = 0, iHashCRC32 = 0;
        QString szFileVirtualPath = GetDiffFromPaths(this->lFilesList.at(this->iPointer), this->szDirectoryPath).toLower();
    
        PutFileData(this->pEpkInstance, this->lFilesList.at(this->iPointer++).toAscii().data(), g_storage_type, &iOutSize, &iHashCRC32);
        PutFile(this->pEixInstance, GetIntelVirtualPath(szFileVirtualPath).toAscii().data(), g_storage_type, iOutSize, iHashCRC32);
    
        this->exit();
    }

    MultiThread.h
     

    #ifndef MULTITHREAD_H
    #define MULTITHREAD_H
    
    #include <QThread>
    
    #include "API/EterPackAPI.hpp"
    #include "Global/Utils.h"
    #include "Global/IO.h"
    #include "Global/Global.h"
    
    class EterIndexThread : public QThread
    {
        Q_OBJECT
    public:
        explicit EterIndexThread(EINSTANCE *pEixInstance, const char *szEterIndexName);
        ~EterIndexThread();
    
        void run();
    
    public:
        EINSTANCE *pEixInstance;
        const char *szEterIndexName;
    };
    
    class EterPackThread : public QThread
    {
        Q_OBJECT
    public:
        explicit EterPackThread(EINSTANCE *pEpkInstance, const char *szEterPackName, PLIST pEterIndexItems);
        ~EterPackThread();
    
        void run();
    
    public:
        EINSTANCE *pEpkInstance;
        const char *szEterPackName;
        PLIST pEterIndexItems;
    
        static UINT32 iPointer;
    };
    
    class PackThread : public QThread
    {
        Q_OBJECT
    public:
        explicit PackThread(QString szDirectoryPath, QStringList lFilesList, EINSTANCE pEixInstance, EINSTANCE pEpkInstance);
        ~PackThread();
    
        void run();
    
    public:
        QString szDirectoryPath;
        QStringList lFilesList;
        EINSTANCE pEixInstance, pEpkInstance;
    
        static INT32 iPointer;
    };
    
    #endif // MULTITHREAD_H

    Thanks in advance.

  3. #solved

    The cause of the problem is caused by the okey event system.Those who suffer from this problem, please use the following.

    uicards.py
     

    import ui
    import net
    import mouseModule
    import player
    import snd
    import localeInfo
    import item
    import grp
    import uiScriptLocale
    import uiToolTip
    import event
    import chat
    import uiCommon
    
    class CardsInfoWindow(ui.ScriptWindow):
    	class DescriptionBox(ui.Window):
    		def __init__(self):
    			ui.Window.__init__(self)
    			self.descIndex = 0
    		def __del__(self):
    			ui.Window.__del__(self)
    		def SetIndex(self, index):
    			self.descIndex = index
    		def OnRender(self):
    			event.RenderEventSet(self.descIndex)
    	def __init__(self):
    		ui.ScriptWindow.__init__(self)
    		self.LoadWindow()
    		self.descIndex=0
    		self.scrollPos = 0
    		self.safemode = 1
    		self.questionDialog = None
    
    	def __del__(self):
    		ui.ScriptWindow.__del__(self)
    
    	def LoadWindow(self):
    		try:
    			pyScrLoader = ui.PythonScriptLoader()
    			pyScrLoader.LoadScriptFile(self, "UIScript/minigamerumiwaitingpage.py")
    		except:
    			import exception
    			exception.Abort("minigamerumiwaitingpage.LoadDialog.LoadScript")
    
    		try:
    			GetObject=self.GetChild
    			self.titleBar = GetObject("titlebar")
    			self.textBoard = GetObject("desc_board")
    			self.scrollBar = GetObject("scrollbar")
    			self.checkButton = GetObject("check_image")
    			self.checkButton2 = GetObject("confirm_check_button")
    			self.startButton = GetObject("game_start_button")
    
    		except:
    			import exception
    			exception.Abort("CubeWindow.LoadDialog.BindObject")
    
    		self.titleBar.SetCloseEvent(ui.__mem_func__(self.__OnCloseButtonClick))
    		self.scrollBar.SetPos(0.0)
    		self.scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScroll))
    		self.checkButton.SetEvent(ui.__mem_func__(self.__OnSafeMode))
    		self.checkButton2.SetEvent(ui.__mem_func__(self.__OnSafeMode))
    		self.startButton.SetEvent(ui.__mem_func__(self.__OnStartQuestion))
    
    	def Destroy(self):
    		self.ClearDictionary()
    		self.titleBar = None
    		self.textBoard = None
    		self.descriptionBox = None
    		self.scrollPos = None
    		self.safemode = None
    		self.questionDialog = None
    	
    	def Open(self):
    		self.__SetDescriptionEvent()
    		self.__CreateDescriptionBox()
    		self.scrollBar.SetPos(0.0)
    		self.Show()
    
    	def Close(self):
    		event.ClearEventSet(self.descIndex)
    		self.descIndex = 0
    		self.Hide()
    		
    	def __OnStartQuestion(self):
    		questionDialog = uiCommon.QuestionDialog2()
    		questionDialog.SetText1(localeInfo.MINI_GAME_RUMI_START_QUESTION % (1))
    		questionDialog.SetText2(localeInfo.MINI_GAME_RUMI_START_QUESTION2)
    		questionDialog.SetAcceptEvent(ui.__mem_func__(self.__OnStart))
    		questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
    		questionDialog.Open()
    		self.questionDialog = questionDialog
    		
    	def OnCloseQuestionDialog(self):
    		if self.questionDialog:
    			self.questionDialog.Close()
    
    		self.questionDialog = None
    		
    	def __OnStart(self):
    		self.OnCloseQuestionDialog()
    		self.Close()
    		net.SendChatPacket("/cards o "+ str(self.safemode))
    		
    	def __OnSafeMode(self):
    		if self.safemode == 0:
    			self.safemode = 1
    			self.checkButton.Show()
    		else:
    			self.checkButton.Hide()
    			self.safemode = 0
    		
    	def OnUpdate(self):
    		(xposEventSet, yposEventSet) = self.textBoard.GetGlobalPosition()
    		event.UpdateEventSet(self.descIndex, xposEventSet+7, -(yposEventSet+7-(int(self.scrollPos) * 16)))
    		self.descriptionBox.SetIndex(self.descIndex)
    		
    	def OnScroll(self):
    		import math
    		pos = self.scrollBar.GetPos()
    		self.scrollPos = math.floor(float(pos) / float(float(1) / float(event.GetLineCount(self.descIndex) - 18)) + 0.001)
    		event.SetVisibleStartLine(self.descIndex, int(self.scrollPos))
    		event.Skip(self.descIndex)
    
    	def __SetDescriptionEvent(self):
    		#event.ClearEventSet(self.descIndex)
    		self.descIndex = event.RegisterEventSet(uiScriptLocale.CARDS_DESC)
    		event.SetRestrictedCount(self.descIndex, 100)
    		event.SetVisibleLineCount(self.descIndex, 18)
    
    	def __CreateDescriptionBox(self):
    		self.descriptionBox = self.DescriptionBox()
    		self.descriptionBox.Show()
    
    	def __OnCloseButtonClick(self):
    		self.Close()
    
    	def OnPressEscapeKey(self):
    		if 0 != self.eventClose:
    			self.eventClose()
    		return TRUE
    		
    class CardsWindow(ui.ScriptWindow):
    	CARDS_ICONS = {	
    		1 : "d:/ymir work/ui/minigame/rumi/card/card_blue_%d.sub",
    		2 : "d:/ymir work/ui/minigame/rumi/card/card_red_%d.sub",
    		3 : "d:/ymir work/ui/minigame/rumi/card/card_yellow_%d.sub", }
    	def __init__(self):
    		ui.ScriptWindow.__init__(self)
    		self.safemode = 0
    		self.questionDialog = None
    
    	def __del__(self):
    		ui.ScriptWindow.__del__(self)
    
    	def LoadWindow(self):
    		try:
    			pyScrLoader = ui.PythonScriptLoader()
    			pyScrLoader.LoadScriptFile(self, "UIScript/minigamerumigamepage.py")
    		except:
    			import exception
    			exception.Abort("minigamerumigamepage.LoadDialog.LoadScript")
    
    		try:
    			GetObject=self.GetChild
    			self.titleBar = GetObject("titlebar")
    			self.handSlot = GetObject("HandCardSlot")
    			self.fieldSlot = GetObject("FieldCardSlot")
    			self.deckSlot = GetObject("DeckCardSlot")
    			self.score_completion_effect1 = GetObject("score_completion_effect1")
    			self.score_completion_effect2 = GetObject("score_completion_effect2")
    			self.score_completion_effect3 = GetObject("score_completion_effect3")
    			self.score_completion_text_effect = GetObject("score_completion_text_effect")
    			self.deck_flush_effect = GetObject("deck_flush_effect")
    			self.cards_count = GetObject("card_cnt_text")
    			self.total_points = GetObject("total_score")
    			self.field_points = GetObject("score_number_text")
    			self.exitButton = GetObject("game_exit_button")
    
    		except:
    			import exception
    			exception.Abort("CubeWindow.LoadDialog.BindObject")
    
    		self.titleBar.SetCloseEvent(ui.__mem_func__(self.__OnCloseButtonClick))
    		self.handSlot.SAFE_SetButtonEvent("LEFT", "EXIST", self.SetSelectItemSlotEvent)
    		self.handSlot.SAFE_SetButtonEvent("RIGHT", "EXIST", self.SetUnselectItemSlotEvent)
    		self.fieldSlot.SAFE_SetButtonEvent("LEFT", "EXIST", self.SetSelectItemSlotEvent2)
    		self.score_completion_effect1.SetOnEndFrame(ui.__mem_func__(self.__OnEndFrame))
    		self.deckSlot.SAFE_SetButtonEvent("LEFT", "ALWAYS", self.SetPickCardFromDeck)
    		self.exitButton.SetEvent(ui.__mem_func__(self.__EndGame))
    		self.HideEffects()
    		
    		
    	def SetPickCardFromDeck(self, slotIndex):
    		if int(self.cards_count.GetText()) < 1:
    			return
    		net.SendChatPacket("/cards p")
    	def SetSelectItemSlotEvent(self, slotIndex):
    		net.SendChatPacket("/cards a " + str(slotIndex))
    	def SetSelectItemSlotEvent2(self, slotIndex):
    		net.SendChatPacket("/cards r " + str(slotIndex))
    	def SetUnselectItemSlotEvent(self, slotIndex):
    		if self.safemode == 1:
    			questionDialog = uiCommon.QuestionDialog()
    			questionDialog.SetText(localeInfo.MINI_GAME_RUMI_DISCARD_QUESTION)
    			questionDialog.SetAcceptEvent(lambda arg=TRUE: self.DestroyCard(slotIndex))
    			questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
    			questionDialog.Open()
    			self.questionDialog = questionDialog
    		else:
    			self.DestroyCard(slotIndex)
    			
    	def __EndGame(self):
    		questionDialog = uiCommon.QuestionDialog2()
    		questionDialog.SetText1(localeInfo.MINI_GAME_RUMI_EXIT_QUESTION)
    		questionDialog.SetText2(localeInfo.MINI_GAME_RUMI_EXIT_QUESTION2)
    		questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnEndGame))
    		questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
    		questionDialog.Open()
    		self.questionDialog = questionDialog
    		
    	def OnEndGame(self):
    		net.SendChatPacket("/cards e")
    		self.OnCloseQuestionDialog()
    		self.Close()
    	def DestroyCard(self, index):
    		net.SendChatPacket("/cards d " + str(index))
    		self.OnCloseQuestionDialog()
    		
    	def OnCloseQuestionDialog(self):
    		if self.questionDialog:
    			self.questionDialog.Close()
    
    		self.questionDialog = None
    		
    	def __OnEndFrame(self):
    		self.HideEffects()
    		
    	def UpdateCardsInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points):
    		if (hand_1 == 0):
    			self.handSlot.ClearSlot(0)
    		elif (hand_1 != 0):
    			self.handSlot.SetCardSlot(0, 10, (self.CARDS_ICONS[hand_1] % (int(hand_1_v))))
    		if (hand_2 == 0):
    			self.handSlot.ClearSlot(1)
    		elif (hand_2 != 0):
    			self.handSlot.SetCardSlot(1, 10, (self.CARDS_ICONS[hand_2] % (int(hand_2_v))))
    		if (hand_3 == 0):
    			self.handSlot.ClearSlot(2)
    		elif (hand_3 != 0):
    			self.handSlot.SetCardSlot(2, 10, (self.CARDS_ICONS[hand_3] % (int(hand_3_v))))
    		if (hand_4 == 0):
    			self.handSlot.ClearSlot(3)
    		elif (hand_4 != 0):
    			self.handSlot.SetCardSlot(3, 10, (self.CARDS_ICONS[hand_4] % (int(hand_4_v))))
    		if (hand_5 == 0):
    			self.handSlot.ClearSlot(4)
    		elif (hand_5 != 0):
    			self.handSlot.SetCardSlot(4, 10, (self.CARDS_ICONS[hand_5] % (int(hand_5_v))))
    		self.cards_count.SetText(str(cards_left))
    		self.total_points.SetText(str(points))
    		self.UpdateDeckSlot()
    		
    	def UpdateCardsFieldInfo(self, slot1, slot1_v, slot2, slot2_v, slot3, slot3_v, points):
    		if (slot1 == 0):
    			self.fieldSlot.ClearSlot(0)
    		elif (slot1 != 0):
    			self.fieldSlot.SetCardSlot(0, 10, (self.CARDS_ICONS[slot1] % (int(slot1_v))))
    		if (slot2 == 0):
    			self.fieldSlot.ClearSlot(1)
    		elif (slot2 != 0):
    			self.fieldSlot.SetCardSlot(1, 10, (self.CARDS_ICONS[slot2] % (int(slot2_v))))
    		if (slot3 == 0):
    			self.fieldSlot.ClearSlot(2)
    		elif (slot3 != 0):
    			self.fieldSlot.SetCardSlot(2, 10, (self.CARDS_ICONS[slot3] % (int(slot3_v))))
    		self.field_points.SetText(str(points))
    		
    	def UpdateDeckSlot(self):
    		if int(self.cards_count.GetText()) > 16:
    			self.deckSlot.SetCardSlot(2, 10, "d:/ymir work/ui/minigame/rumi/deck/deck3.sub")
    			self.deckSlot.SetCardSlot(1, 10, "d:/ymir work/ui/minigame/rumi/deck/deck2.sub")
    		elif int(self.cards_count.GetText()) <= 16 and int(self.cards_count.GetText()) > 8:
    			self.deckSlot.ClearSlot(2)
    			self.deckSlot.SetCardSlot(1, 10, "d:/ymir work/ui/minigame/rumi/deck/deck2.sub")
    		elif int(self.cards_count.GetText()) <= 8 and int(self.cards_count.GetText()) > 0:
    			self.deckSlot.ClearSlot(2)
    			self.deckSlot.ClearSlot(1)
    			self.deckSlot.SetCardSlot(0, 10, "d:/ymir work/ui/minigame/rumi/deck/deck1.sub")
    		else:
    			self.deckSlot.ClearSlot(0)
    			self.deckSlot.ClearSlot(1)
    			self.deckSlot.ClearSlot(2)
    		
    	def CardsPutReward(self, slot1, slot1_v, slot2, slot2_v, slot3, slot3_v, points):
    		self.score_completion_effect1.ResetFrame()
    		self.score_completion_effect1.Show()
    		self.score_completion_effect2.ResetFrame()
    		self.score_completion_effect2.Show()
    		self.score_completion_effect3.ResetFrame()
    		self.score_completion_effect3.Show()
    		self.score_completion_text_effect.ResetFrame()
    		self.score_completion_text_effect.Show()
    
    	def HideEffects(self):
    		self.score_completion_effect1.Hide()
    		self.score_completion_effect2.Hide()
    		self.score_completion_effect3.Hide()
    		self.score_completion_text_effect.Hide()
    		self.deck_flush_effect.Hide()
    		self.field_points.SetText("")
    
    	def Destroy(self):
    		self.ClearDictionary()
    		self.titleBar = None
    		self.handSlot = None
    		self.fieldSlot = None
    		self.deckSlot = None
    		self.score_completion_effect1 = None
    		self.score_completion_effect2 = None
    		self.score_completion_effect3 = None
    		self.score_completion_text_effect = None
    		self.deck_flush_effect = None
    		self.cards_count = None
    		self.total_points = None
    		self.field_points = None
    		self.safemode = None
    		self.questionDialog = None
    
    	def Open(self, safemode):
    		self.safemode = safemode
    		self.Show()
    
    	def Close(self):
    		self.Hide()
    
    	def __OnCloseButtonClick(self):
    		self.Close()
    
    	def OnPressEscapeKey(self):
    		if 0 != self.eventClose:
    			self.eventClose()
    		return TRUE
    		
    class IngameWindow(ui.ScriptWindow):
    	def __init__(self):
    		ui.ScriptWindow.__init__(self)
    
    	def __del__(self):
    		ui.ScriptWindow.__del__(self)
    
    	def LoadWindow(self):
    		try:
    			pyScrLoader = ui.PythonScriptLoader()
    			pyScrLoader.LoadScriptFile(self, "UIScript/minigamewindow.py")
    		except:
    			import exception
    			exception.Abort("minigamewindow.LoadDialog.LoadScript")
    
    		try:
    			GetObject=self.GetChild
    			self.gameButton = GetObject("minigame_rumi_button")
    
    		except:
    			import exception
    			exception.Abort("CubeWindow.LoadDialog.BindObject")
    
    		self.gameButton.SetEvent(ui.__mem_func__(self.__OnClickGame))
    	def __OnClickGame(self):
    		self.window = CardsInfoWindow()
    		self.window.Open()
    		
    	def Destroy(self):
    		self.ClearDictionary()


    thank you @welberw

    • Love 2
  4. 18 hours ago, FlorinMarian said:

    Hello !

    I've bought duel system from a turkish man but this system it's fully turkish. Seller is too busy to help me transate these files.

    Some help? Thank you !

    *Some messages are repeated to be sure i will translate completly the files.

    
    game.py
    chat.AppendChat(chat.CHAT_TYPE_INFO,"Düello paneli açıkken item kullanamazsın.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Düello> Rakip 15 saniye içinde kalkmadığı için duello iptal olmuştur.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Itemine VS:> : İtemine vs engelliyken, itemine vs yapamazsın.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Itemine VS:> : İtemine vs engelliyken, itemine vs yapamazsın.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Itemine VS:> : İtemine vs engelliyken, itemine vs yapamazsın.")
    chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, "Sana itemine vs teklifi yolluyor.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, str(name) + " adli oyuncu sana itemine vs teklifi yolluyor.")
    chat.AppendChat(chat.CHAT_TYPE_INFO,"Bu oyuncu şuanda itemine düello yapamaz.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Itemine VS:> : İtemine vs engelliyken, itemine vs yapamazsın.")
    chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, "Sana itemine vs teklifi yolluyor.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, str(name) + " adli oyuncu sana itemine vs teklifi yolluyor.")
    
    localegame.py
    dbg.LogBox("Beklenmeyen Hata(%(gelenDosya)s)" % locals())
    raise RuntimeError, "Belirsiz Token kodu tespit edildi!"
    dbg.LogBox("%s: Bulunan Satır(%d): %s" % (gelenDosya, yer, i), "localegame[game.txt]")
    
    uigameoption.py
    chat.AppendChat(chat.CHAT_TYPE_INFO,"Ýtemine ws varken serbest modunu kullanamazsýn.")
    chat.AppendChat(chat.CHAT_TYPE_INFO,"Ýtemine ws varken lonca modunu kullanamazsýn.")
    
    uiiteminduello.py
    self.ListBox.InsertItem(0, " |cFF0080FF|H|hitemine ws paneli açýldý.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Düello> : Düello'ya hazýrken bu iţlem yapýlamaz.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Düello> : Düello'ya hazýrken bu iţlem yapýlamaz.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Düello> : Düello'ya hazýrken bu iţlem yapýlamaz.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Düello> : Düello'ya hazýrken bu iţlem yapýlamaz.")
    self.ListBox.InsertItem(0, "|cFFFF0000|H|hSen: " + "|cFFFFFF00|H|hRound sayýsýný " + str(bol[2]) + " olarak deđiţtirdin. |c000000|H|h" + str(bol[5]))
    self.ListBox.InsertItem(0, "|cFF32CD32|H|h" + str(bol[1]) + ": " + "|cFFFFFF00|H|h" + str(bol[2]) + " (" + str(bol[3]) + "x - " + str(bol[4]) + ".Slot)" + " ekledi. |c000000|H|h" + str(bol[5]))
    self.ListBox.InsertItem(0, "|cFF32CD32|H|h" + str(bol[1]) + ": " + "|cFFFFFF00|H|h" + str(localeInfo.NumberToMoneyString(gameInfo.DUELLO_RAKIP_PARA)) + " ekledi. |c000000|H|h" + str(bol[5]))
    self.ListBox.InsertItem(0, "|cFF32CD32|H|h" + str(bol[1]) + ": " + "|cFFFFFF00|H|h" + str(bol[2]) + " (" + str(bol[3]) + "x - " + str(bol[4]) + ".Ekipman Slot)" + " ekledi. |c000000|H|h" + str(bol[5]))
    self.ListBox.InsertItem(0, "|cFF32CD32|H|h" + str(bol[1]) + ": " + "|cFFFFFF00|H|hRound sayýsýný " + str(bol[2]) + " olarak deđiţtirdi. |c000000|H|h" + str(bol[5]))
    self.TitleName.SetText(str(gameInfo.DUELLO_RAKIP) + " adlý oyuncuyla eţyalý düello panelin.")
    self.GetChild("Target_MacBilgileri_1").SetText("Toplam Maç:" + str(gameInfo.DUELLO_BILGILERI[str(gameInfo.DUELLO_RAKIP)+"_info2"].split("#")[1]))
    self.GetChild("Target_MacBilgileri_2").SetText("G/M : " + str(gameInfo.DUELLO_BILGILERI[str(gameInfo.DUELLO_RAKIP)+"_info2"].split("#")[2])+"/"+str(gameInfo.DUELLO_BILGILERI[str(gameInfo.DUELLO_RAKIP)+"_info2"].split("#")[3]))
    self.GetChild("Target_MacBilgileri_3").SetText("Kaçma : " + str(gameInfo.DUELLO_BILGILERI[str(gameInfo.DUELLO_RAKIP)+"_info2"].split("#")[4]))
    self.GetChild("My_MacBilgileri_1").SetText("Toplam Maç:" + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info2"].split("#")[1]))
    self.GetChild("My_MacBilgileri_2").SetText("G/M : " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info2"].split("#")[2])+"/"+str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info2"].split("#")[3]))
    self.GetChild("My_MacBilgileri_3").SetText("Kaçma : " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info2"].split("#")[4]))
    self.roundBildirBUTTON = self.Button(self, 'Rakibi bildir', 'Eđer rakip düellodayken çýktýysa bildir!', 71 + 98, 0, self.__roundBildir, 'd:/ymir work/ui/public/middle_button_01.sub', 'd:/ymir work/ui/public/middle_button_02.sub', 'd:/ymir work/ui/public/middle_button_03.sub')
    self.GetChild("TitleName").SetText("Ýtemine ws depon boţ.")
    self.GetChild("My_Guild").SetText("Lonca Yok")
    self.GetChild("TitleName").SetText(str(self.name) + " ile yaptýđýn itemine ws'de kazandýđýn son eţyalar (Round : " + str(gameInfo.DUELLO_BILGILERI["depo_"+str(self.name)+"_round"]) + " )")
    self.GetChild("TitleName").SetText("Ýtemine ws depon boţ.")
    self.GetChild("My_MacBilgileri_1").SetText("Toplam Maç: " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info100"].split("#")[1]))
    self.GetChild("My_MacBilgileri_2").SetText("G/M : " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info100"].split("#")[2])+"/"+str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info100"].split("#")[3]))
    self.GetChild("My_MacBilgileri_3").SetText("Kaçma : " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info100"].split("#")[4]))
    
    uirestart.py
    chat.AppendChat(chat.CHAT_TYPE_INFO,"Ýtemine VS anýnda, ţehirde yeniden baţlýyamazsýn.")
    BUTTON_NAME_LIST = ( 
    "Eţya ile Düello",
    "Ý.Düello Kabul Et",
    	)
    self.showingButtonList.append(self.buttonDict["Eţya ile Düello"])
    self.Chat("<Düello> : Ţuan'da zaten düellodasýn.")
    self.Chat("<Düello> : Ţuan'da panel ekranýnda iken bu seçeneđi kullanamassýn.")

     

    game.py
    chat.AppendChat(chat.CHAT_TYPE_INFO,"You can not use an object when the duel panel is open.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Duel> The duel was canceled because the opponent did not get up in 15 seconds.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Trade Duel:> : You can not do this while the trade duels are blocked.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Trade Duel:> : You can not do this while the trade duels are blocked.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Trade Duel:> : You can not do this while the trade duels are blocked.")
    chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, "He's sending you a trade duel offer.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, str(name) + " The named player is sending you a duel offer to the trade.")
    chat.AppendChat(chat.CHAT_TYPE_INFO,"This player can not duel right now.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Trade Duel:> : You can not do this while the trade duels are blocked.")
    chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, "He's sending you a trade duel offer.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, str(name) + " The named player is sending you a duel offer to the trade.")
    
    localegame.py
    dbg.LogBox("Unexpected Error(%(gelenDosya)s)" % locals())
    raise RuntimeError, "Indeterminate token code detected!"
    dbg.LogBox("%s: Line(%d): %s" % (gelenDosya, yer, i), "localegame[game.txt]")
    
    uigameoption.py
    chat.AppendChat(chat.CHAT_TYPE_INFO,"You can not open free mode while you're in trade duels.")
    chat.AppendChat(chat.CHAT_TYPE_INFO,"You can not open guild mode while trading duels.")
    
    uiiteminduello.py
    self.ListBox.InsertItem(0, " |cFF0080FF|H|hThe trade duel panel opened.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Duel> : This process can not be done in preparation for the duel.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Duel> : This process can not be done in preparation for the duel.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Duel> : This process can not be done in preparation for the duel.")
    chat.AppendChat(chat.CHAT_TYPE_INFO, "<Duel> : This process can not be done in preparation for the duel.")
    self.ListBox.InsertItem(0, "|cFFFF0000|H|hYou: " + "|cFFFFFF00|H|hRound number " + str(bol[2]) + " You changed it to. |c000000|H|h" + str(bol[5]))
    self.ListBox.InsertItem(0, "|cFF32CD32|H|h" + str(bol[1]) + ": " + "|cFFFFFF00|H|h" + str(bol[2]) + " (" + str(bol[3]) + "x - " + str(bol[4]) + ".Slot)" + " added. |c000000|H|h" + str(bol[5]))
    self.ListBox.InsertItem(0, "|cFF32CD32|H|h" + str(bol[1]) + ": " + "|cFFFFFF00|H|h" + str(localeInfo.NumberToMoneyString(gameInfo.DUELLO_RAKIP_PARA)) + " added. |c000000|H|h" + str(bol[5]))
    self.ListBox.InsertItem(0, "|cFF32CD32|H|h" + str(bol[1]) + ": " + "|cFFFFFF00|H|h" + str(bol[2]) + " (" + str(bol[3]) + "x - " + str(bol[4]) + ".Ekipman Slot)" + " added. |c000000|H|h" + str(bol[5]))
    self.ListBox.InsertItem(0, "|cFF32CD32|H|h" + str(bol[1]) + ": " + "|cFFFFFF00|H|hRound number " + str(bol[2]) + " You changed it to. |c000000|H|h" + str(bol[5]))
    self.TitleName.SetText(str(gameInfo.DUELLO_RAKIP) + " Trade duel panel with named player.")
    self.GetChild("Target_MacBilgileri_1").SetText("Total Round:" + str(gameInfo.DUELLO_BILGILERI[str(gameInfo.DUELLO_RAKIP)+"_info2"].split("#")[1]))
    self.GetChild("Target_MacBilgileri_2").SetText("G/M : " + str(gameInfo.DUELLO_BILGILERI[str(gameInfo.DUELLO_RAKIP)+"_info2"].split("#")[2])+"/"+str(gameInfo.DUELLO_BILGILERI[str(gameInfo.DUELLO_RAKIP)+"_info2"].split("#")[3]))
    self.GetChild("Target_MacBilgileri_3").SetText("Escape : " + str(gameInfo.DUELLO_BILGILERI[str(gameInfo.DUELLO_RAKIP)+"_info2"].split("#")[4]))
    self.GetChild("My_MacBilgileri_1").SetText("Total Round:" + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info2"].split("#")[1]))
    self.GetChild("My_MacBilgileri_2").SetText("G/M : " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info2"].split("#")[2])+"/"+str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info2"].split("#")[3]))
    self.GetChild("My_MacBilgileri_3").SetText("Escape : " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info2"].split("#")[4]))
    self.roundBildirBUTTON = self.Button(self, 'Report competitor', 'Report if your opponent is in a duel.!', 71 + 98, 0, self.__roundBildir, 'd:/ymir work/ui/public/middle_button_01.sub', 'd:/ymir work/ui/public/middle_button_02.sub', 'd:/ymir work/ui/public/middle_button_03.sub')
    self.GetChild("TitleName").SetText("The commercial duel depot is empty.")
    self.GetChild("My_Guild").SetText("No Guild")
    self.GetChild("TitleName").SetText(str(self.name) + " The last items you earned in the trade duels with. (Round : " + str(gameInfo.DUELLO_BILGILERI["depo_"+str(self.name)+"_round"]) + " )")
    self.GetChild("TitleName").SetText("Ýtemine ws depon boţ.")
    self.GetChild("My_MacBilgileri_1").SetText("Total Round: " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info100"].split("#")[1]))
    self.GetChild("My_MacBilgileri_2").SetText("G/M : " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info100"].split("#")[2])+"/"+str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info100"].split("#")[3]))
    self.GetChild("My_MacBilgileri_3").SetText("Escape : " + str(gameInfo.DUELLO_BILGILERI[str(player.GetName())+"_info100"].split("#")[4]))
    
    uirestart.py
    chat.AppendChat(chat.CHAT_TYPE_INFO,"You can not use the city restart option when you are in a trade duels.")
    BUTTON_NAME_LIST = ( 
    "Duel with goods",
    "Accept Duel",
    	)
    self.showingButtonList.append(self.buttonDict["Duel with goods"])
    self.Chat("<Düello> : There is already a duel.")
    self.Chat("<Düello> : You can not use this option when the panel display is open.")

     

  5. https://metin2.download/picture/Rwli5vzRT8TwPs22XeoKSAjfexKNB0vc/.png
    -swSAmu0SDGgPmYib3GoKg.png

    The problem is that the screen display appears to be in error and I can solve how this problem is happening.

    Thank you in advance.

    Official system
    http://www.dosya.tc/server9/q0vqrk/Char_Creation.rar.html
    http://s6.dosya.tc/server9/8bx4td/Char_Select.rar.html

    • Love 2
  6. I think this way use

    if (pItem->GetSubType() == CItemData::WEAPON_SWORD)
            {
                DWORD vnum = pItem->GetIndex();

                if (vnum == 60299)
                // if (60299 <= vnum && vnum <= 60999)
                {
                    m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED7;
                    m_swordRefineEffectRight = EFFECT_REFINED +  EFFECT_SWORD_REFINED_SPECIAL1; //effect 24 sword effect
                }
            }

  7. if I understand it correctly, follow the steps :)

    Channel+1+2+3+4 and game99 add ; CONFIG

    "CheckClientVersion: 1
    ClientVersion: 5855858808"

    game/src/config.cpp

    search code : string    g_stClientVersion = "5855858808";

    your version number edit

    search code blog: if (version > date) change  --> if (version != date)

    continuation

    client/UserInterface/PythonNetworkStreamPhaseGame.cpp

    search code blog: strncpy(kVersionPacket.timestamp, "5855858808", sizeof(kVersionPacket.timestamp)-1);

    your version number edit.. fnish

    good use for :D

    • Metin2 New Dawnmist Dungeon Map

      This is the hidden content, please

      Metin2 New Dawnmist Dungeon Map Property

      This is the hidden content, please

      Maybe u can say that i unpacked it. Both. Plechito just reuploaded mine and xxDarkxx just posted my links.

    No, i unpacked it long time ago... As you can see on my older topic Armors bear i'm on this new map... I don't need reupload things from other people. Actually i
    wrote on epvp i probably release this and in few minutes you released it and now you say i have it from you? Wow...

    kq0PT8B.thumb.jpg.e97db021396348aeb73a4f

    Screenshot_1.thumb.png.ed12a4cac7b389368

     

     

    Hi, I'm waiting for your boss to help new beta brings such a problem.
    It remains buried in the ground does not move.
    Where the problem may be?

    thank you :wub:



     
  8.  

    import uiScriptLocale

    import item

    EQUIPMENT_START_INDEX = 225

    window = {

        "name" : "InventoryWindow",

        "x" : SCREEN_WIDTH - 176,

        "y" : SCREEN_HEIGHT - 37 - 565,

        "style" : ("movable", "float",),

        "width" : 176,

        "height" : 565,

        "children" :

        (

            ## Inventory, Equipment Slots

            {

                "name" : "board",

                "type" : "board",

                "style" : ("attach",),

                "x" : 0,

                "y" : 0,

                "width" : 176,

                "height" : 565,

                "children" :

                (

                    ## Title

                    {

                        "name" : "TitleBar",

                        "type" : "titlebar",

                        "style" : ("attach",),

                        "x" : 8,

                        "y" : 7,

                        "width" : 161,

                        "color" : "yellow",

                        "children" :

                        (

                            { "name":"TitleName", "type":"text", "x":77, "y":3, "text":uiScriptLocale.INVENTORY_TITLE, "text_horizontal_align":"center" },

                        ),

                    },

                    ## Equipment Slot

                    {

                        "name" : "Equipment_Base",

                        "type" : "expanded_image",

                        "x" : 10,

                        "y" : 33,

                        "image" : "d:/ymir work/ui/equipment_bg_without_ring.tga",

                        "children" :

                        (

                            {

                                "name" : "EquipmentSlot",

                                "type" : "slot",

                                "x" : 3,

                                "y" : 3,

                                "width" : 150,

                                "height" : 182,

                                "slot" : (

                                            {"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64},

                                            {"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96},

                                            {"index":EQUIPMENT_START_INDEX+5, "x":114, "y":67, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+6, "x":114, "y":35, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+7, "x":2, "y":145, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+8, "x":75, "y":145, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+9, "x":114, "y":2, "width":32, "height":32},

                                            {"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32},

                                            ## {"index":item.EQUIPMENT_RING1, "x":2, "y":106, "width":32, "height":32},

                                            ## {"index":item.EQUIPMENT_RING2, "x":75, "y":106, "width":32, "height":32},

                                            {"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32},

                                        ),

                            },

                            ## Dragon Soul Button

                            {

                                "name" : "DSSButton",

                                "type" : "button",

                                "x" : 114,

                                "y" : 107,

                                "tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL,

                                "default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga",

                                "over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga",

                                "down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga",

                            },

                            ## MallButton

                            {

                                "name" : "MallButton",

                                "type" : "button",

                                "x" : 118,

                                "y" : 148,

                                "tooltip_text" : uiScriptLocale.MALL_TITLE,

                                "default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga",

                                "over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga",

                                "down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga",

                            },

                            ## CostumeButton

                            {

                                "name" : "CostumeButton",

                                "type" : "button",

                                "x" : 78,

                                "y" : 5,

                                "tooltip_text" : uiScriptLocale.COSTUME_TITLE,

                                "default_image" : "d:/ymir work/ui/game/taskbar/costume_Button_01.tga",

                                "over_image" : "d:/ymir work/ui/game/taskbar/costume_Button_02.tga",

                                "down_image" : "d:/ymir work/ui/game/taskbar/costume_Button_03.tga",

                            },

                            {

                                "name" : "Equipment_Tab_01",

                                "type" : "radio_button",

                                "x" : 86,

                                "y" : 161,

                                "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                                "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                                "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                                "children" :

                                (

                                    {

                                        "name" : "Equipment_Tab_01_Print",

                                        "type" : "text",

                                        "x" : 0,

                                        "y" : 0,

                                        "all_align" : "center",

                                        "text" : "I",

                                    },

                                ),

                            },

                            {

                                "name" : "Equipment_Tab_02",

                                "type" : "radio_button",

                                "x" : 86 + 32,

                                "y" : 161,

                                "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                                "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                                "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                                "children" :

                                (

                                    {

                                        "name" : "Equipment_Tab_02_Print",

                                        "type" : "text",

                                        "x" : 0,

                                        "y" : 0,

                                        "all_align" : "center",

                                        "text" : "II",

                                    },

                                ),

                            },

                        ),

                    },

                    {

                        "name" : "Inventory_Tab_01",

                        "type" : "radio_button",

                        "x" : 7,

                        "y" : 33 + 191,

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                        "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1,

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_01_Print",

                                "type" : "text",

                                "x" : 0,

                                "y" : 0,

                                "all_align" : "center",

                                "text" : "I",

                            },

                        ),

                    },

                    {

                        "name" : "Inventory_Tab_02",

                        "type" : "radio_button",

                        "x" : 7 + 32,

                        "y" : 33 + 191,

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                        "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2,

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_02_Print",

                                "type" : "text",

                                "x" : 0,

                                "y" : 0,

                                "all_align" : "center",

                                "text" : "II",

                            },

                        ),

                    },

                    {

                        "name" : "Inventory_Tab_03",

                        "type" : "radio_button",

                        "x" : 7 + 32*2,

                        "y" : 33 + 191,

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                        "tooltip_text" : "3. Envanter",

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_03_Print",

                                "type" : "text",

                                "x" : 0,

                                "y" : 0,

                                "all_align" : "center",

                                "text" : "III",

                            },

                        ),

                    },

                    {

                        "name" : "Inventory_Tab_04",

                        "type" : "radio_button",

                        "x" : 7 + 32*3,

                        "y" : 33 + 191,

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                        "tooltip_text" : "4. Envanter",

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_04_Print",

                                "type" : "text",

                                "x" : 0,

                                "y" : 0,

                                "all_align" : "center",

                                "text" : "IV",

                            },

                        ),

                    },

                    {

                        "name" : "Inventory_Tab_05",

                        "type" : "radio_button",

                        "x" : 7 + 32*4,

                        "y" : 33 + 191,

                        "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                        "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                        "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                        "tooltip_text" : "5. Envanter",

                        "children" :

                        (

                            {

                                "name" : "Inventory_Tab_05_Print",

                                "type" : "text",

                                "x" : 0,

                                "y" : 0,

                                "all_align" : "center",

                                "text" : "V",

                            },

                        ),

                    },

                    ## Item Slot

                    {

                        "name" : "ItemSlot",

                        "type" : "grid_table",

                        "x" : 8,

                        "y" : 246,

                        "start_index" : 0,

                        "x_count" : 5,

                        "y_count" : 9,

                        "x_step" : 32,

                        "y_step" : 32,

                        "image" : "d:/ymir work/ui/public/Slot_Base.sub"

                    },

                    ## Print

                    {

                        "name":"Money_Slot",

                        "type":"button",

                        "x":8,

                        "y":28,

                        "horizontal_align":"center",

                        "vertical_align":"bottom",

                        "default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

                        "over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

                        "down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

                        "children" :

                        (

                            {

                                "name":"Money_Icon",

                                "type":"image",

                                "x":-18,

                                "y":2,

                                "image":"d:/ymir work/ui/game/windows/money_icon.sub",

                            },

                            {

                                "name" : "Money",

                                "type" : "text",

                                "x" : 3,

                                "y" : 3,

                                "horizontal_align" : "right",

                                "text_horizontal_align" : "right",

                                "text" : "123456789",

                            },

                        ),

                    },

                ),

            },

        ),

    }

    woL6oU3.png?1

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.