Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Sonitex last won the day on December 5 2020

Sonitex had the most liked content!

Community Reputation

322 Friendly

About Sonitex


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


  • Kingdom

Social Networks

  • Discord


  • Mapping
  • C++
  • LUA
  • Python

Recent Profile Visitors

3254 profile views
  1. questlua_global.cpp int _spawn_mob_in_map(lua_State* L) { if (false == lua_isnumber(L, 1) || false == lua_isnumber(L, 2) || false == lua_isnumber(L, 3) || false == lua_isnumber(L, 4) || false == lua_isnumber(L, 5) || false == lua_isboolean(L, 6)) { lua_pushnumber(L, 0); return 1; } const DWORD dwVnum = static_cast<DWORD>(lua_tonumber(L, 1)); const size_t count = MINMAX(1, static_cast<size_t>(lua_tonumber(L, 2)), 10); const long lMapIndex = static_cast<long>(lua_tonumber(L, 3)); const long lX = static_cast<long>(lua_tonumber(L, 4)); const
  2. You are trying to execute another timer whose name already exists. You must first clear the first one, before setting a new one with the same name.
  3. If you are setting quest flag from a different quest, "duration" variable is bound to that very specific quest. You may want to use setf function. pc.setf("biolog_quest_name", "duration", pc.getf("biolog_quest_name", "duration") * 0.7) If the problem still persists, it would be easier for us to see the quest.
  4. Heya, is it a dungeon instance or just a normal map?
  5. M2 Download Center Download Here ( Internal ) Download Here Useful to create in-game renders
  6. M2 Download Center Download Here ( Internal ) Hello, this archive has been made by a colleague of mine who is no longer active so I thought I might as well share it with you. It includes: Cryptoop DevIL1.7.99 DevIL1.8 Granny2.9.12 Granny2.11 Jpged9c Lz4 Lzo2 Miles6.5c Miles9.3 Python2.7 SpeedTreeRT1.6 SpeedTreeRT4.0 SpeedTreeSDK7.0 tbb Mega Download
  7. In cases such as horse name postfix, you can do it directly in client source. In the following function, check if an instance is a horse and append the string to its name ('s Horse). void CInstanceBase::__Create_SetName(const SCreateData& c_rkCreateData) In other cases where you must use a locale string as an argument, you either add multilingual data to the server or create a separate packet just for this locale string. Edit: There are also other ways like passing "[STRING_221]" as a string argument and on the client side you fetch a locale string w
  8. input_login.cpp void CInputLogin::Entergame(LPDESC d, const char * data) { [...] if (ch->GetMapIndex() >= DUNGEON_INDEX*10000 && ch->GetMapIndex() <= DUNGEON_INDEX*10010) { if(ch->IsAffectFlag(AFF_SHAMAN_SKILL)) RemoveAffect(AFF_SHAMAN_SKILL); } [...] } Edit DUNGEON_INDEX & AFF_SHAMAN_SKILL and you should be good to go
  9. Can you show cipher.h file?
  10. That is the other way I was talking about and you are right, this is much more efficient way of doing it as we are not copying elements to another vector and cleaning them up afterwards. Thank you for the code
  11. When cancelling server timers a core will crash as it is removing a timer from the map and increasing the iterator twice by calling erase() function and afterwards increasing it once again when entering a new cycle of loop. One way of solving this issue is to first collect the timers which must be removed and clean them up at the end. You can also add a simple counter which is increased at each end of the loop's cycle and remove the timer directly from the first loop by specifying the position with the counter itself. Note that this issue seems to appear after upgrading code to C++
  12. It should be automatically loaded from an active locale path
  13. Sonitex

    zodiac files

    Download the latest client and search for the monsters I guess
  • 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.