Jump to content

.colossus.

Premium
  • Posts

    43
  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by .colossus.

  1. maybe you just don´t have enough ram for your game cores
  2. you missunderstood me. seems like i got it frome rubinum source, but as i said i implemented it in my files for ages.
  3. feel free to use it. i had it in my source for ages and someone asked me for this. at least its an improvement for many who still use the lennt one. if it´s not desired i won´t release such stuff.
  4. 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 });
  5. #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
  6. 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.
  7. 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.
  8. 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);
  9. 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;
  10. 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
  11. 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) ( [...] )
  12. 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());
  13. 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.
  14. 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.
  15. Got the same poblem...found no solution
  16. Did you check your stl_algo.h or where it´s using aiEmpireUserCount
  17. 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:
  18. when i click on a mount it doesn´t go in any slot. any ideas what is wrong?
  19. Would be nice if someone can reupload it or send me the link with a private message.
  20. 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.
  21. 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?
  22. Hey, the archive is damaged. Can you reupload it?
×
×
  • 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.