Search the Community

Showing results for tags 'fix'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • Announcements
    • Feedback
  • Metin2
    • General
    • Questions and Answers
    • Guides & HowTo
    • Design
    • Private Servers
    • Services
    • Videos
  • Releases
    • General
    • Tools
    • Programming / Scripts
    • Quests
    • Binaries & Clients/Serverfiles
    • 3D Models
    • 2D Graphics
    • Operating Systems
  • Safe Zone
    • Offtopic
    • Games Talk
    • Music/Videos/Art
  • D:\YMIR WORK\'s Topics

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Discord


Skype


ICQ


Yahoo


Location

Found 46 results

  1. Hi there devs, A few months ago I've made a solution for the well-known problems with the character select/logging out which is: once you are about to change character, the stats (ht, st, playtime, etc...) and parts (armor/head) don't update properly: you have to do it twice to see the correct values/items when a character is logging out from the game near to your character you can see a fast equipment change (the character is unequipping everything from him/herself) Explanation for the problems The usual coding video The fix GL for the setup and if you have further question(s), remark(s), or anything that you want to ask or suggest, feel free to post it here, or send it in PM. If you get error(s) please upload the affected (and edited) file(s) to http://pastebin.com/ and link it in your post, to make my work easier and probably I will be able to help you only in one post, so please spare me from asking basic requests like "Could you upload...". Thank you Have a nice day, ~masodikbela
  2. Here you got some bugfixes from me. Stack Potts etc directly in Belt Inventory, before putting them to Inventory Stack items you drop for Other guys in your party: Fix for the Drops Pet makes if they kill an Monster Pets run towards your dropped items and pick them up for you:
  3. Hello devs. Here is my fix of lua color string. Look at screens. Here is the problem: And here is fixed screen: How to fix? Open uitip.py and find self.__AppendText(curTime, text) (must by Class TipBoard, not BigBoard) Repleace to: After go to last line of Class TipBoard and paste: Its all. Nothing hard. Fix by Blend.
  4. Mind Rapist

    Looking for small fixes

    Hi, I'm looking for some small fixes if anyone has found them online. I've done a fresh start with clean SF, Client and sources and the downside of that is that it took me back to 2014 where 40k came up. I've fixed some things but some others, well... no fix to be found (by me at least) so I'm looking for: a fix to the HP bug where a character dies and stats show for example -1890/10430 (where should be 0/10430) a fix to the HP bug where a character wears an armor with 2000 HP and when they take it of, the HP stat does not update properly (shows 7000/5000) the new logout method (where logout gets canceled if the client receives a packet or sends one during the countdown - except walking of course) a fix where the buffer has targeted a monster or an enemy and performs a buff (other clients see the skill's effect hitting the enemy, but the shaman gets the buff - everyone should see the effect hit the buffer) any other bug that could be in the source that you know and I haven't thought. Note that I'm using a latest release of 2017 source so fixes such as dice, sectree or SQL injections are covered, as well as some small counter-cheat measures. Thank you so much for your time.
  5. An annoying bug which need a fix. #PythonApplicationProcedure.cpp //Search this function: void CPythonApplication::__MinimizeFullScreenWindow(HWND hWnd, DWORD dwWidth, DWORD dwHeight) { ChangeDisplaySettings(0, 0); SetWindowPos(hWnd, 0, 0, 0, dwWidth, dwHeight, SWP_SHOWWINDOW); ShowWindow(hWnd, SW_MINIMIZE); } //Add after: void CPythonApplication::__ResetCameraWhenMinimize() { CCameraManager& rkCmrMgr=CCameraManager::Instance(); CCamera* pkCmrCur=rkCmrMgr.GetCurrentCamera(); if (pkCmrCur) { pkCmrCur->EndDrag(); } SetCursorNum(NORMAL); if ( CURSOR_MODE_HARDWARE == GetCursorMode()) SetCursorVisible(TRUE); } //Search: if (m_isWindowFullScreenEnable) { __MinimizeFullScreenWindow(hWnd, m_dwWidth, m_dwHeight); } //Replace with: if (m_isWindowFullScreenEnable) { __MinimizeFullScreenWindow(hWnd, m_dwWidth, m_dwHeight); __ResetCameraWhenMinimize(); } else { __ResetCameraWhenMinimize(); } #PythonApplication.h //Search: void __MinimizeFullScreenWindow(HWND hWnd, DWORD dwWidth, DWORD dwHeight); //Add after: void __ResetCameraWhenMinimize();
  6. Hey guys i have a bug on my server that multiplicates the blend potions and dds on taskbar, i need help solving. I tried to do this but i dont understand -> https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/4189245-release-double-affect-bugfix.html
  7. Hello, let's start! 1- char_item.cpp Find for double ;; Yeah Monkeys, surprised XD? 2- On bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell) find: if (iWearCell < 0) return false; add below: //FIX BLOCK MARRIAGE ITEMS WHILE RIDING if (iWearCell == WEAR_BODY && IsRiding() && (item->GetVnum() >= 11901 && item->GetVnum() <= 11914)) //Marriage Armors { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("?????????????????????????????")); return false; } if (iWearCell == WEAR_WEAPON && IsRiding() && (item->GetVnum() == 50201)) //Marriage Weapon { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("?????????????????????????????")); return false; } 3- SMALL PREVENTS ON questlua_global.cpp int _clear_server_timer(lua_State* L) { CQuestManager & q = CQuestManager::instance(); const char * name = lua_tostring(L, 1); DWORD arg = (DWORD) lua_tonumber(L, 2); if (name && arg) q.ClearServerTimer(name, arg); else sys_err("LUA PREVENT: Wrong argument on ClearServerTimer!"); return 0; } int _char_log(lua_State * L) { CQuestManager& q = CQuestManager::instance(); LPCHARACTER ch = q.GetCurrentCharacterPtr(); DWORD what = 0; const char* how = ""; const char* hint = ""; if (lua_isnumber(L, 1)) what = (DWORD)lua_tonumber(L, 1); if (lua_isstring(L, 2)) how = lua_tostring(L, 2); if (lua_tostring(L, 3)) hint = lua_tostring(L, 3); if (ch) LogManager::instance().CharLog(ch, what, how, hint); else sys_err("LUA PREVENT: !ch on _char_log!"); return 0; } 4- FIX ISSUE ON WAR (Not for all sources, but you can put it also if you haven't the problem): find: battle_is_attackable on battle.cpp first IF for victim must be like this: if (victim->IsDead() || victim->IsObserverMode()) return false; second IF for Char must be like this: if (ch->IsStun() || ch->IsDead() || ch->IsObserverMode()) return false; Thx to read here, hope it'll be useful. Regards Hex
  8. Korean errors on Dungeon.cpp Fix Dungeon count monsters: struct FCountMonster { int n; FCountMonster() : n(0) {}; void operator()(LPENTITY ent) { if (ent->IsType(ENTITY_CHARACTER)) { LPCHARACTER ch = (LPCHARACTER) ent; if (ch->IsMonster() || ch->IsStone())//FIX n++; } } }; (Function was keeping also NPC, it could make you ugly problems). Fix Dungeon using more memory than right, with notice on all entities: // DUNGEON_NOTICE namespace { struct FNotice { FNotice(const char * psz) : m_psz(psz) { } void operator() (LPENTITY ent) { if (ent->IsType(ENTITY_CHARACTER)) { LPCHARACTER ch = (LPCHARACTER) ent; if (ch->IsPC()) //FIX ch->ChatPacket(CHAT_TYPE_NOTICE, "%s", m_psz); } } const char * m_psz; }; } (Notice was be triggered for every char entity) These was just 2 Korean errors that i want to share with you. I hope that it'll be useful Regards Hex.
  9. Hi I have done two core in the first channel and I log in the game and go to another map and send a message to the other player closes core 2 Help me
  10. Hey Guys, i have a question. How i can fix the DMG Hacke from Serverside? I mean this Damage Hack: Thanks for help.
  11. xP3NG3Rx

    [C++] DB + NoTXT!

    Hey devs! One word: Works! Follow the steps: 1.) Open "db/src/Main.cpp" file and write this to the top of the file, under to the includes: // NOTXT_STARTUP_BEGIN BOOL g_noTXT = false; // NOTXT_STARTUP_END 2.) Search for this: "int iDisableHotBackup;" and put under this: // NOTXT_STARTUP_BEGIN int iNoTXT; if (CConfig::instance().GetValue("NO_TXT", &iNoTXT)) { if (iNoTXT) { sys_log(0, "CONFIG: NO_TXT"); g_noTXT = true; } } // NOTXT_STARTUP_END 3.) Save&Close. Now open "db/src/ClientManager.h" and replace: bool InitializeMobTable(); bool InitializeItemTable();With: // NOTXT_STARTUP_BEGIN bool InitializeMobTableTXT(); bool InitializeItemTableTXT(); bool InitializeMobTableSQL(); bool InitializeItemTableSQL(); // NOTXT_STARTUP_END 4.) Save&Close. Then open "db/src/ClientManagerBoot.cpp" and put this the top of the file: // NOTXT_STARTUP_BEGIN extern int g_noTXT; // NOTXT_STARTUP_END 5.) Replace this: bool CClientManager::InitializeMobTable()With this: bool CClientManager::InitializeMobTableTXT()And repeat it with ItemProto(::InitializeItemTable) 6.) Search for this: "bool CClientManager::InitializeTables()" and replace this: if (!InitializeMobTable()) { sys_err("InitializeMobTable FAILED"); return false; } if (!MirrorMobTableIntoDB()) { sys_err("MirrorMobTableIntoDB FAILED"); return false; } if (!InitializeItemTable()) { sys_err("InitializeItemTable FAILED"); return false; } if (!MirrorItemTableIntoDB()) { sys_err("MirrorItemTableIntoDB FAILED"); return false; }With this: // NOTXT_STARTUP_BEGIN if (g_noTXT) // item and mob proto { if (!InitializeMobTableSQL()) { sys_err("InitializeMobTableSQL FAILED"); return false; } if (!InitializeItemTableSQL()) { sys_err("InitializeItemTableSQL FAILED"); return false; } } else { if (!InitializeMobTableTXT()) { sys_err("InitializeMobTableTXT FAILED"); return false; } if (!MirrorMobTableIntoDB()) { sys_err("MirrorMobTableIntoDB FAILED"); return false; } if (!InitializeItemTableTXT()) { sys_err("InitializeItemTableTXT FAILED"); return false; } if (!MirrorItemTableIntoDB()) { sys_err("MirrorItemTableIntoDB FAILED"); return false; } } // NOTXT_STARTUP_END7.) And last put these functions into the file: 7+1.) New item_proto_table.sql: DROP TABLE IF EXISTS `item_proto`; CREATE TABLE `item_proto` ( `vnum` int(11) unsigned NOT NULL DEFAULT '0', `vnum_range` int(11) unsigned NOT NULL DEFAULT '0', `name` varbinary(200) NOT NULL DEFAULT 'Noname ', `locale_name` varbinary(24) NOT NULL DEFAULT 'Noname ', `type` tinyint(2) NOT NULL DEFAULT '0', `subtype` tinyint(2) NOT NULL DEFAULT '0', `weight` tinyint(3) DEFAULT '0', `size` tinyint(3) DEFAULT '0', `antiflag` int(11) DEFAULT '0', `flag` int(11) DEFAULT '0', `wearflag` int(11) DEFAULT '0', `immuneflag` set('PARA','CURSE','STUN','SLEEP','SLOW','POISON','TERROR') CHARACTER SET big5 NOT NULL DEFAULT '', `gold` int(11) DEFAULT '0', `shop_buy_price` int(10) unsigned NOT NULL DEFAULT '0', `refined_vnum` int(10) unsigned NOT NULL DEFAULT '0', `refine_set` smallint(11) unsigned NOT NULL DEFAULT '0', `refine_set2` smallint(5) unsigned NOT NULL DEFAULT '0', `magic_pct` tinyint(4) NOT NULL DEFAULT '0', `limittype0` tinyint(4) DEFAULT '0', `limitvalue0` int(11) DEFAULT '0', `limittype1` tinyint(4) DEFAULT '0', `limitvalue1` int(11) DEFAULT '0', `applytype0` tinyint(4) DEFAULT '0', `applyvalue0` int(11) DEFAULT '0', `applytype1` tinyint(4) DEFAULT '0', `applyvalue1` int(11) DEFAULT '0', `applytype2` tinyint(4) DEFAULT '0', `applyvalue2` int(11) DEFAULT '0', `value0` int(11) DEFAULT '0', `value1` int(11) DEFAULT '0', `value2` int(11) DEFAULT '0', `value3` int(11) DEFAULT '0', `value4` int(11) DEFAULT '0', `value5` int(11) DEFAULT '0', `socket0` tinyint(4) DEFAULT '-1', `socket1` tinyint(4) DEFAULT '-1', `socket2` tinyint(4) DEFAULT '-1', `socket3` tinyint(4) DEFAULT '-1', `socket4` tinyint(4) DEFAULT '-1', `socket5` tinyint(4) DEFAULT '-1', `specular` tinyint(4) NOT NULL DEFAULT '0', `socket_pct` tinyint(4) NOT NULL DEFAULT '0', `addon_type` smallint(6) NOT NULL DEFAULT '0', PRIMARY KEY (`vnum`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin; But you can modify your item_proto with "Design table" option in navicat, just make the vnum_range column to the second column after the vnum, as you can see in the query. conf.txt: NO_TXT = 1 0: TXT1: SQL Special thanks to: - iMer, Zonni for the snippets ^^ Changelog: - "0" If you find any errors or problems just post a message into this thread. I tested on win. I hope you like it. With regards, P3NG3R.
  12. When the item is placed on the market, the bonus attr change. I work on 4 stone systems. what is the solution? help please Note : There are 4 stone systems.
  13. Hello, I'd like to share a fix for "Phase Game does not handle this header (header: 81, last: 45, 81)". Let's start First of all I'd like to begin from adding some debug info in client, in order to be sure that this fix is necessary (check spoiler below). Compile your game client and try to catch an error with header. Check out client syserr.txt. There should be more info (we've added it with previous changes). If you'll have there something like this: Means that this fix is for you At this point we'll start with fix (if you didn't have "!Recv(sizeof(BLA), &BLA)" in syserr.txt I don't sure that this fix is for you). GAME SOURCE: game/src/packet.h game/src/questpc.cpp CLIENT SOURCE: UserInterface\Packet.h UserInterface\PythonNetworkStreamPhaseGame.cpp That's it. As you can see we've just deleted TEMP_BUFFER from server function and put all data in packet body. Let me know if you'll have problems with compiling (I could forget to add something in this TUT). And sorry if my English isn't good enough for you Regards.
  14. Hello everyone, you probably noticed that when the structure mob proto are not correct then the client loads almost until the end and then hangs?Recently saw this error, it is time to correct this deficiency. Make the test structure is very simple. search if ((zObj.GetSize() % sizeof(TMobTable)) != 0) { TraceError("CPythonNonPlayer::LoadNonPlayerData: invalid size %u check data format.", zObj.GetSize()); return false; } edit this if ((zObj.GetSize() % sizeof(TMobTable)) != 0) { TraceError("CPythonNonPlayer::LoadNonPlayerData: invalid size: %u check data format", zObj.GetSize()); MessageBox(NULL, "Invalid size TMobTable...", "FatalError", MB_ICONWARNING); exit(0); // close this F*CKING game :3 } Now the structure is checked immediately before character selection. p.s Check/Rate my program Converter <3
  15. xDiiZeRx

    M2bob fix

    Hey! I search how to fix m2bob? Thanks!!
  16. open introselect.py Search: self.destGauge = [ float(valueHTH) / 380, float(valueINT) / 380, float(valueSTR) / 380, float(valueDEX) / 380 ] Change: self.destGauge = [ float(valueHTH) / 90, # max stat float(valueINT) / 90, # max stat float(valueSTR) / 90, # max stat float(valueDEX) / 90 # max stat ] open introcreate.py Search: float(self.stat[0])/float(statSummary), float(self.stat[1])/float(statSummary), float(self.stat[2])/float(statSummary), float(self.stat[3])/float(statSummary), Change: float(self.stat[0])/90, #max stat float(self.stat[1])/90, #max stat float(self.stat[2])/90, #max stat float(self.stat[3])/90, #max stat http://i.imgur.com/mOcKPC0.png http://i.imgur.com/agkXwuC.png Best Regards Rideas
  17. Ken

    Shutdown command fix

    I think someone still haven't seen this error in game source file or someone fix it but not share on metin2dev.org. What's ever Open your cmd_general.cpp and search this ACMD(do_shutdown) change with this ; ACMD(do_shutdown) { if (!ch->IsGM()) return; if (NULL == ch) { sys_err("Accept shutdown command from %s.", ch->GetName()); } TPacketGGShutdown p; p.bHeader = HEADER_GG_SHUTDOWN; P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShutdown)); Shutdown(10); } Best Regards Ellie
  18. Hello, someone know about the old change-bug with 1-5 bonus by equip-item i already fix 1-5 bonus, but how can i fix 6/7 bonus adder/changer? with this fix is 6/7 not fixed. thank you. question2: limittype8 or 9 (i dont know anymore) give the item a time-value. the time is running only when the item is equip like EXP-Ring, thieves gloves, costume, costume-mount, dragon-soul etc. how can i add the limittype8 function for items like pet/mounts = (type18/questitem)? question3: how can i add +-10 lvl for the skill-function. example: sura lvl 15 cannot debuff a user with lvl 100 thank you very much.
  19. Denis

    Belt Inventory fix

    Hello community, Bug: http://metin2dev.org/board/topic/2640-belt-inventory-bug/ The title says everything ^^ Open input_main.cpp and find this: if (!ch->IsEmptyItemGrid(p->ItemPos, pkItem->GetSize())) return; Under that add this code: for (WORD belt_index = BELT_INVENTORY_SLOT_START; belt_index < BELT_INVENTORY_SLOT_END; ++belt_index) { if (pkItem->GetType() != 3 && p->ItemPos.cell == belt_index) { if(pkItem->GetSubType() != 0 || pkItem->GetSubType() != 11 || pkItem->GetSubType() != 7) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ΐΜ ΎΖΐΜΕΫΐΊ Ί§Ζ® ΐΞΊ¥ΕδΈ®·Ξ ΏΕ±ζ Όφ Ύψ½ΐ΄Ο΄Ω.")); return; } } } Finally, it should looks like this: I don't know if it is the best fix but it does its job.
  20. Hey Everyone In this post i'll be showing you how to fix the error TypeError: cannot concatenate 'str' and 'NoneType' objects that you get while trying to use the python script to convert your database item_proto.sql into item_proto.txt and item_names.txt The error will look like this to you: item_proto_line = "%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%s" % (row[0], """ + row[1] + """, """ + get_item_type(row[3], row[0]) + """ , """ + get_item_subtype(row[3], row[4], row[0]) + """, row[6] , get_antiflag(row[7], row[0]), get_flag(row[8], row[0]), get_wearflag(row[9], row[0]), get_immuneflag(row[10]), row[11], row[12], row[13], row[14], row[16], get_limittype(row[17]), row[18], get_limittype(row[19]), row[20], get_apply(row[21]), row[22], get_apply(row[23]), row[24], get_apply(row[25]), row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[39], row[40], row[41]) TypeError: cannot concatenate 'str' and 'NoneType' objects I saw many comments saying they got this error. Here for example... If you're not familiar with the tool, here's a link to it. You might find it useful The tutorial will cover everything step by step with an explanation, and does not require any advanced python knowledge... just some common sense. So just follow and hopefully at the end you'll have the problem solved :3 Let's not talk a lot and jump right into business. Open Navicat and go to Item_proto table then go to Filter and add these filters : Then press Ctrl+R to apply them. The result you get is what's causing the problem. I'll explain why at the end of the post Simply change the type and subtype to 0 if you don't need it, or change it to a value of the following : Type should have a value between 0-34. Here's a list of what each value is about (I copied it right out of the script itself) 0: "ITEM_NONE", 1: "ITEM_WEAPON", 2: "ITEM_ARMOR", 3: "ITEM_USE", 4: "ITEM_AUTOUSE", 5: "ITEM_MATERIAL", 6: "ITEM_SPECIAL", 7: "ITEM_TOOL", 8: "ITEM_LOTTERY", 9: "ITEM_ELK", 10: "ITEM_METIN", 11: "ITEM_CONTAINER", 12: "ITEM_FISH", 13: "ITEM_ROD", 14: "ITEM_RESOURCE", 15: "ITEM_CAMPFIRE", 16: "ITEM_UNIQUE", 17: "ITEM_SKILLBOOK", 18: "ITEM_QUEST", 19: "ITEM_POLYMORPH", 20: "ITEM_TREASURE_BOX", 21: "ITEM_TREASURE_KEY", 22: "ITEM_SKILLFORGET", 23: "ITEM_GIFTBOX", 24: "ITEM_PICK", 25: "ITEM_HAIR", 26: "ITEM_TOTEM", 27: "ITEM_BLEND", 28: "ITEM_COSTUME", 29: "ITEM_DS", 30: "ITEM_SPECIAL_DS", 31: "ITEM_EXTRACT", 32: "ITEM_SECONDARY_COIN", 33: "ITEM_RING", 34: "ITEM_BELT" If type = 1 ; subtype should be between 0-8 : 0: "WEAPON_SWORD", 1: "WEAPON_DAGGER", 2: "WEAPON_BOW", 3: "WEAPON_TWO_HANDED", 4: "WEAPON_BELL", 5: "WEAPON_FAN", 6: "WEAPON_ARROW", 7: "WEAPON_MOUNT_SPEAR", 8: "WEAPON_NUM_TYPES", For type = 2 ; subtype should be between 0-7 : 0: "ARMOR_BODY", 1: "ARMOR_HEAD", 2: "ARMOR_SHIELD", 3: "ARMOR_WRIST", 4: "ARMOR_FOOTS", 5: "ARMOR_NECK", 6: "ARMOR_EAR", 7: "ARMOR_NUM_TYPES", For type = 3 subtype should be between 0-30 : 0: "USE_POTION", 1: "USE_TALISMAN", 2: "USE_TUNING", 3: "USE_MOVE", 4: "USE_TREASURE_BOX", 5: "USE_MONEYBAG", 6: "USE_BAIT", 7: "USE_ABILITY_UP", 8: "USE_AFFECT", 9: "USE_CREATE_STONE", 10: "USE_SPECIAL", 11: "USE_POTION_NODELAY", 12: "USE_CLEAR", 13: "USE_INVISIBILITY", 14: "USE_DETACHMENT", 15: "USE_BUCKET", 16: "USE_POTION_CONTINUE", 17: "USE_CLEAN_SOCKET", 18: "USE_CHANGE_ATTRIBUTE", 19: "USE_ADD_ATTRIBUTE", 20: "USE_ADD_ACCESSORY_SOCKET", 21: "USE_PUT_INTO_ACCESSORY_SOCKET", 22: "USE_ADD_ATTRIBUTE2", 23: "USE_RECIPE", 24: "USE_CHANGE_ATTRIBUTE2", 25: "USE_BIND", 26: "USE_UNBIND", 27: "USE_TIME_CHARGE_PER", 28: "USE_TIME_CHARGE_FIX", 29: "USE_PUT_INTO_BELT_SOCKET", 30: "USE_PUT_INTO_RING_SOCKET", For type = 4 subtype should be between 0-5 : 0: "AUTOUSE_POTION", 1: "AUTOUSE_ABILITY_UP", 2: "AUTOUSE_BOMB", 3: "AUTOUSE_GOLD", 4: "AUTOUSE_MONEYBAG", 5: "AUTOUSE_TREASURE_BOX", For type = 5 subtype should be between 0-7 : 0: "MATERIAL_LEATHER", 1: "MATERIAL_BLOOD", 2: "MATERIAL_ROOT", 3: "MATERIAL_NEEDLE", 4: "MATERIAL_JEWEL", 5: "MATERIAL_DS_REFINE_NORMAL", 6: "MATERIAL_DS_REFINE_BLESSED", 7: "MATERIAL_DS_REFINE_HOLLY", For type = 6 subtype should be between 0-3 : 0: "SPECIAL_MAP", 1: "SPECIAL_KEY", 2: "SPECIAL_DOC", 3: "SPECIAL_SPIRIT", For type = 7 subtype should be 0 : 0 : "TOOL_FISHING_ROD", For type = 8 subtype should be either 0 or 1 : 0: "LOTTERY_TICKET", 1: "LOTTERY_INSTANT", For type = 9 subtype can be anything For type = 10 subtype should be either 0 or 1 : 0: "METIN_NORMAL", 1: "METIN_GOLD", For type = 11 subtype can be anything For type = 12 subtype should be either 0 or 1 : 0: "FISH_ALIVE", 1: "FISH_DEAD", For type = 13 subtype can be anything For type = 14 subtype should be between 0-11 : 0: "RESOURCE_FISHBONE", 1: "RESOURCE_WATERSTONEPIECE", 2: "RESOURCE_WATERSTONE", 3: "RESOURCE_BLOOD_PEARL", 4: "RESOURCE_BLUE_PEARL", 5: "RESOURCE_WHITE_PEARL", 6: "RESOURCE_BUCKET", 7: "RESOURCE_CRYSTAL", 8: "RESOURCE_GEM", 9: "RESOURCE_STONE", 10: "RESOURCE_METIN", 11: "RESOURCE_ORE", For type = 15 subtype can be anything For type = 16 subtype should be between 0-10 : 0: "UNIQUE_NONE", 1: "UNIQUE_BOOK", 2: "UNIQUE_SPECIAL_RIDE", 3: "UNIQUE_3", 4: "UNIQUE_4", 5: "UNIQUE_5", 6: "UNIQUE_6", 7: "UNIQUE_7", 8: "UNIQUE_8", 9: "UNIQUE_9", 10: "USE_SPECIAL", For type = 17 to 27 subtype can be anything For type = 28 subtype should be either 0 or 1 : 0: "COSTUME_BODY", 1: "COSTUME_HAIR", For type = 29 subtype should be between 0-5 : 0: "DS_SLOT1", 1: "DS_SLOT2", 2: "DS_SLOT3", 3: "DS_SLOT4", 4: "DS_SLOT5", 5: "DS_SLOT6", For type = 30 subtype can be anything For type = 31 subtype should be either 0 or 1 : 0: "EXTRACT_DRAGON_SOUL", 1: "EXTRACT_DRAGON_HEART", ***** I Copied everything here for better reference. You can find everything in the script. I didn't come up with anything by myself ***** After adjusting the values as they should be, try converting the proto again. If you still get the error don't panic, there's probably something wrong with the wearflag. We'll fix it right away. Apply these filters to check the wearflag values :Press Ctrl+R to apply them. The result you get is what's causing the problem. Simply change the wearflag to 0 if you don't need it, or change it to one of the values below : 1: "WEAR_BODY", 2: "WEAR_HEAD", 4: "WEAR_FOOTS", 8: "WEAR_WRIST", 16: "WEAR_WEAPON", 32: "WEAR_NECK", 64: "WEAR_EAR", 128: "WEAR_SHIELD", 256: "WEAR_UNIQUE", 512: "WEAR_ARROW", 1024: "WEAR_HAIR", 2048: "WEAR_ABILITY", Explanation: The script is written to cover the items with a TYPE value between 0 and 34, and for each TYPE, there's a specific max value of SUBTYPES as you can see above. So if you have any item with a TYPE value bigger than 34 or negative value, or the SUBTYPE value for the specified TYPE is not listed in the script, does not exist at all, or is a negative value, you'll probably get the error. Same applies to the WEARFLAG value. If you have an item with a WEARFLAG value which is not listed in the script, you'll get the error. What we did is: We filtered out the records with the values causing the error. (because if we don't filter them out it's impossible to get it done) Then we adjusted the wrong values to correct ones. Et Voilà! I hope it helped. Cheers
  21. Hi there devs, About a few days ago one of my friends asked me if I could make a fix for the reload q problem. Maybe now some of you are saying "lol what the hell is he talking about, my reload q works perfectly..." and rightfully, because basically it works, it does its job on a test server with no players. But if you try to do a 'reload q' on a real server with players it has a high chance that it will crash the core. You can ask me again "why the hell do you want to reload the quest on a real server instead of fully rebooting the server?" and my answer is a question too: "why not?" Its more faster to add new quests and repair already installed ones, IF this function works well. Explanation of the crash The fix of the crash And finally let me wish you all good luck for the setup If you have further question(s), remark(s), or anything that you want to ask or suggest, feel free to post it here, or send it in PM. If you get error(s) please upload the affected (and edited) file to http://pastebin.com/ and link it in your post, to make my work easier and probably I will be able to help you only in one post, so please spare me from asking basic requests like "Could you upload...". Thank you Have a nice day, ~masodikbela
  22. Hello. Hi everone i just came accros a problem when i try to sell item that is more than 1000, my frind lookt at the items in shop they see that is only 232.can some help out with this problem. I change in offlineshop_config.cpp: ITEM_MAX_COUNT = 200, to ITEM_MAX_COUNT = 1000, And on navicat in offline_shop_item: `count` tinyint(3) to `count` int(3)
  23. TheBe4Tz

    warning: FIx?

    hey my English is poor so I am using a translator. if there's something wrong I'm sorry white one as I get this stupid alarm [warning]off? thanks
  24. Heya, i was browsing the forum and i saw this topic: Firstly i want to say that i din't this post to make a bad image to the people who written there, i saw that they complicated it very much, the fix is pretty easy so i'm gonna share with you. Open char.cpp Search for: if (g_bNeedMoney) { if (GetGold() < static_cast<int>(g_dwNeedMoney)) { ChatPacket(CHAT_TYPE_INFO, "Your money is not enough for open offline shop. Required money : %u", g_dwNeedMoney); return; } } After that function you will see that: char szSign[SHOP_SIGN_MAX_LEN+1]; strlcpy(szSign, c_pszSign, sizeof(szSign)); m_stOfflineShopSign = szSign; if (m_stOfflineShopSign.length() == 0) return; if (CBanwordManager::instance().CheckString(m_stShopSign.c_str(), m_stShopSign.length())) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("비속어나 은어가 포함된 상점 이름으로 상점을 열 수 없습니다.")); return; } There's also a image: http://prnt.sc/c08t0v So replace this: char szSign[SHOP_SIGN_MAX_LEN+1]; strlcpy(szSign, c_pszSign, sizeof(szSign)); m_stOfflineShopSign = szSign; if (m_stOfflineShopSign.length() == 0) return; if (CBanwordManager::instance().CheckString(m_stShopSign.c_str(), m_stShopSign.length())) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("비속어나 은어가 포함된 상점 이름으로 상점을 열 수 없습니다.")); return; } With: if (!check_name(c_pszSign)) { ChatPacket(CHAT_TYPE_INFO, "Pretty easy,huh?"); ChatPacket(CHAT_TYPE_INFO, "If it works go to the topic title and give a thanks to the author."); ChatPacket(CHAT_TYPE_INFO, "Just Kidding!"); return; } m_stOfflineShopSign = c_pszSign; if (CBanwordManager::instance().CheckString(m_stShopSign.c_str(), m_stShopSign.length())) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("비속어나 은어가 포함된 상점 이름으로 상점을 열 수 없습니다.")); return; } There's a image again to see how it should look like: http://prnt.sc/c08vr1 Have a nice day!
  25. Hi there devs, I've found a very big problem with dungeons and party about half a year before. This fix is already public on our (the Hungarian) forum, but now I'd like to share it here too. The problem & The story I was a developer on a real server (server with players) and we made a new dungeon. (There was no dungeon before.) During the test there was no problem, so we put in the dungeon to the live server. After some hours, the game99 have crashed. In the first days, I had no idea what could cause the problem. I rewrote the quest about 2 times 2 different ways, and the problem was still up. I've tired to debug the core, but I couldn't find anything, so I started to search on the forums, and I've found this: LINK So the main problem: Go to ch99, create a group with 3 member, then start a dungeon. After the warp, go back to character select (exit from dungeon) and kick one member. Then invite him/her again. When the target accepts the invitation, the core will crash. https://www.youtube.com/watch?v=KRuuAo8MGKw&feature=youtu.be The fix Its a really really short and interesting fix, because its already in the sources, but its commented (both in mainline and novaline) -.- (for unknown reason, because it doesn't cause any further problem). char.cpp, in void CHARACTER::SetParty(LPPARTY pkParty): Replace this: //if (m_pkDungeon && IsPC()) //SetDungeon(NULL); To this: if (m_pkDungeon && IsPC() && !pkParty) SetDungeon(NULL);