Jump to content

enisina

member
  • Posts

    202
  • Joined

  • Last visited

  • Feedback

    0%

About enisina

Informations

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

enisina's Achievements

Community Regular

Community Regular (8/16)

  • Very Popular Rare
  • Dedicated
  • Reacting Well
  • First Post
  • Collaborator Rare

Recent Badges

242

Reputation

  1. @ɛʟ Ǥʟɑçѳи hi, can you help me ?
  2. I can't react to threads and I can't PM users, what's the problem? @ɛʟ Ǥʟɑçѳи As you can see I can't use the reaction button.
  3. Find all end change: case POINT_MAX_HP_PCT: SetPoint(type, GetPoint(type) + amount); val = GetPoint(type); PointChange(POINT_MAX_HP, 0); break; case APPLY_MAX_HP: case APPLY_MAX_HP_PCT: { int i = GetMaxHP(); if (i == 0) break; PointChange(aApplyInfo[bApplyType].bPointType, iVal); float fRatio = (float)GetMaxHP() / (float)i; PointChange(POINT_HP, GetHP() * fRatio - GetHP()); } break; case POINT_HP: { if (IsDead() || IsStun()) return; int prev_hp = GetHP(); amount = MIN(GetMaxHP() - GetHP(), amount); SetHP(GetHP() + amount); val = GetHP(); BroadcastTargetPacket(); #ifdef ENABLE_HEALTH_BOARD_SYSTEM HealthBoardPacket(); #endif if (GetParty() && IsPC() && val != prev_hp) GetParty()->SendPartyInfoOneToAll(this); } break; I just tested this in Marty version 5.4 and it works perfectly. You should check the source files for the code that calls the hp function.
  4. That's exactly what you want. case POINT_ATTBONUS_STONE: case POINT_RESIST_HUMAN: { int PointValue = GetPointIndex(type); m_pointsInstant.OldPointValue[PointValue] += amount; SetPoint(type, m_pointsInstant.OldPointValue[PointValue] + (m_pointsInstant.OldPointValue[PointValue] * GetPoint(GetPointPer(type))) / 100); #else SetPoint(type, GetPoint(type) + amount); #endif val = GetPoint(type); BroadcastTargetPacket(); } break; case POINT_MAX_HP: { SetPoint(type, GetPoint(type) + amount); //SetMaxHP(GetMaxHP() + amount); // ÃÖ´ë »ı¸í·Â = (±âº» ÃÖ´ë »ı¸í·Â + Ãß°¡) * ÃÖ´ë»ı¸í·Â% int64_t hp = GetRealPoint(POINT_MAX_HP); int64_t add_hp = GetPoint(POINT_MAX_HP) + GetPoint(POINT_PARTY_TANKER_BONUS); // add_hp += GetPoint(POINT_MAX_HP); // add_hp += GetPoint(POINT_PARTY_TANKER_BONUS); int64_t hp_pct = (hp + add_hp) * GetPoint(POINT_MAX_HP_PCT) / 100; SetMaxHP(hp + add_hp + hp_pct); val = GetMaxHP(); } break; Adjusted
  5. This is absolutely not wrong, this bonus is just coded to calculate the value of GetRealPoint(POINT_MAX_HP).
  6. I tested it and did not encounter the problem you mentioned.
  7. I play on the official server, the boss and monsters on the yohara map use it (not all). Alastor, nethis etc. But the reflection feature is not in skill damage, where the code is put is wrong Also, the feature is always active, not when health is 25% (unrelated, but why can't I use react to any message anymore?) I'm sorry, but I doubt you even know what you're doing. We should avoid copy/paste, know the logic of our changes and avoid unnecessary additions. //protoreader and dump_proto source/itemcsvreader Find: "REVIVE", Add Below: "REFLECT", ///// mob_proto - Add in monster AIFlag REFLECT //// //length.h Find: AIFLAG_REVIVE = (1 << 11), Add below: AIFLAG_REFLECT = (1 << 12), //char.h Find: void SetRevive(bool mode); Add Below: bool IsReflecter() const; //char_state.cpp Find: bool CHARACTER::IsReviver() const { ... } Add Below: bool CHARACTER::IsReflecter() const { return IS_SET(m_pointsInstant.dwAIFlag, AIFLAG_REFLECT); } //char_battle.cpp Find: if (GetPoint(POINT_REFLECT_MELEE)) { int reflectDamage = dam * GetPoint(POINT_REFLECT_MELEE) / 100; if (pAttacker->IsImmune(IMMUNE_REFLECT)) reflectDamage = int(reflectDamage / 3.0f + 0.5f); pAttacker->Damage(this, reflectDamage, DAMAGE_TYPE_SPECIAL); } Abb Below: if (IsMonster() && IsReflecter()) { pAttacker->Damage(this, (dam * 5 / 100), DAMAGE_TYPE_SPECIAL); } Add below: AIFLAG_REFLECT = (1 << 12), //char.h bool IsReflecter() const; //char_state.cpp bool CHARACTER::IsReflecter() const { return IS_SET(m_pointsInstant.dwAIFlag, AIFLAG_REFLECT); } //char_battle.cpp Find: if (GetPoint(POINT_REFLECT_MELEE)) { int reflectDamage = dam * GetPoint(POINT_REFLECT_MELEE) / 100; if (pAttacker->IsImmune(IMMUNE_REFLECT)) reflectDamage = int(reflectDamage / 3.0f + 0.5f); pAttacker->Damage(this, reflectDamage, DAMAGE_TYPE_SPECIAL); } Abb Below: if (IsMonster() && IsReflecter()) { pAttacker->Damage(this, (dam * 5 / 100), DAMAGE_TYPE_SPECIAL); }
  8. code for growth pet system [Hidden Content]
  9. Since I was using the officiall proto files, I noticed that when I was on the mount, I was thrown backwards and the slots were not loaded. When I looked at the proto file, I saw that they had removed the folder files of the mounts, so I pulled the folder names directly from the npclist.txt file. If the mob type is horse [CHAR_TYPE_HORSE], it gets it from here, otherwise it gets it according to mob_proto. [Hidden Content] [Hidden Content]
      • 44
      • Love
      • Good
      • Metin2 Dev
      • kekw
      • muscle
  10. When I disabled the client src I was able to log in. But when I use items or something, I get this error. Unprocessed packet header 32, state Game
  11. I want to compile the files that I use without any problems on the Freebsd server with Visual Studio and use them on the Windows server. I keep selecting the character but the client crashes completely before the character appears. The unknown packet error I get is always the same number. When I use it on freebsd server there is no problem.
  12. 127.0.0.1 ip adresini nasıl takip edebilirim? Wireshark görmüyor (metin2 windows sunucu dosyaları)I'm listening to 127.0.0.1 and there are thousands of packets. how do I know which one is metin2?
  13. help me please
×
×
  • 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.