Jump to content

VegaS

Banned
  • Posts

    363
  • Joined

  • Last visited

  • Days Won

    40
  • Feedback

    0%

Everything posted by VegaS

  1. [C++ Binary] #include "../UserInterface/PythonBackground.h" std::string stringMapName = CPythonBackground::Instance().GetWarpMapName(); if (stringMapName == "season1/metin2_map_oxevent") // do something [C++ Server] if (ch->GetMapIndex() == 113) // do something [Python] import background if background.GetCurrentMapName() == "season1/metin2_map_oxevent": # do something [Lua] if pc.get_map_index() == 113 then -- do something
  2. Stop to cry again, and stop off-topic. This is for who want in c++, if u not want, you can shutdown your pc and leave this. if (!IsGM()) { switch (val) { case 10: case 15: case 20: case 25: case 30: case 35: case 40: case 45: case 50: case 55: case 60: case 65: case 70: case 75: case 80: case 85: case 90: case 95: case 100: case 105: char szNoticeLevelUp[QUERY_MAX_LEN]; snprintf(szNoticeLevelUp, sizeof(szNoticeLevelUp), "<Informations> [CH%d]: [%s] reached level [%u]. Congratulations!", g_bChannel, GetName(), GetLevel()); BroadcastNotice(szNoticeLevelUp); break; default: break; } }
  3. M2 Download Center Download Here ( Internal ) Download link: [Hidden Content]
  4. Of course db_clientdesc->DBPacket(HEADER_GD_RELOAD_ADMIN, 0, NULL, 0); // big dick // Replace function with this. int pc_delete_vip(lua_State* L) { char szQueryDeleteVip[QUERY_MAX_LEN]; snprintf(szQueryDeleteVip, sizeof(szQueryDeleteVip), "DELETE FROM common.gmlist WHERE mName = '%s'", CQuestManager::instance().GetCurrentCharacterPtr()->GetName()); std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery(szQueryDeleteVip)); db_clientdesc->DBPacket(HEADER_GD_RELOAD_ADMIN, 0, NULL, 0); return 0; }
  5. int m_nTableMin[] = {141, 151, 161, 171, 181, 191}; int m_nTableMax[] = {149, 159, 169, 179, 189, 199}; for (int i = 0; i < _countof(m_nTableMin); i++) { for (int j = 0; j < _countof(m_nTableMax); j++) { if (m_nTableMin[i] <= pkNewItem->GetVnum() && pkNewItem->GetVnum() <= m_nTableMax[j]) { char szUpgradeAnnouncement[QUERY_MAX_LEN]; snprintf(szUpgradeAnnouncement, sizeof(szUpgradeAnnouncement), "<Refine> Player [%s] upgraded item [%s] with succes!", GetName(), pkNewItem->GetName()); BroadcastNotice(szUpgradeAnnouncement); // i have big dick omg -> Do something -> BlowJob } } }
  6. static int arg[2] = {147, 149}; if (arg[0] <= pkNewItem->GetVnum() && pkNewItem->GetVnum() <= arg[1]) { if (pkNewItem->GetRefineLevel() >= 7) { char szUpgradeAnnouncement[QUERY_MAX_LEN]; snprintf(szUpgradeAnnouncement, sizeof(szUpgradeAnnouncement), "<Refine> Player %s upgraded item [%s] with succes!", GetName(), pkNewItem->GetName()); BroadcastNotice(szUpgradeAnnouncement); } } <Refine> Player [Jorila] upgraded item [Battle-Sword+7] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+8] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+9] with succes! static int arg[2] = {141, 149}; if (arg[0] <= pkNewItem->GetVnum() && pkNewItem->GetVnum() <= arg[1]) { char szUpgradeAnnouncement[QUERY_MAX_LEN]; snprintf(szUpgradeAnnouncement, sizeof(szUpgradeAnnouncement), "<Refine> Player %s upgraded item [%s] with succes!", GetName(), pkNewItem->GetName()); BroadcastNotice(szUpgradeAnnouncement); } <Refine> Player [Jorila] upgraded item [Battle-Sword+1] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+2] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+3] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+4] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+5] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+6] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+7] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+8] with succes! <Refine> Player [Jorila] upgraded item [Battle-Sword+9] with succes!
  7. Maybe i am noob, or my english not help me again. Already this function made check if vnum >= 7, so means he will show u announce like when u upgrade something, only if new item is >=+7. <Refine> Player [Jorila] upgraded item [Soul-Sword+7] with succes! <Refine> Player [Jorila] upgraded item [Soul-Sword+8] with succes! <Refine> Player [Jorila] upgraded item [Soul-Sword+9] with succes!
  8. A guy asked me to do this to them, so I said to share with you. I think this is good for pvm server. Download link: [Hidden Content]
  9. First one, you need to implement this : [Hidden Content] When you implement this, you can implement my function for vip and quest.
  10. Why this? Or you let him to put what name want for this? function say_npc_name() local npc_talk = mob_name(npc.get_race()); say_title(string.format("%s:", npc_talk)) end
  11. M2 Download Center Download Here ( Internal ) I saw a guy who sells shit, so I decided to fuck 15 minutes of my life and time and do it free for you with my code shit because i write fast. [Hidden Content] Link download: [Hidden Content] And here is part rest for how to add grade:
  12. @Jorila You can add fucking easy a bonus and something now ^^ you need to save a your time for vip in questflag, and after that you need to make a check when he login with timer expired of vip to delete bonus and grade bla bla. Anyway, this 'system' is not system is only fucking shit add new grade, because is only copy all from function gm, is like 'System GameMaster' jesus..and shit method xD [File: src/game/questlua_pc.cpp] 1.) Search: int pc_get_skillgroup(lua_State* L) { lua_pushnumber(L, CQuestManager::instance().GetCurrentCharacterPtr()->GetSkillGroup()); return 1; } 2.) Add bellow: #ifdef ENABLE_CHECK_VIP_TEST int pc_is_vip(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); lua_pushboolean(L, ch->GetGMLevel() == GM_VIP); return 1; } #endif 3.) Search: { "get_skill_group", pc_get_skillgroup }, 4.) Add bellow: #ifdef ENABLE_CHECK_VIP_TEST { "is_vip", pc_is_vip }, #endif [File: locale/country/questfunction] pc.is_vip Example to use in quest: quest check_vip_test begin state start begin when 70007.use begin local argument = { "true", "false" } if pc.is_vip() then --[[ # pc.is_vip() == true ]] syschat(string.format("<Debug> Argument checking for vip is: %s", argument[1])) else --[[ # pc.is_vip() == false ]] syschat(string.format("<Debug> Argument checking for vip is: %s", argument[2])) end end end end
  13. https://mega.nz/#!CZAlSJrR!EokhWkgU0PgKeM_VZrZp4-8nI7u184weKWQRGblmXMM Have fun.
  14. The last time we had a server in 2015 was: - 2,000 players online constantly - 8 channels online - 1 channel = 12 cores It all depends on you and your structure's serverfiles yet the biggest role is the core game compiled. Once your server write thousands of lines in syserr and a lot of errors, problems unresolved and once you have as many cores on a channel, it is not good because the server will over charge if you have multiple cores and it transcribe million lines in syserr. It all depends on your core game structure and serverfiles Your and how much is it requested and something depends of processor. My CPU consumes somewhere to (0.1%- 5%).
  15. common_drop_item.txt mod_drop_item.txt etc_drop_item.txt drop_item_group.txt mob_proto ( row -> drop_item ) = etc_drop_item.txt Be sure bro ^^
  16. @miguelmig ok sorry, no problem. I talked with sandmann long time ago and he told me it was just the python for their system on metin2global (because from here all people stole ideea/and code). There is no line in c++ xD. So, no need to be complicated this ^^, you can make in 10 min in only python this system and you can read mob_drop from special patch like autopatcher, and edit when you edit something you need only to upload this fucking shit mob_drop with 50kb, durating 0.01423678 sec for upload, jesus xd @xtrue13 If someone want this like you, i can make a release.
  17. Hahaha, this is your reason for which you criticize me? Because you already sell or want to sell it? Bro, I try to share with you some small idea, I do not sell this shit, which already sells 3 people, and that is already free in the globalmt2 client that was decrypted by a few people. Please do not judge me senseless. I have not never talked to you, and I have not offended again.
  18. You can read with urllib from website. You will make changes to the file very few times, if you have a stable server once you do not need to edit 5 minutes mod_drop. import urllib try: MOB_DROP_FILE_NAME = urllib.urlopen(url + "/src/game/mob_drop_item.txt").readlines() This is version sucks know, it's just an idea hahaha. You can get information directly from vid on mob_drop_item part of the server, but in some cases you'll need to work with some packet.
  19. Is not so hard. Small example how to get informations from mob_drop_item.txt: MOB_DROP_FILE_NAME = "%s/mob_drop_item.txt" % app.GetLocalePath() mobDropInfo = pack_open(MOB_DROP_FILE_NAME, "r").readlines() for drop in range(1, len(mobDropInfo) + 1): mobDropTable = mobDropInfo[drop-1][:-1].split("\t") self.SetItemSlot(i, have, bigDick)
×
×
  • 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.