refalin.blogg.se

Damage metin2
Damage metin2










||| Now when the item will be inserted there'll be a check if item doesn't have those bonuses (from query) add a random average/skill damage bonus value. ||| value x, y as default, so they'll will be without bonuses and get 'bugged'. ||| That's for the items which have addon type (-1) and you added them in item shop without bonuses like skill damage or hit damage, ||| - Fixed unknown average/skill damage bonus value. If (iAttributeSet != ITEM_ATTRIBUTE_NONE)Ĭonst int16_t sMinValue = static_cast(pkAttrTable-> lValues) Ĭonst int16_t sMaxValue = static_cast(pkAttrTable-> lValues)) - 1]) bSubType Ĭonst int8_t iAttributeSet = GetItemAttributeSetIndex(bItemType, bItemSubType) bType Ĭonst uint8_t bItemSubType = rkItemTable. Void ItemAwardManager::CheckItemAttributes(TItemAward & rkItemAward, const TItemTable & rkItemTable, const std::vector vec_itemAttrTable)Ĭonst uint8_t bItemType = rkItemTable. ||| If the bonus type can't be added into a specific item, the bonus will be ignored > deleted. ||| same thing with the values lower than lvl1, like 5 HP_REGEN on your neck, when the minimum (lv1) is 10, the value will be replaced with 10. ||| and your 500 INT value will be replaced with max value from lvl5 of bonus, like 12 (lv5), that happen with all the bonuses, Add +500 INT to your shield, now there's a check for min-max value of em_attr Lv.1 - Lv.5 Add 2000M MAX_HP on your Sword+9, was possible, now not. ||| You can't insert wrong bonuses into a specific item. ||| - Added a check for attr types and values min - max. end())Įlse if (c_iter_type-> first = ITEM_WEAPON) If (c_iter_sub_type != c_iter_type-> second. end())Ĭonst auto c_iter_sub_type = c_iter_type-> second. Static const TAttributeMapT mapAttrSetFields =Ĭonst auto c_iter_type = mapAttrSetFields. Int8_t ItemAwardManager::GetItemAttributeSetIndex( const uint8_t bItemType, const uint8_t bItemSubType) const ||| Attribute set index, return a specific index by item type & item sub type. Std::map >& ItemAwardManager::GetMapkSetAwardByLogin() Str_to_number( kData->dwSocket2, row) įor ( size_t j = 0 j aAttr. Snprintf(szQuery, sizeof(szQuery), "SELECT id,login,vnum,count,socket0,socket1,socket2,mall,why FROM item_award WHERE taken_time IS NULL and id > %d", g_dwLastCachedItemAwardID) "FROM item_award WHERE taken_time IS NULL and id > %d", g_dwLastCachedItemAwardID)

damage metin2

Snprintf(szQuery, sizeof(szQuery), "SELECT id, login, vnum, count, socket0, socket1, socket2, " f || fabs(s) %d", g_dwLastCachedItemAwardID) Return ( fNextGaussian * sigma) + fAverage Inline float gauss_random( const float fAverage, const float sigma)

damage metin2

Keep in mind other functions uses IsImmune too so you'll have 100% immune everywhere.Inline double uniform_random( const double a, const double b) If (IS_SET(m_pointsInstant.dwImmuneFlag, dwImmuneFlag))ĬhatPacket(CHAT_TYPE_PARTY, " (%s)", GetName()) ĬhatPacket(CHAT_TYPE_PARTY, " (%s) NO_IMMUNE_FLAG", GetName()) If you wanna have 100% then edit this:īool CHARACTER::IsImmune(DWORD dwImmuneFlag) IsImmune does not do 100% immune, only 90%. (if you don't have this because you removed comments and unused codes then just place it to top of the func of CHARACTER::AttackedByPoison) It is a guess, but I think they only made this for visual, if they set resist_poison (what is working and they use it), they ticked POISON in the immuneflag to have visual, maybe for wiki import or similar reason.īut if you wanna make POISON immune actually works on mob, of course you can do it. If you scan the source, only the TERROR is actually used. Because Ymir did not do anything with that immuneflag.












Damage metin2