-
Posts
41 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by SolWayne
-
-
I installed the system (Okyanus2 & Arones2 Ek Envanter Sistemi) and since then I can't get into the char selection.
do you have a solution for this?
https://metin2.download/picture/70zKE3E0J0H000sBC9p2f5W0xiH7fIF1/.png
https://metin2.download/picture/DgJ8zDR7Wejd4wCE6NcwpDdul48G2278/.png
-
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
-
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 nowfreebsd-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
-
Should I make a version of the v6 with lycaner?
- 1
-
NEW ARROW Fix
SRC:
SpoilerClient/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"};
- 1
-
-
3 hours ago, Tuckii said:
All edits ONLY IN GERMAN
if you change the language you have to include the new parts from locale and locale string -
https://metin2.download/picture/ing17gO88L4ai3O68863773mcV48jGQ1/.gif
Mytish Dragon Soul Fix comingMytish Dragon Soul Fix :
Client SRC:
SpoilerUserinterface/GameType.h
# Am start hinzufugen
#include "Locale_inc"
# Am start hinzufugen #include "Locale_inc"
Server:Spoilerusr/metin2/share/locale/english
dragon_soul_table.txt ( New )
SpoilerGroup 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:
Spoilerclient/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 !
- 1
- 1
- 1
- 3
-
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
-
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.
SpoilerOpen 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()
-
It is not yet clear whether the bug fixes will be uploaded individually or as a new version with new systems
-
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:
#endifAnd Replace it whits
Spoilercase CItemData::WEAPON_ARROW:
#ifdef ENABLE_NEW_ARROW_SYSTEM
case CItemData::WEAPON_UNLIMITED_ARROW:
#endif -
I installed the weapons costume and yes, as you can see, I can't run and hit with it
https://metin2.download/picture/B11q32f57L9oTQRTnPLSJQf5tYQ0pohe/.gif
I can't find a solution right now and I hope you can help me, thanks
-
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
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
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__
#endifClient:
#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_SYSTEMSystems 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)DL:
HAVE FUNI add here again a tut purely what man has to do everything. ( Server Side VDI, and Client Source )
Game Server, Server Source, MySQL
Spoilerstep 1:
Move volume3_mysql to /var/db. Move volume_3_server/src to /usr/metin2step 2:
Now come the commands for unpacking etcMySQL:
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 SRCcd /usr/metin2 && rm -r src server
chmod 777 *.tar.gz
tar -xf volume3_server.tar.gz
tar -xf volume3_src.tar.gzAnd know is ready
you don't need a reboot!!
cd /usr/metin2/server && sh start.sh
Client Source
Spoilerstep 1:
Unpack the SRC.rar in the Client S22 folder. overwrite all filesstep 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 filesPythonSash (.cpp + .h)
PythonSkillPet (.cpp + .h)
step 4:
import the files into the source
https://metin2.download/picture/WL045rKHe5PaHDRQcyinm3OXwN4uuZPI/.gif
- 1
- 1
- 1
-
-
After the installation I couldn't improve anything. Do you have a solution? I have no error only in the debug.exe is an error.
0117 11:48:04551 :: Exception : __SelectRefineEmptySlot, 'module' object has no attribute 'dragon_soul_refine_info'
https://metin2.download/picture/o2mLHvy2xKB5FQV168kVZ6j85a5ex90r/.gif
thanks in advance if anyone can help
- 1
-
since two people have already had problems with client source, here are a few gifs to explain
Spoilerstep 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 filesPythonSash (.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- 1
-
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
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 -
Just now, WhiteBambo said:
character select
I'll take a look tomorrow and let you know here
- 1
-
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?
- 1
-
Bugs:
Weapon Custom system.
Mytish Dragon Soul.
If I have a fix I will share it -
This is an german files creat from TMP4 edit by SolWayne !
ALL EDITS ONLY IN GERMAN
Spoilerstart 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
SpoilerServer:
#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__
#endifClient:
#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_SYSTEMSystems 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)SpoilerMySQL PW: 123456789
VDI PW: 123456789
InGame:
ID= admin
PW= 123
HAVE FUN
- 206
- 1
- 8
- 2
- 2
- 83
- 16
- 141
-
The V6 Ist the last rls whits source !
-
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 !!
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.- 6
- 1
- 2
- 1
- 8
ENABLE_SPLIT_INVENTORY_SYSTEM Error
in Community Support - Questions & Answers
Posted
Thank you, that came up a few times, there were always tabs