-
Posts
43 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by .colossus.
-
Strange OS problem
.colossus. replied to Crystal™'s topic in Community Support - Questions & Answers
maybe you just don´t have enough ram for your game cores -
Hey guys, with this snippet, the absorption chance is calculated nearly correctly using discrete distribution. I quickly picked out the Lennt system and "adapted" it to it. With other systems this shouldn't be too difficult either in char_item.cpp below #include "threeway_war.h" #include <random> replace switch (lVal) { case 2: { lVal = SASH_GRADE_2_ABS; } break; case 3: { lVal = SASH_GRADE_3_ABS; } break; case 4: { lVal = number(SASH_GRADE_4_ABS_MIN, SASH_GRADE_4_ABS_MAX_COMB); } break; default: { lVal = SASH_GRADE_1_ABS; } break; } SetSocket(SASH_ABSORPTION_SOCKET, lVal); with long percentageAdd = 0; std::random_device rd; std::mt19937 gen(rd()); std::discrete_distribution<> d({ 200, 100, 20, 10, 5, 1 }); percentageAdd = d(gen); SetSocket(SASH_ABSORPTION_SOCKET, lVal + percentageAdd); Absorption is possible from 0-5%. You can adjust or expand the distribution here: d({ 200, 100, 20, 10, 5, 1 });
-
#update SKILL_KWANKYEOK and SKILL_HORSE_WILDATTACK_RANGE are sending more than one packet. maximum of possible packets which are computed is now calculated properly. and yeah it could probably be solved better without using bSkillCD
-
yeah you´re right. i had this case not in my mind. i will adapt it in next days when i have some free time.
-
exactly, when you attack you don´t move, so there is no downside using this. when you are sending attack packets like you do on those waithacks and move it won´t be processed because of that simple check.
-
Hey guys, I noticed while the character was moving, attack packets are processed. It´s nothing special and just a small improvement in battle.cpp below: int battle_hit(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, int & iRetDam) { add: if (pkAttacker->IsStateMove()) return (BATTLE_DAMAGE);
-
Hey guys, maybe you heard already about a new waithack method with poisonous cloud and some other stuff. i don´t want to go into details and just share a potential fix for that (i could not test it completly so some feedback is appreciated) in char.h // below bool bUsed; bool bSkillCD; DWORD dwHitCount; // add after bUsed(false), bSkillCD(false), dwHitCount(0), // below bool HitOnce(DWORD dwVnum = 0); bool IsSkillCooldown(DWORD dwVnum, float fSkillPower); // above void ResetSkill(); bool IsSkillCooldown(DWORD dwVnum, float fSkillPower) { return m_SkillUseInfo[dwVnum].IsSkillCooldown(dwVnum, fSkillPower) ? true : false; } in char_skill.cpp // above bool TSkillUseInfo::UseSkill(bool isGrandMaster, DWORD vid, DWORD dwCooltime, int splashcount, int hitcount, int range) bool TSkillUseInfo::IsSkillCooldown(DWORD dwVnum, float fSkillPower) { DWORD maxHitCount = 0; if (dwVnum == SKILL_KWANKYEOK || dwVnum == SKILL_HORSE_WILDATTACK_RANGE) { if (dwVnum == SKILL_KWANKYEOK) maxHitCount = static_cast<DWORD>(2 + floor(6 * fSkillPower)); else if (dwVnum == SKILL_HORSE_WILDATTACK_RANGE) maxHitCount = 5; dwHitCount++; if (dwHitCount > maxHitCount) return true; return false; } if (!bSkillCD) return true; bSkillCD = false; return bSkillCD; } // below bUsed = true; bSkillCD = true; dwHitCount = 0; in char_battle.cpp // above LPITEM pkBow, pkArrow; if (m_bType > 0 && m_me->IsSkillCooldown(m_bType, static_cast<float> (m_me->GetSkillPower(m_bType) / 100.0f))) return;
-
read my thread again --> in marty files its already fixed because only localhost has access as far as i remember. so you just need to enable ENABLE_PORT_SECURITY or delete everything because its not used
-
Hey guys, i noticed a core crash "exploit" someone is currently using with HEADER_CG_TEXT. its a simple buffer overflow in the HEADER_CG_TEXT packet. because the packet is not used you can just remove it. in marty files its already fixed because only localhost has access as far as i remember. packet.h HEADER_CG_TEXT = 64, packet_info.cpp Set(HEADER_CG_TEXT, sizeof(TPacketCGText), "Text", false); input.cpp if (bHeader == HEADER_CG_TEXT) ( [...] )
-
Hey guys, after i noticed some positive rule changes on the forum i will start to release some of my stuff i already published on an other forum. In the past I often had problems with the Exp/Yang/Drops of group members were also shared on different maps. The simplest solution was to just put the maps further apart, however I took a closer look why this is and fixed it accordingly. in char_battle.cpp // below FPartyAlignmentCompute f(-20000, pkKiller->GetX(), pkKiller->GetY()); // replace pkKiller->GetParty()->ForEachOnlineMember(f); pkKiller->GetParty()->ForEachOnMapMember(f, pkKiller->GetMapIndex()); // below f.m_iStep = 1; // replace pkKiller->GetParty()->ForEachOnlineMember(f); pkKiller->GetParty()->ForEachOnMapMember(f, pkKiller->GetMapIndex()); // below NPartyExpDistribute::FPartyTotaler f(ch); // replace pParty->ForEachOnlineMember(f); pParty->ForEachOnMapMember(f, ch->GetMapIndex()); // below NPartyExpDistribute::FPartyDistributor fDist(ch, f.member_count, f.total, iExp, pParty->GetExpDistributionMode()); // replace pParty->ForEachOnlineMember(fDist); pParty->ForEachOnMapMember(fDist, ch->GetMapIndex()); in char_item.cpp // below NPartyPickupDistribute::FCountNearMember funcCountNearMember(this); // replace pParty->ForEachOnlineMember(funcCountNearMember); pParty->ForEachOnMapMember(funcCountNearMember, GetMapIndex()); // below NPartyPickupDistribute::FMoneyDistributor funcMoneyDist(this, dwShare); // replace pParty->ForEachOnlineMember(funcMoneyDist); pParty->ForEachOnMapMember(funcMoneyDist, GetMapIndex()); // below NPartyPickupDistribute::FFindOwnership funcFindOwnership(item); // replace GetParty()->ForEachOnlineMember(funcFindOwnership); GetParty()->ForEachOnMapMember(funcFindOwnership, GetMapIndex());
-
Yeah we also discussed that topic and i´m fine with that if this are the rules. But i also want to mention that many people doesn´t have the requirements to sell here but they still do because they know the staff. Just my opignion that maybe the staff consider changing something.
-
totally agree with that. why should i even release something when my sales thread got closed and i "need to be active for more than 6 months". its not worth the effort.
-
Got the same poblem...found no solution
-
plz help me game.core debug
.colossus. replied to ahmedhaies's topic in Community Support - Questions & Answers
Did you check your stl_algo.h or where it´s using aiEmpireUserCount -
Hello, I recognized a hughe slow down of the game after i increadsed the maximum yang. The gamecore takes around 2 minutes to initalize (load all quests, mobs ,etc) Any ideas whats wrong? PTS: ProfileLog:
-
when i click on a mount it doesn´t go in any slot. any ideas what is wrong?
-
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
.colossus. replied to Shogun's topic in Guides & HowTo
Has anyone the new 2 runs unpacked? -
Would be nice if someone can reupload it or send me the link with a private message.
-
Hello, Got a small error on the characterselect. The character on the 5th slot is invisible and the syserr doen´t have any related output which helps me to solve this error. Hope you have some tips.
-
How To Make Individual Sword Effects / Refine-tier
.colossus. replied to d3s4st3r's topic in Programming & Scripts
Perfect...was too fool to search for it. -
Hello, I compiled myself the binary and game. I followed the tutorial [Hidden Content] and the 4 Inventory slots are working without any Problem. I just got 1 weired error: As u can see the Equipment slots don´t show the equiped items. What do you think causes this error?
- 1 reply
-
- 1
-
Hey, the archive is damaged. Can you reupload it?