Jump to content

SolWayne

Member
  • Posts

    41
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by SolWayne

  1. 12 hours ago, .Kuja said:

    I get server errors when compiling the server source with your ServerSrc Everything works with the normal source of TMP4@ SolWayne
    https://metin2.download/picture/9Rw64i4pJXd31vWcAim6878N0o7DJ8Mz/.png 

     

    I use the TMP4 VDI. And compile on it too. (but this is a new version with aura system, offline shop and much more)
    https://metin2.download/picture/SB7ws7CW9Sdf7jM77BPHb1V3zRuaO7iL/.gif

    https://metin2.download/picture/d3a6R78fha1064J6UyqaOE1Y58P6Hk0R/.png


     

     

  2. HowTO install Files on FreeBSD12.3 ( BlazingFast )

    Spoiler

    ##Alles mit Ja beantworten (TuT wurde bei BlazingFast getestet)
    ##Gebe den Befehl ein :

    freebsd-update fetch

    ##Am ende wen da steht (end) muss man q drücken bis wieder root@user steht

    freebsd-update install
    pkg upgrade
    shutdown -r now

    freebsd-update -r 13.1-RELEASE upgrade

    ##Am ende (:) drücken dann (wq) Enter
    freebsd-update install
    shutdown -r now
    pkg update
    freebsd-update install
    shutdown -r now
    freebsd-version

    (gucke ob es noch v12.3 oder v13.1 ist)

    Have Fun

  3. NEW ARROW Fix

    SRC:

    Spoiler

    Client/Userinterface/InstanceBase.cpp

    Quote

    # Suche nach : Funktion : UINT CInstanceBase::__GetRefinedEffect(CItemData* pItem)


    #ifdef ENABLE_NEW_ARROW_SYSTEM
                    case CItemData::WEAPON_UNLIMITED_ARROW:
    #endif
            case CItemData::WEAPON_BELL:
                m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7+refine-7;
                break;
                case CItemData::WEAPON_BOW:
    #ifdef ENABLE_NEW_ARROW_SYSTEM
                    if (m_awPart[CRaceData::PART_ARROW_TYPE] == CItemData::WEAPON_UNLIMITED_ARROW)
                        SetMotionMode(CRaceMotionData::MODE_BOW_SPECIAL);
                    else
                        SetMotionMode(CRaceMotionData::MODE_BOW);
    #else
                    SetMotionMode(CRaceMotionData::MODE_BOW);
    #endif


    # Ersetzen mit :

            case CItemData::WEAPON_ARROW:
    #ifdef ENABLE_NEW_ARROW_SYSTEM
                    case CItemData::WEAPON_UNLIMITED_ARROW:
    #endif


    # Suche nache Funktion und ersetze : void CInstanceBase::RefreshState(DWORD dwMotIndex, bool isLoop)

    void CInstanceBase::RefreshState(DWORD dwMotIndex, bool isLoop)
    {
        DWORD dwPartItemID = m_GraphicThingInstance.GetPartItemID(CRaceData::PART_WEAPON);

        BYTE byItemType = 0xff;
        BYTE bySubType = 0xff;

        CItemManager & rkItemMgr = CItemManager::Instance();
        CItemData * pItemData;
        
        if (rkItemMgr.GetItemDataPointer(dwPartItemID, &pItemData))
        {
            byItemType = pItemData->GetType();
            bySubType = pItemData->GetWeaponType();
        }

        if (IsPoly())
        {
            SetMotionMode(CRaceMotionData::MODE_GENERAL);
        }
        else if (IsWearingDress())
        {
            SetMotionMode(CRaceMotionData::MODE_WEDDING_DRESS);
        }
        else if (IsHoldingPickAxe())
        {
            if (m_kHorse.IsMounting())
            {
                SetMotionMode(CRaceMotionData::MODE_HORSE);
            }
            else
            {
                SetMotionMode(CRaceMotionData::MODE_GENERAL);
            }
        }
        else if (CItemData::ITEM_TYPE_ROD == byItemType)
        {
            if (m_kHorse.IsMounting())
            {
                SetMotionMode(CRaceMotionData::MODE_HORSE);
            }
            else
            {
                SetMotionMode(CRaceMotionData::MODE_FISHING);
            }
        }
    #ifdef ENABLE_COSTUME_WEAPON_SYSTEM
        else if (byItemType == CItemData::ITEM_TYPE_COSTUME)
        {
            switch (pItemData->GetValue(3))
            {
                case CItemData::WEAPON_SWORD:
                    if (m_kHorse.IsMounting())
                        SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                    else
                        SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
                    break;
                case CItemData::WEAPON_DAGGER:
                    if (m_kHorse.IsMounting())
                        SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD);
                    else
                        SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD);
                    break;
                case CItemData::WEAPON_BOW:
                    if (m_kHorse.IsMounting())
                        SetMotionMode(CRaceMotionData::MODE_HORSE_BOW);
                    else
    #ifdef ENABLE_NEW_ARROW_SYSTEM
                    {
                        if (m_awPart[CRaceData::PART_ARROW_TYPE] == CItemData::WEAPON_UNLIMITED_ARROW)
                            SetMotionMode(CRaceMotionData::MODE_BOW_SPECIAL);
                        else
                            SetMotionMode(CRaceMotionData::MODE_BOW);
                    }
    #else
                        SetMotionMode(CRaceMotionData::MODE_BOW);
    #endif
                    break;
                case CItemData::WEAPON_TWO_HANDED:
                    if (m_kHorse.IsMounting())
                        SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD);
                    else
                        SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD);
                    break;
                case CItemData::WEAPON_BELL:
                    if (m_kHorse.IsMounting())
                        SetMotionMode(CRaceMotionData::MODE_HORSE_BELL);
                    else
                        SetMotionMode(CRaceMotionData::MODE_BELL);
                    break;
                case CItemData::WEAPON_FAN:
                    if (m_kHorse.IsMounting())
                        SetMotionMode(CRaceMotionData::MODE_HORSE_FAN);
                    else
                        SetMotionMode(CRaceMotionData::MODE_FAN);
                    break;
                default:
                        if (m_kHorse.IsMounting())
                            SetMotionMode(CRaceMotionData::MODE_HORSE);
                        else
                            SetMotionMode(CRaceMotionData::MODE_GENERAL);
                    break;
            }
        }
    #endif
        else if (m_kHorse.IsMounting())
        {
            switch (bySubType)
            {
                case CItemData::WEAPON_SWORD:
                    SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                    break;

                case CItemData::WEAPON_TWO_HANDED:
                    SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD); // Only Warrior
                    break;

                case CItemData::WEAPON_DAGGER:
                    SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD); // Only Assassin
                    break;

                case CItemData::WEAPON_FAN:
                    SetMotionMode(CRaceMotionData::MODE_HORSE_FAN); // Only Shaman
                    break;

                case CItemData::WEAPON_BELL:
                    SetMotionMode(CRaceMotionData::MODE_HORSE_BELL); // Only Shaman
                    break;

                case CItemData::WEAPON_BOW:
                    SetMotionMode(CRaceMotionData::MODE_HORSE_BOW); // Only Shaman
                    break;

                default:
                    SetMotionMode(CRaceMotionData::MODE_HORSE);
                    break;
            }
        }
        else
        {
            switch (bySubType)
            {
                case CItemData::WEAPON_SWORD:
                    SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
                    break;

                case CItemData::WEAPON_TWO_HANDED:
                    SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD); // Only Warrior
                    break;

                case CItemData::WEAPON_DAGGER:
                    SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD); // Only Assassin
                    break;

                case CItemData::WEAPON_BOW:
    #ifdef ENABLE_NEW_ARROW_SYSTEM
                    if (m_awPart[CRaceData::PART_ARROW_TYPE] == CItemData::WEAPON_UNLIMITED_ARROW)
                        SetMotionMode(CRaceMotionData::MODE_BOW_SPECIAL);
                    else
                        SetMotionMode(CRaceMotionData::MODE_BOW);
    #else
                    SetMotionMode(CRaceMotionData::MODE_BOW);
    #endif
                    break;

                case CItemData::WEAPON_FAN:
                    SetMotionMode(CRaceMotionData::MODE_FAN); // Only Shaman
                    break;

                case CItemData::WEAPON_BELL:
                    SetMotionMode(CRaceMotionData::MODE_BELL); // Only Shaman
                    break;

                case CItemData::WEAPON_ARROW:
    #ifdef ENABLE_NEW_ARROW_SYSTEM
                    case CItemData::WEAPON_UNLIMITED_ARROW:
    #endif
                default:
                    SetMotionMode(CRaceMotionData::MODE_GENERAL);
                    break;
            }
        }

        if (isLoop)
            m_GraphicThingInstance.InterceptLoopMotion(dwMotIndex);
        else
            m_GraphicThingInstance.InterceptOnceMotion(dwMotIndex);

        RefreshActorInstance();
    }


     

    Tools/dump_proto/ItemCSVReader.cpp

     

    Quote

    # Suche nach :

        string arSub1[] = { "WEAPON_SWORD", "WEAPON_DAGGER", "WEAPON_BOW", "WEAPON_TWO_HANDED",
                    "WEAPON_BELL", "WEAPON_FAN", "WEAPON_ARROW", "WEAPON_MOUNT_SPEAR"};

    # Ersetzen mit :

        string arSub1[] = { "WEAPON_SWORD", "WEAPON_DAGGER", "WEAPON_BOW", "WEAPON_TWO_HANDED",
                    "WEAPON_BELL", "WEAPON_FAN", "WEAPON_ARROW", "WEAPON_UNLIMITED_ARROW", "WEAPON_MOUNT_SPEAR"};

     


     

    • Love 1
  4. 3 hours ago, Tuckii said:

     

    hs3a7hW.png

    idk about that snce it was mentioned on the first page but the metin overall worked for me before I changed language so it shouldnt be my fault that I didnt do VS when I did that actually.

    All edits ONLY IN GERMAN
    if you change the language you have to include the new parts from locale and locale string

  5. https://metin2.download/picture/ing17gO88L4ai3O68863773mcV48jGQ1/.gif
    Mytish Dragon Soul Fix coming

    Mytish Dragon Soul Fix :

     

    Client SRC:

    Spoiler

    Userinterface/GameType.h

    # Am start hinzufugen

    #include "Locale_inc"

    # Am start hinzufugen
    
    #include "Locale_inc"

     



    Server:

    Spoiler

    usr/metin2/share/locale/english

    dragon_soul_table.txt  ( New )

    Spoiler
    Group VnumMapper
    {
    	#--#	DragonSoulName	Type
    	1	¹é·æ¼®	11
    	2	È­·æ¼®	12
    	3	dz·æ¼®	13
    	4	ö·æ¼®	14
    	5	³ú·æ¼®	15
    	6	Èæ·æ¼®	16
    }
    
    Group BasicApplys
    {
    	Group ¹é·æ¼®
    	{
    		#--#	Apply_Type	Apply_value
    		1	INT	10
    		2	RESIST_ICE	10
    		3	ENCHANT_ICE	10
    	}
    	
    	Group È­·æ¼®
    	{
    		#--#	Apply_Type	Apply_value
    		1	STR	10
    		2	RESIST_FIRE	10
    		3	ENCHANT_FIRE	10
    	}
    	
    	Group dz·æ¼®
    	{
    		#--#	Apply_Type	Apply_value
    		1	MAX_SP	500
    		2	RESIST_WIND	10
    		3	ENCHANT_WIND	10
    	}
    	
    	Group ö·æ¼®
    	{
    		#--#	Apply_Type	Apply_value
    		1	DEX	10
    		2	RESIST_EARTH	10
    		3	ENCHANT_EARTH	10
    	}
    	
    	Group ³ú·æ¼®
    	{
    		#--#	Apply_Type	Apply_value
    		1	MAX_HP	1500
    		2	RESIST_ELEC	10
    		3	ENCHANT_ELEC	10
    	}
    	
    	Group Èæ·æ¼®
    	{
    		#--#	Apply_Type	Apply_value
    		1	CON	10
    		2	RESIST_DARK	10
    		3	ENCHANT_DARK	10
    	}
    }
    
    Group AdditionalApplys
    {
    	Group ¹é·æ¼®
    	{
    		#--#	Apply_Type	Apply_value	Prob
    		1	MAGIC_ATT_GRADE	15	10
    		2	MAGIC_DEF_GRADE	15	10
    		3	SKILL_DAMAGE_BONUS	15	10
    		4	SKILL_DEFEND_BONUS	15	10
    	}
    	
    	Group È­·æ¼®
    	{
    		#--#	Apply_Type	Apply_value	Prob
    		1	ATT_BONUS	300	10
    		2	DEF_BONUS	200	10
    		3	NORMAL_HIT_DAMAGE_BONUS	15	10
    		4	NORMAL_HIT_DEFEND_BONUS	15	10
    	}
    	
    	Group dz·æ¼®
    	{
    		#--#	Apply_Type	Apply_value	Prob
    		1	MAX_HP	3000	10
    		2	HP_REGEN	10	10
    		3	STEAL_HP	10	10
    		4	KILL_HP_RECOVER	5	10
    		5	MAX_HP_PCT	20	10
    	}
    	Group ö·æ¼®
    	{
    		#--#	Apply_Type	Apply_value	Prob
    		1	ATT_BONUS_TO_WARRIOR	15	10
    		2	ATT_BONUS_TO_ASSASSIN	15	10
    		3	ATT_BONUS_TO_SURA	15	10
    		4	ATT_BONUS_TO_SHAMAN	15	10
    		6	RESIST_WARRIOR	15	10
    		7	RESIST_ASSASSIN	15	10
    		8	RESIST_SURA	15	10
    		9	RESIST_SHAMAN	15	10
    	}
    	Group ³ú·æ¼®
    	{
    		#--#	Apply_Type	Apply_value	Prob
    		1	MAX_SP	1500	10
    		2	SP_REGEN	10	10
    		3	STEAL_SP	10	10
    		4	KILL_SP_RECOVER	5	10
    		5	MAX_SP_PCT	20	10
    	}
    	Group Èæ·æ¼®
    	{
    		#--#	Apply_Type	Apply_value	Prob
    		1	BLOCK	10	10
    		2	DODGE	10	10
    		3	REFLECT_MELEE	10	10
    		4	RESIST_CRITICAL	10	10
    		5	RESIST_PENETRATE	10	10
    	}
    }
    
    Group ApplyNumSettings
    {
    	Group Default
    	{
    		#--#	GRADE_NORMAL	GRADE_BRILLIANT	GRADE_RARE	GRADE_ANCIENT	GRADE_LEGENDARY	GRADE_MYTH
    		basis	1	1	1	2	2	3
    		add_min	0	0	0	0	0	0
    		add_max	0	1	2	2	3	3
    	}
    }
    
    Group WeightTables
    {
    	Group Default
    	{
    		Group GRADE_NORMAL
    		{
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	1	2	3	0	0	0	0
    			STEP_LOW	2	3	4	0	0	0	0
    			STEP_MID	3	4	5	6	0	0	0
    			STEP_HIGH	4	5	6	7	0	0	0
    			STEP_HIGHEST	5	6	7	8	10	0	0
    		}
    		
    		Group GRADE_BRILLIANT
    		{
    			STEP_LOWEST	3	4	5	6	0	0	0
    			STEP_LOW	4	5	6	8	0	0	0
    			STEP_MID	5	6	8	10	0	0	0
    			STEP_HIGH	6	8	10	12	15	0	0
    			STEP_HIGHEST	8	10	12	15	20	0	0
    		}
    		
    		Group GRADE_RARE
    		{
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	6	7	9	11	15	0	0
    			STEP_LOW	7	9	11	15	20	0	0
    			STEP_MID	9	11	15	20	25	0	0
    			STEP_HIGH	11	15	20	25	30	0	0
    			STEP_HIGHEST	15	20	25	30	40	0	0
    		}
    		
    		Group GRADE_ANCIENT
    		{
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	10	12	15	18	20	0	0
    			STEP_LOW	12	15	18	20	25	0	0
    			STEP_MID	15	18	20	25	35	0	0
    			STEP_HIGH	18	20	25	35	40	0	0
    			STEP_HIGHEST	20	25	35	40	60	80	0
    		}
    		
    		Group GRADE_LEGENDARY
    		{
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	30	35	40	45	50	0	0
    			STEP_LOW	35	40	45	50	55	0	0
    			STEP_MID	40	45	50	55	65	0	0
    			STEP_HIGH	45	50	55	65	75	90	0
    			STEP_HIGHEST	50	55	65	75	90	105	120
    		}
    		
    		Group GRADE_MYTH
    		{
    			#--#	0	1	2	3	4	5	6
    			STEP_LOWEST	35	40	45	50	55	0	0
    			STEP_LOW	45	50	55	60	65	0	0
    			STEP_MID	50	55	60	70	80	0	0
    			STEP_HIGH	65	75	85	95	105	120	0
    			STEP_HIGHEST	75	85	95	105	120	135	160
    		}
    	}
    }
    
    Group RefineGradeTables
    {
    	Group Default
    	{
    		#--#	NEED_COUNT	FEE	GRADE_NORMAL	GRADE_BRILLIANT	GRADE_RARE	GRADE_ANCIENT	GRADE_LEGENDARY	GRADE_MYTH
    		GRADE_NORMAL	2	30000	50	50	0	0	0	0
    		GRADE_BRILLIANT	2	50000	0	50	50	0	0	0
    		GRADE_RARE	2	70000	0	0	50	50	0	0
    		GRADE_ANCIENT	2	100000	0	0	0	50	50	0
    		GRADE_LEGENDARY	2	150000	0	0	0	0	50	50
    	}
    }
    
    Group RefineStepTables
    {
    	Group Default
    	{
    		#--#	NEED_COUNT	FEE	STEP_LOWEST	STEP_LOW	STEP_MID	STEP_HIGH	STEP_HIGHEST
    		STEP_LOWEST	2	20000	50	50	0	0	0
    		STEP_LOW	2	30000	0	50	50	0	0
    		STEP_MID	2	40000	0	0	50	50	0
    		STEP_HIGH	2	50000	0	0	0	50	50
    	}
    }
    
    Group RefineStrengthTables
    {
    	Group Default
    	{
    		#--#	FEE	0	1	2	3	4	5
    		MATERIAL_DS_REFINE_NORMAL	10000	100	80	70	50	30	20	10
    		MATERIAL_DS_REFINE_BLESSED	20000	100	88	77	55	33	22	12
    		MATERIAL_DS_REFINE_HOLLY	30000	100	90	80	60	40	30	20
    	}
    }
    
    Group DragonHeartExtTables
    {
    	Group Default
    	{
    		#--#	1	2	3	4	5
    		CHARGING	0	5	15	30	50
    		GRADE_NORMAL	50	35	12	2	1
    		GRADE_BRILLIANT	35	40	20	4	1
    		GRADE_RARE	20	35	30	12	3
    		GRADE_ANCIENT	15	30	35	15	5
    		GRADE_LEGENDARY	10	20	40	20	10
    		GRADE_MYTH	10	20	40	20	10
    	}
    }
    
    Group DragonSoulExtTables
    {
    	Group Default
    	{
    		#--#	Prob	ByProduct
    		GRADE_NORMAL	50	30270
    		GRADE_BRILLIANT	40	30270
    		GRADE_RARE	30	30270
    		GRADE_ANCIENT	30	30270
    		GRADE_LEGENDARY	20	30270
    		GRADE_MYTH	10	30270
    	}
    }

     

     

     

     

    Client:

    Spoiler

    client/root

    dragon_soul_refine_settings.py

    Spoiler
    # Löschen sie alles und fügen das ein
    
    import item
    
    default_grade_need_count = [2, 2, 2, 2, 2]
    default_grade_fee = [30000, 50000, 70000, 100000, 150000]
    default_step_need_count = [2, 2, 2, 2, 2]
    default_step_fee = [20000, 30000, 40000, 50000, 60000]
    default_flame_need_count = [1, 3, 5, 10, 20]
    
    strength_fee = {
    	item.MATERIAL_DS_REFINE_NORMAL : 10000,
    	item.MATERIAL_DS_REFINE_BLESSED : 20000,
    	item.MATERIAL_DS_REFINE_HOLLY : 30000,
    }
    
    default_strength_max_table = [
    	[2, 2, 3, 3, 4],
    	[3, 3, 3, 4, 4],
    	[4, 4, 4, 4, 4],
    	[4, 4, 4, 4, 5],
    	[4, 4, 4, 5, 6],
    	[4, 4, 4, 5, 6],
    	]
    
    default_refine_info = {
    	"grade_need_count" : default_grade_need_count,
    	"grade_fee" : default_grade_fee,
    	"step_need_count" : default_step_need_count,
    	"step_fee" : default_step_fee,
    	"strength_max_table" : default_strength_max_table,
    }
    
    dragon_soul_refine_info = {
    	11 : default_refine_info,
    	12 : default_refine_info,
    	13 : default_refine_info,
    	14 : default_refine_info,
    	15 : default_refine_info,
    	16 : default_refine_info,
    }

     

     

    uidragonsoul.py

    Spoiler
    # Suchen sie nach :
    			if app.ENABLE_DS_GRADE_MYTH:
    				self.inventoryTab.append(self.GetChild("Inventory_Tab_06"))
    
    # Ersetzen mit :
    			self.inventoryTab.append(self.GetChild("Inventory_Tab_06"))
    
    
    
    
    # Suchen sie nach :
    		if app.ENABLE_DS_GRADE_MYTH:
    			self.inventoryTab[5].SetEvent(lambda arg=5: self.SetInventoryPage(arg))
    
    # Ersetzen mit :
    		self.inventoryTab[5].SetEvent(lambda arg=5: self.SetInventoryPage(arg))
    
    
    
    
    # Suchen sie nach :
    		self.inventoryPageIndex = page
    		if app.ENABLE_DS_GRADE_MYTH:
    			self.inventoryTab[(page+1)%6].SetUp()
    			self.inventoryTab[(page+2)%6].SetUp()
    			self.inventoryTab[(page+3)%6].SetUp()
    			self.inventoryTab[(page+4)%6].SetUp()
    			self.inventoryTab[(page+5)%6].SetUp()
    		else:
    			self.inventoryTab[(page+1)%5].SetUp()
    			self.inventoryTab[(page+2)%5].SetUp()
    			self.inventoryTab[(page+3)%5].SetUp()
    			self.inventoryTab[(page+4)%5].SetUp()
    
    # Ersetzen mit 
    		self.inventoryPageIndex = page
    		self.inventoryTab[(page+1)%6].SetUp()
    		self.inventoryTab[(page+2)%6].SetUp()
    		self.inventoryTab[(page+3)%6].SetUp()
    		self.inventoryTab[(page+4)%6].SetUp()
    		self.inventoryTab[(page+5)%6].SetUp()

     

     

     

    uitooltip.py

    Spoiler
    # Suchen sie nach :
    
    	def __IsHair(self, itemVnum):
    		if app.ENABLE_DS_GRADE_MYTH:
    			return (self.__IsOldHair(itemVnum) or 
    			self.__IsNewHair(itemVnum) or
    			self.__IsNewHair2(itemVnum) or
    			self.__IsNewHair3(itemVnum))
    		else:
    			return (self.__IsOldHair(itemVnum) or 
    			self.__IsNewHair(itemVnum) or
    			self.__IsNewHair2(itemVnum) or
    			self.__IsNewHair3(itemVnum) or
    			self.__IsCostumeHair(itemVnum)
    			)
    
    	if not app.ENABLE_DS_GRADE_MYTH:
    		def __IsCostumeHair(self, itemVnum):
    			return self.__IsNewHair3(itemVnum - 100000)
    
    # Ersetzen mit :
    
    	def __IsHair(self, itemVnum):
    		return (self.__IsOldHair(itemVnum) or 
    			self.__IsNewHair(itemVnum) or
    			self.__IsNewHair2(itemVnum) or
    			self.__IsNewHair3(itemVnum) or
    			self.__IsCostumeHair(itemVnum)
    			)
    
    
    
    
    
    # Suchen sie nach :
    
    def __AppendHairIcon(self, itemVnum):
    
    # Davor hinzufugen :
    
    	def __IsCostumeHair(self, itemVnum):
    		return app.ENABLE_COSTUME_SYSTEM and self.__IsNewHair3(itemVnum - 100000)
    
    
    
    
    
    # Suchen sie nach :
    
    		elif not app.ENABLE_DS_GRADE_MYTH and self.__IsCostumeHair(itemVnum):
    			itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum - 100000))
    		elif self.__IsCostumeHair(itemVnum):
    			itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum - 100000))
    
    # Ersetzen mit :
    
    		elif self.__IsCostumeHair(itemVnum):
    			itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum - 100000))

     

     

     

     

    Have Fun !

    • Metin2 Dev 1
    • Good 1
    • Love 1
    • Love 3
  6. 15 minutes ago, Tuckii said:

    So the sashes are fixed now? What else have to be fixed? The mythic alchemy? What is the issue there?

    Mytish Dragon Soul : There is no improvement at all

    Weapon Custom system : Can be donned without a weapon

     

    No other bugs are currently known

     

  7. Here is a small fix from the sash system. Thanks to WhiteBambo for this fix!

    It is about the bonus takeover that you can see the new bonuses.

     

    Spoiler

    Open Client/root/uitooltip.py

    # Danke an WhiteBambo für den fix     <3
    
    
    #Suche Nach :
    
    class HyperlinkItemToolTip(ItemToolTip):
    
    #Davor das hinzufügen :
    
    	if app.ENABLE_SASH_SYSTEM:
    		def SetSashResultItem(self, slotIndex, window_type = player.INVENTORY):
    			(itemVnum, MinAbs, MaxAbs) = sash.GetResultItem()
    			if not itemVnum:
    				return
    			
    			self.ClearToolTip()
    			
    			metinSlot = [player.GetItemMetinSocket(window_type, slotIndex, i) for i in xrange(player.METIN_SOCKET_MAX_NUM)]
    			attrSlot = [player.GetItemAttribute(window_type, slotIndex, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]
    			
    			item.SelectItem(itemVnum)
    			itemType = item.GetItemType()
    			itemSubType = item.GetItemSubType()
    			if itemType != item.ITEM_TYPE_COSTUME and itemSubType != item.COSTUME_TYPE_SASH:
    				return
    			
    			absChance = MaxAbs
    			itemDesc = item.GetItemDescription()
    			self.__AdjustMaxWidth(attrSlot, itemDesc)
    			self.__SetItemTitle(itemVnum, metinSlot, attrSlot)
    			self.AppendDescription(itemDesc, 26)
    			self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
    			self.__AppendLimitInformation()
    			
    			## ABSORPTION RATE
    			if MinAbs == MaxAbs:
    				self.AppendTextLine(localeInfo.SASH_ABSORB_CHANCE % (MinAbs), self.CONDITION_COLOR)
    			else:
    				self.AppendTextLine(localeInfo.SASH_ABSORB_CHANCE2 % (MinAbs, MaxAbs), self.CONDITION_COLOR)
    			## END ABSOPRTION RATE
    			
    			itemAbsorbedVnum = int(metinSlot[sash.ABSORBED_SOCKET])
    			if itemAbsorbedVnum:
    				## ATTACK / DEFENCE
    				item.SelectItem(itemAbsorbedVnum)
    				if item.GetItemType() == item.ITEM_TYPE_WEAPON:
    					if item.GetItemSubType() == item.WEAPON_FAN:
    						self.__AppendMagicAttackInfo(absChance)
    						item.SelectItem(itemAbsorbedVnum)
    						self.__AppendAttackPowerInfo(absChance)
    					else:
    						self.__AppendAttackPowerInfo(absChance)
    						item.SelectItem(itemAbsorbedVnum)
    						self.__AppendMagicAttackInfo(absChance)
    				elif item.GetItemType() == item.ITEM_TYPE_ARMOR:
    					defGrade = item.GetValue(1)
    					defBonus = item.GetValue(5) * 2
    					defGrade = self.CalcSashValue(defGrade, absChance)
    					defBonus = self.CalcSashValue(defBonus, absChance)
    					
    					if defGrade > 0:
    						self.AppendSpace(5)
    						self.AppendTextLine(localeInfo.TOOLTIP_ITEM_DEF_GRADE % (defGrade + defBonus), self.GetChangeTextLineColor(defGrade))
    					
    					item.SelectItem(itemAbsorbedVnum)
    					self.__AppendMagicDefenceInfo(absChance)
    				## END ATTACK / DEFENCE
    				
    				## EFFECT
    				item.SelectItem(itemAbsorbedVnum)
    				for i in xrange(item.ITEM_APPLY_MAX_NUM):
    					(affectType, affectValue) = item.GetAffect(i)
    					affectValue = self.CalcSashValue(affectValue, absChance)
    					affectString = self.__GetAffectString(affectType, affectValue)
    					if affectString and affectValue > 0:
    						self.AppendTextLine(affectString, self.GetChangeTextLineColor(affectValue))
    					
    					item.SelectItem(itemAbsorbedVnum)
    				# END EFFECT
    				
    			item.SelectItem(itemVnum)
    			## ATTR
    			self.__AppendAttributeInformation(attrSlot, MaxAbs)
    			# END ATTR
    			
    			self.AppendWearableInformation()
    			self.ShowToolTip()
    
    		def SetSashResultAbsItem(self, slotIndex1, slotIndex2, window_type = player.INVENTORY):
    			itemVnumSash = player.GetItemIndex(window_type, slotIndex1)
    			itemVnumTarget = player.GetItemIndex(window_type, slotIndex2)
    			if not itemVnumSash or not itemVnumTarget:
    				return
    			
    			self.ClearToolTip()
    			
    			item.SelectItem(itemVnumSash)
    			itemType = item.GetItemType()
    			itemSubType = item.GetItemSubType()
    			if itemType != item.ITEM_TYPE_COSTUME and itemSubType != item.COSTUME_TYPE_SASH:
    				return
    			
    			metinSlot = [player.GetItemMetinSocket(window_type, slotIndex1, i) for i in xrange(player.METIN_SOCKET_MAX_NUM)]
    			attrSlot = [player.GetItemAttribute(window_type, slotIndex2, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]
    			
    			itemDesc = item.GetItemDescription()
    			self.__AdjustMaxWidth(attrSlot, itemDesc)
    			self.__SetItemTitle(itemVnumSash, metinSlot, attrSlot)
    			self.AppendDescription(itemDesc, 26)
    			self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
    			item.SelectItem(itemVnumSash)
    			self.__AppendLimitInformation()
    			
    			## ABSORPTION RATE
    			self.AppendTextLine(localeInfo.SASH_ABSORB_CHANCE % (metinSlot[sash.ABSORPTION_SOCKET]), self.CONDITION_COLOR)
    			## END ABSOPRTION RATE
    			
    			## ATTACK / DEFENCE
    			itemAbsorbedVnum = itemVnumTarget
    			item.SelectItem(itemAbsorbedVnum)
    			if item.GetItemType() == item.ITEM_TYPE_WEAPON:
    				if item.GetItemSubType() == item.WEAPON_FAN:
    					self.__AppendMagicAttackInfo(metinSlot[sash.ABSORPTION_SOCKET])
    					item.SelectItem(itemAbsorbedVnum)
    					self.__AppendAttackPowerInfo(metinSlot[sash.ABSORPTION_SOCKET])
    				else:
    					self.__AppendAttackPowerInfo(metinSlot[sash.ABSORPTION_SOCKET])
    					item.SelectItem(itemAbsorbedVnum)
    					self.__AppendMagicAttackInfo(metinSlot[sash.ABSORPTION_SOCKET])
    			elif item.GetItemType() == item.ITEM_TYPE_ARMOR:
    				defGrade = item.GetValue(1)
    				defBonus = item.GetValue(5) * 2
    				defGrade = self.CalcSashValue(defGrade, metinSlot[sash.ABSORPTION_SOCKET])
    				defBonus = self.CalcSashValue(defBonus, metinSlot[sash.ABSORPTION_SOCKET])
    				
    				if defGrade > 0:
    					self.AppendSpace(5)
    					self.AppendTextLine(localeInfo.TOOLTIP_ITEM_DEF_GRADE % (defGrade + defBonus), self.GetChangeTextLineColor(defGrade))
    				
    				item.SelectItem(itemAbsorbedVnum)
    				self.__AppendMagicDefenceInfo(metinSlot[sash.ABSORPTION_SOCKET])
    			## END ATTACK / DEFENCE
    			
    			## EFFECT
    			item.SelectItem(itemAbsorbedVnum)
    			for i in xrange(item.ITEM_APPLY_MAX_NUM):
    				(affectType, affectValue) = item.GetAffect(i)
    				affectValue = self.CalcSashValue(affectValue, metinSlot[sash.ABSORPTION_SOCKET])
    				affectString = self.__GetAffectString(affectType, affectValue)
    				if affectString and affectValue > 0:
    					self.AppendTextLine(affectString, self.GetChangeTextLineColor(affectValue))
    				
    				item.SelectItem(itemAbsorbedVnum)
    			## END EFFECT
    			
    			## ATTR
    			item.SelectItem(itemAbsorbedVnum)
    			for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
    				type = attrSlot[i][0]
    				value = attrSlot[i][1]
    				if not value:
    					continue
    				
    				value = self.CalcSashValue(value, metinSlot[sash.ABSORPTION_SOCKET])
    				affectString = self.__GetAffectString(type, value)
    				if affectString and value > 0:
    					affectColor = self.__GetAttributeColor(i, value)
    					self.AppendTextLine(affectString, affectColor)
    				
    				item.SelectItem(itemAbsorbedVnum)
    			## END ATTR
    			
    			## WEARABLE
    			item.SelectItem(itemVnumSash)
    			self.AppendSpace(5)
    			self.AppendTextLine(localeInfo.TOOLTIP_ITEM_WEARABLE_JOB, self.NORMAL_COLOR)
    			
    			item.SelectItem(itemVnumSash)
    			flagList = (
    						not item.IsAntiFlag(item.ITEM_ANTIFLAG_WARRIOR),
    						not item.IsAntiFlag(item.ITEM_ANTIFLAG_ASSASSIN),
    						not item.IsAntiFlag(item.ITEM_ANTIFLAG_SURA),
    						not item.IsAntiFlag(item.ITEM_ANTIFLAG_SHAMAN)
    			)
    			
    			
    			characterNames = ""
    			for i in xrange(self.CHARACTER_COUNT):
    				name = self.CHARACTER_NAMES[i]
    				flag = flagList[i]
    				if flag:
    					characterNames += " "
    					characterNames += name
    			
    			textLine = self.AppendTextLine(characterNames, self.NORMAL_COLOR, True)
    			textLine.SetFeather()
    			
    			item.SelectItem(itemVnumSash)
    			if item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE):
    				textLine = self.AppendTextLine(localeInfo.FOR_FEMALE, self.NORMAL_COLOR, True)
    				textLine.SetFeather()
    			
    			if item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE):
    				textLine = self.AppendTextLine(localeInfo.FOR_MALE, self.NORMAL_COLOR, True)
    				textLine.SetFeather()
    			## END WEARABLE
    			
    			self.ShowToolTip()

     

  8.  

    I found a bug that is easy to fix:

     Go Client SRC InstanceBase.cpp

    Find 2X

    Spoiler

    #ifdef ENABLE_NEW_ARROW_SYSTEM
                    case CItemData::WEAPON_UNLIMITED_ARROW:
    #endif

    And Replace it whits

    Spoiler

                case CItemData::WEAPON_ARROW:
    #ifdef ENABLE_NEW_ARROW_SYSTEM
                    case CItemData::WEAPON_UNLIMITED_ARROW:
    #endif

     

  9. On 1/12/2023 at 8:17 PM, SolWayne said:

    This is an german files creat from TMP4 edit by SolWayne !

    ALL EDITS ONLY IN GERMAN 

     

      Reveal hidden contents
    start			cd /usr/metin2/server && sh start.sh
    close			cd /usr/metin2/server && sh close.sh
    clean			cd /usr/metin2/server && sh clean.sh
    backup			cd /usr/metin2/server && sh backup.sh
    questcompile		cd /usr/metin2/server/share/locale/english/quest && python2.7 make.py
    dbclean			cd /usr/metin2/src/db/src && gmake clean
    dbdep			cd /usr/metin2/src/db/src && gmake dep
    dbcompile		cd /usr/metin2/src/db/src && gmake -j9
    gameclean		cd /usr/metin2/src/game/src && gmake clean
    gamedep			cd /usr/metin2/src/game/src && gmake dep
    gamecompile		cd /usr/metin2/src/game/src && gmake -j9

     

      Reveal hidden contents

    Server:
    #ifndef __INC_SERVICE_H__
    #define __INC_SERVICE_H__
    #define ENABLE_DS_GRADE_MYTH
    #define ENABLE_AUTODETECT_INTERNAL_IP
    #define ENABLE_PROXY_IP
    #define ENABLE_PORT_SECURITY
    #define _IMPROVED_PACKET_ENCRYPTION_ // 패킷 암호화 개선
    //#define __AUCTION__
    #define __PET_SYSTEM__
    #define __UDP_BLOCK__
    #define ENABLE_IGNORE_LOWER_BUFFS
    #define ENABLE_GIVE_BASIC_ITEM_SOURCE
    #define __NEW_ARROW_SYSTEM__
    #define __BL_PARTY_POSITION__
    #define NEW_PET_SYSTEM
    #define __SEND_TARGET_INFO__
    #define __SKILLS_LEVEL_OVER_P__
    #define ENABLE_GLOBAL_CHAT
    #define __WEAPON_COSTUME_SYSTEM__
    #define __COSTUME_ATTR_SYSTEM__
    #define __SASH_SYSTEM__
    #endif

    Client:
    #define LOCALE_SERVICE_SINGAPORE            // ½Ì°¡Æú
    #define ENABLE_COSTUME_SYSTEM
    #define ENABLE_ENERGY_SYSTEM
    #define ENABLE_DRAGON_SOUL_SYSTEM
    #define ENABLE_NEW_EQUIPMENT_SYSTEM
    #define ENABLE_DISCORD_RPC
    #define ENABLE_NEW_ARROW_SYSTEM
    #define __BL_PARTY_POSITION__
    #define NEW_PET_SYSTEM
    #define ENABLE_DS_GRADE_MYTH
    #define ENABLE_SEND_TARGET_INFO
    #define ENABLE_SKILLS_LEVEL_OVER_P
    #ifdef ENABLE_COSTUME_SYSTEM
        #define ENABLE_COSTUME_WEAPON_SYSTEM
    #endif
    #define ENABLE_COSTUME_ATTR_SYSTEM
    #define ENABLE_SASH_SYSTEM

    Systems in german:
    v0.0.1
    -4 Inventar Seiten
    -Discord Anzeige
    v0.0.2
    -Gruppenbuff
    -Schnelles Item aufheben
    -Direktes Item aufheben aller Items
    -Mob Level anzeige
    -Move Speed auf 200
    v0.0.3
    -Man kann keine Schlechteren Buffs Bekommen
    -Starter EQ über SRC/ Einstellbar (cmd_generall.cpp #ifdef ENABLE_GIVE_BASIC_ITEM_SOURCE)
    -Aura und VZK nur noch mit Waffe
    -Metinstein Level anzeige
    v0.0.4
    -Ninja Köcher
    -6ter Ninja Krieger Skill
    -Item Zerstörung via Weg werfen
    -Multi Status Punkte
    -Metinsteine auf der Minimap
    -Gruppen mitglieder auf der Minimap
    -Größere Shop fenster
    v0.0.5
    -Level Pet System
    -Mytische Alchi
    -TargetInfo System
    -Alchi Aktiv (Fenster sicht)
    v0.0.6
    -Waffenkostüm
    -Drop Information
    -Kostüm Switcher
    -Skills Über P
    -Schulterband
    -Max Yang (long long)

     
      Reveal hidden contents

    MySQL PW: 123456789

    VDI PW: 123456789

    InGame:

    ID= admin

    PW= 123

    DL:  

    This is the hidden content, please


    HAVE FUN

    I add here again a tut purely what man has to do everything. ( Server Side VDI, and Client Source )

     

    Game Server, Server Source, MySQL

    Spoiler

    step 1:
    Move volume3_mysql to /var/db. Move volume_3_server/src to /usr/metin2

    step 2:
    Now come the commands for unpacking etc

    MySQL:

    service mysql-server stop
    cd /var/db && rm -r mysql
    chmod 777 volume3_mysql.tar.gz
    tar -xf volume3_mysql.tar.gz
    service mysql-server start


    Game / Server SRC

    cd /usr/metin2 && rm -r src server
    chmod 777 *.tar.gz
    tar -xf volume3_server.tar.gz
    tar -xf volume3_src.tar.gz

    And know is ready

    you don't need a reboot!!

    cd /usr/metin2/server && sh start.sh

     

    Client Source

     

    Spoiler

    step 1:
    Unpack the SRC.rar in the Client S22 folder. overwrite all files

    step 2: 

    Open the source in VS22. Go to the source folder and then go to Userinterface.

    https://metin2.download/picture/1pv1wVIKA3lAk9fxdfOKKT02G1pJ8tF8/.png

    step 3:
    Find the following files

    PythonSash (.cpp + .h)

    PythonSkillPet (.cpp + .h)

     

    step 4:

    import the files into the source

    https://metin2.download/picture/WL045rKHe5PaHDRQcyinm3OXwN4uuZPI/.gif

     

    • Metin2 Dev 1
    • Good 1
    • Love 1
  10. since two people have already had problems with client source, here are a few gifs to explain

     

    Spoiler

    step 1:
    Unpack the SRC.rar in the Client S22 folder. overwrite all files

    step 2: 

    Open the source in VS22. Go to the source folder and then go to Userinterface.

    https://metin2.download/picture/1pv1wVIKA3lAk9fxdfOKKT02G1pJ8tF8/.png

    step 3:
    Find the following files

    PythonSash (.cpp + .h)

    PythonSkillPet (.cpp + .h)

     

    step 4:

    import the files into the source

    https://metin2.download/picture/WL045rKHe5PaHDRQcyinm3OXwN4uuZPI/.gif

     



    I hope this helps you, especially the inexperienced

    • Metin2 Dev 1
  11. 5 minutes ago, Luffy said:

    Client does not pass character selection

    0116 13:55:57754 :: Phase Select does not handle this header (header: 1, last: 32, 1)
     

     

    Images in the client

    https://uploaddeimagens.com.br/imagens/ircky5w

    https://uploaddeimagens.com.br/imagens/zYER1zk

    I know about the weapon costume system as soon as I fix it it will be posted here as is and will be included in the download ( ty for report! )

    18 hours ago, WhiteBambo said:
    0115 23:50:12400 :: Traceback (most recent call last):
    
    0115 23:50:12400 ::   File "introSelect.py", line 323, in Refresh
    
    0115 23:50:12400 ::   File "introSelect.py", line 924, in SelectSlot
    
    0115 23:50:12400 :: AttributeError
    0115 23:50:12400 :: : 
    0115 23:50:12400 :: 'NoneType' object has no attribute 'Show'
    0115 23:50:12400 :: 
    
    0115 23:50:12400 :: Unknown packet header: 148, last: 253 32
    

    sysser ^, fix?

    So I've tested all the functions and there are no errors in the introselect. It's error-free for me


    https://metin2.download/picture/H0iW6h38gfUWekQ918Upz7E8b3bWUO8e/.png

  12. 1 hour ago, WhiteBambo said:
    0115 23:50:12400 :: Traceback (most recent call last):
    
    0115 23:50:12400 ::   File "introSelect.py", line 323, in Refresh
    
    0115 23:50:12400 ::   File "introSelect.py", line 924, in SelectSlot
    
    0115 23:50:12400 :: AttributeError
    0115 23:50:12400 :: : 
    0115 23:50:12400 :: 'NoneType' object has no attribute 'Show'
    0115 23:50:12400 :: 
    
    0115 23:50:12400 :: Unknown packet header: 148, last: 253 32
    

    sysser ^, fix?

    when does this problem occur?

    • Metin2 Dev 1
  13. This is the hidden content, please

    Alternative download links → 

    This is the hidden content, please
     (Without VDI)

     

    This is an german files creat from TMP4 edit by SolWayne !

    ALL EDITS ONLY IN GERMAN 

     

    Spoiler
    start			cd /usr/metin2/server && sh start.sh
    close			cd /usr/metin2/server && sh close.sh
    clean			cd /usr/metin2/server && sh clean.sh
    backup			cd /usr/metin2/server && sh backup.sh
    questcompile		cd /usr/metin2/server/share/locale/english/quest && python2.7 make.py
    dbclean			cd /usr/metin2/src/db/src && gmake clean
    dbdep			cd /usr/metin2/src/db/src && gmake dep
    dbcompile		cd /usr/metin2/src/db/src && gmake -j9
    gameclean		cd /usr/metin2/src/game/src && gmake clean
    gamedep			cd /usr/metin2/src/game/src && gmake dep
    gamecompile		cd /usr/metin2/src/game/src && gmake -j9

     

    Spoiler

    Server:
    #ifndef __INC_SERVICE_H__
    #define __INC_SERVICE_H__
    #define ENABLE_DS_GRADE_MYTH
    #define ENABLE_AUTODETECT_INTERNAL_IP
    #define ENABLE_PROXY_IP
    #define ENABLE_PORT_SECURITY
    #define _IMPROVED_PACKET_ENCRYPTION_ // 패킷 암호화 개선
    //#define __AUCTION__
    #define __PET_SYSTEM__
    #define __UDP_BLOCK__
    #define ENABLE_IGNORE_LOWER_BUFFS
    #define ENABLE_GIVE_BASIC_ITEM_SOURCE
    #define __NEW_ARROW_SYSTEM__
    #define __BL_PARTY_POSITION__
    #define NEW_PET_SYSTEM
    #define __SEND_TARGET_INFO__
    #define __SKILLS_LEVEL_OVER_P__
    #define ENABLE_GLOBAL_CHAT
    #define __WEAPON_COSTUME_SYSTEM__
    #define __COSTUME_ATTR_SYSTEM__
    #define __SASH_SYSTEM__
    #endif

    Client:
    #define LOCALE_SERVICE_SINGAPORE            // ½Ì°¡Æú
    #define ENABLE_COSTUME_SYSTEM
    #define ENABLE_ENERGY_SYSTEM
    #define ENABLE_DRAGON_SOUL_SYSTEM
    #define ENABLE_NEW_EQUIPMENT_SYSTEM
    #define ENABLE_DISCORD_RPC
    #define ENABLE_NEW_ARROW_SYSTEM
    #define __BL_PARTY_POSITION__
    #define NEW_PET_SYSTEM
    #define ENABLE_DS_GRADE_MYTH
    #define ENABLE_SEND_TARGET_INFO
    #define ENABLE_SKILLS_LEVEL_OVER_P
    #ifdef ENABLE_COSTUME_SYSTEM
        #define ENABLE_COSTUME_WEAPON_SYSTEM
    #endif
    #define ENABLE_COSTUME_ATTR_SYSTEM
    #define ENABLE_SASH_SYSTEM

    Systems in german:
    v0.0.1
    -4 Inventar Seiten
    -Discord Anzeige
    v0.0.2
    -Gruppenbuff
    -Schnelles Item aufheben
    -Direktes Item aufheben aller Items
    -Mob Level anzeige
    -Move Speed auf 200
    v0.0.3
    -Man kann keine Schlechteren Buffs Bekommen
    -Starter EQ über SRC/ Einstellbar (cmd_generall.cpp #ifdef ENABLE_GIVE_BASIC_ITEM_SOURCE)
    -Aura und VZK nur noch mit Waffe
    -Metinstein Level anzeige
    v0.0.4
    -Ninja Köcher
    -6ter Ninja Krieger Skill
    -Item Zerstörung via Weg werfen
    -Multi Status Punkte
    -Metinsteine auf der Minimap
    -Gruppen mitglieder auf der Minimap
    -Größere Shop fenster
    v0.0.5
    -Level Pet System
    -Mytische Alchi
    -TargetInfo System
    -Alchi Aktiv (Fenster sicht)
    v0.0.6
    -Waffenkostüm
    -Drop Information
    -Kostüm Switcher
    -Skills Über P
    -Schulterband
    -Max Yang (long long)

     
    Spoiler

    MySQL PW: 123456789

    VDI PW: 123456789

    InGame:

    ID= admin

    PW= 123

    HAVE FUN

    • Metin2 Dev 206
    • kekw 1
    • Eyes 8
    • Think 2
    • Confused 2
    • Good 83
    • Love 16
    • Love 141
  14. On 3/24/2015 at 12:23 PM, SolWayne said:

    This is an german files creat from TMP4 edit by SolWayne ! I dont give the Source only MySQL, Game, Client, Dump Proto

    New Version coming Whits Source!

    De like !

    This files is for free !!

    This is the hidden content, please

    This is the hidden content, please

    This is the hidden content, please

    This is the hidden content, please

    This is the hidden content, please

     

    Server:
    #ifndef __INC_SERVICE_H__
    #define __INC_SERVICE_H__
    #define ENABLE_DS_GRADE_MYTH
    #define ENABLE_AUTODETECT_INTERNAL_IP
    #define ENABLE_PROXY_IP
    #define ENABLE_PORT_SECURITY
    #define _IMPROVED_PACKET_ENCRYPTION_ // 패킷 암호화 개선
    //#define __AUCTION__
    #define __PET_SYSTEM__
    #define __UDP_BLOCK__
    #define ENABLE_IGNORE_LOWER_BUFFS
    #define ENABLE_GIVE_BASIC_ITEM_SOURCE
    #define __NEW_ARROW_SYSTEM__
    #define __BL_PARTY_POSITION__
    #define NEW_PET_SYSTEM
    #define __SEND_TARGET_INFO__
    #define __SKILLS_LEVEL_OVER_P__
    #define ENABLE_GLOBAL_CHAT
    #define __WEAPON_COSTUME_SYSTEM__
    #define __COSTUME_ATTR_SYSTEM__
    #define __SASH_SYSTEM__
    #endif
    
    Client:
    #define LOCALE_SERVICE_SINGAPORE			// ½Ì°¡Æú
    #define ENABLE_COSTUME_SYSTEM
    #define ENABLE_ENERGY_SYSTEM
    #define ENABLE_DRAGON_SOUL_SYSTEM
    #define ENABLE_NEW_EQUIPMENT_SYSTEM
    #define ENABLE_DISCORD_RPC
    #define ENABLE_NEW_ARROW_SYSTEM
    #define __BL_PARTY_POSITION__
    #define NEW_PET_SYSTEM
    #define ENABLE_DS_GRADE_MYTH
    #define ENABLE_SEND_TARGET_INFO
    #define ENABLE_SKILLS_LEVEL_OVER_P
    #ifdef ENABLE_COSTUME_SYSTEM
    	#define ENABLE_COSTUME_WEAPON_SYSTEM
    #endif
    #define ENABLE_COSTUME_ATTR_SYSTEM
    #define ENABLE_SASH_SYSTEM
    
    Systems in german:
    v0.0.1
    -4 Inventar Seiten
    -Discord Anzeige
    v0.0.2
    -Gruppenbuff
    -Schnelles Item aufheben
    -Direktes Item aufheben aller Items
    -Mob Level anzeige
    -Move Speed auf 200
    v0.0.3
    -Man kann keine Schlechteren Buffs Bekommen
    -Starter EQ über SRC/ Einstellbar (cmd_generall.cpp #ifdef ENABLE_GIVE_BASIC_ITEM_SOURCE)
    -Aura und VZK nur noch mit Waffe
    -Metinstein Level anzeige
    v0.0.4
    -Ninja Köcher
    -6ter Ninja Krieger Skill
    -Item Zerstörung via Weg werfen
    -Multi Status Punkte
    -Metinsteine auf der Minimap
    -Gruppen mitglieder auf der Minimap
    -Größere Shop fenster
    v0.0.5
    -Level Pet System
    -Mytische Alchi
    -TargetInfo System
    -Alchi Aktiv (Fenster sicht)
    v0.0.6
    -Waffenkostüm
    -Drop Information
    -Kostüm Switcher
    -Skills Über P
    -Schulterband

     

    MySQL PW: 123456789

    VDI PW: dev

    InGame:

    ID= admin

    PW= 123

     

    I SUPPORT THIS FILES ONLY IN Discord !!!

     

    Discord: [WHZ]SolWayne#8715 https://discord.gg/twDNvNka

     

    https://metin2.download/picture/a195OrL2h5rD9yE7ThGY4cyhbHm66wUH/.jpg

    You want to test the files? without downloading everything? then download the client (test server client down) there I always set up the files with the latest version. In the download link you will find the UPDATES + the basic client.

     

    • Metin2 Dev 6
    • Confused 1
    • Good 2
    • Love 1
    • Love 8
×
×
  • 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.