Jump to content

Sonitex

VIP
  • Content Count

    431
  • Joined

  • Last visited

  • Days Won

    7
  • Yangs

    905 [ Donate ]

Sonitex last won the day on December 26 2018

Sonitex had the most liked content!

Community Reputation

175 Rampage

5 Followers

About Sonitex

  • Rank
    Noble

Informations

  • Gender
    I'm blue... Da beee de...
  • Location
    Home

Profile

  • Skype
    sonitexo
  • Discord
    sonitexo#1880

Skills

  • Mapping
    Expert
  • C++
    Advanced
  • LUA
    Advanced
  • Python
    Advanced

Recent Profile Visitors

2,831 profile views
  1. With that attitude I doubt anyone will help you. But what you can do is read some books about programming, it might improve your knowledge.
  2. void CQuestManager::CancelServerTimers(DWORD arg) { vector<pair<string, DWORD>> ServerTimersToDelete; for (auto& kv : m_mapServerTimer) { if (kv.first.second == arg) { LPEVENT event = kv.second; event_cancel(&event); ServerTimersToDelete.push_back(kv.first); } } // Delete all the required server timers for (auto &timer : ServerTimersToDelete) m_mapServerTimer.erase(timer); // Clean up ServerTimersToDelete.clear(); } Crash occurs because the game is deleting timers while iterating through them. Code above should fix this issue
  3. When hovering over a skill, it's recharge duration in tooltip is always the same because it ignores player's casting speed. In PythonSkill.cpp search for : DWORD CPythonSkill::SSkillData::GetSkillCoolTime(float fSkillPoint) Replace with: DWORD CPythonSkill::SSkillData::GetSkillCoolTime(float fSkillPoint) { if (strCoolTimeFormula.empty()) return 0; CPoly poly; poly.SetStr(strCoolTimeFormula.c_str()); /* Apply casting speed when calculating the formula */ int iCastingSpeed = CPythonPlayer::Instance().GetStatus(POINT_CASTING_SPEED); int iSkillCoolTime = ProcessFormula(&poly, fSkillPoint); int i = 100 - iCastingSpeed; if (i > 0) i = 100 + i; else if (i < 0) i = 10000 / (100 - i); else i = 100; return DWORD(iSkillCoolTime * i / 100); }
  4. section npc 20383 item 11295 1 item 30509 10 item 30516 10 item 30514 10 reward 20000 1 gold 100000 category ARMOR percent 5 end I think it should be clear now that success chance from 5%~50% does not exist and neither does MINDshop Metin2Wiki is often edited by players and you can see the image has been edited since there are 2 different fonts used.
  5. I agree with the idea of moving water texture setting to the map itself. It is much easier to handle and works perfectly fine on my client. Default water texture is no biggie either, one more if statement. Great job and thank you for your contributions with the WorldEditor
  6. Why bother with rewriting a whole system when you can create a new item and make it add and remove affect upon using it. If it is active, set socket(0) to 1 and edit the function that handles active/unactive effect in the inventory and taskbar, you can copy most of it since it is the same for elixirs. For the pet permanent functionality: when you reach 200 days cancel the real time event on the item and add a check so it never starts again if the item has 200 days or more. On the client side modify the code to hide the remaining time if the item has more than 200 days remaning. I hope I could help you :).
  7. CGraphicImageInstance m_WaterInstances[30]; Edit this part in the MapOutdoor.h as well . STATEMANAGER.SetTexture(0, m_WaterInstances[((ELTimer_GetMSec() / 70) % 30)].GetTexturePointer()->GetD3DTexture()); And this in the MapOutdoorWater.cpp. And I believe that buffer is used for the path of the texture and not the actual size of the texture.
  8. If someone has the same issues as me with elements sometimes being shown wrong replace this part of function in char.cpp: for (int i = RACE_FLAG_ATT_ELEC; i <= RACE_FLAG_ATT_DARK; i *= 2) { int diff = raceFlag - i; if (abs(diff) <= 1024) break; } to this: for (int i = RACE_FLAG_ATT_ELEC; i <= RACE_FLAG_ATT_DARK; i *= 2) { curElementBase++; if (raceFlag & i) break; }
  9. I get this part and it is actually very easy to do. What I am stuck with is sending the arguments from server to client. I don't know how to store them actually, this is the biggest issue for me.
  10. void CHARACTER::AutoRecoveryItemProcess(const EAffectTypes type) char_item.cpp
  11. Heya everyone! I got stuck at sending arguments from server to client. Could anyone give me a hint on how to do this or enlighten me how official servers did it? Thank you in advance!
×
×
  • 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.