Search the Community

Showing results for tags 'vegas'.



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

Categories

There are no results to display.


Found 19 results

  1. Hello world last night at around 5 am bored me and I created a short teleport order in minutes. What is this order? - Order can be used for teleporting a player. - By accessing the / teleport <number> you have to choose one of the numbers that are in the map settings. - Each map has a configuration proposed for the minimum and maximum level. - You can teleport a map if you do not have the required minimum. - You can teleport a map if you level higher than the configuration map. - List of papers default starts from 1 to 13. - You can not enter a number less than 1. - You can not enter a number greater than 13. - You can not enter characters than numbers. - When you tried to use the command without arguments will show the list as the number of error information, as well as where you enter a character or use / teleport show_list. You can add as many maps you want. - Everything is configurable. - Must have knowledge of C++ 0.1% to add more maps. Download: https://mega.nz/#!nQojDDrJ!azzGGoQYILIcJ2deDLuvMFW2HoyQBuxYdv1ikysDVyk
  2. As you know many people have wanted to do this and they did not know how. I posted a few months ago another community on how to do this, the only tutorial, and then I noticed that everyone was used for those functions that I put. So today I improve my bit version, and you've made a small gift. Sorry for that code, is very shit maybe but is *free*, I do not ask money for crap written in a few minutes. [File: Src/Client/UserInterface/Locale_inc.h] // ------------------------------------------------------------------------ // #define ENABLE_EFFECT_COSTUME // Enable check for add effect costume // ------------------------------------------------------------------------ // // ------------------------------------------------------------------------ // #define GET_EFFECT_VIA_MSM // Enable check from value3 item_proto(client) // ------------------------------------------------------------------------ // // ------------------------------------------------------------------------ // #define GET_EFFECT_VIA_VNUM // Enable check from item vnum // ------------------------------------------------------------------------ // [File: Src/Client/UserInterface/InstanceBase.h] #1.) Search: enum { EMPIRE_NONE, EMPIRE_A, EMPIRE_B, EMPIRE_C, EMPIRE_NUM, }; #2.) Add bellow: #ifdef ENABLE_EFFECT_COSTUME // ------------------------------------------------------------------------ // // This enum from ECostumeEffectMsm value is loaded from item_proto(client)// // Value is loaded from your Value3="xxxxx" // // Value3 = ShapeIndex from yourrace.msm (root) // // ------------------------------------------------------------------------ // enum ECostumeEffectMsm { VALUE_MSM_1 = 40032, // = vnum [ (M) -> 41003, (F) -> 41004] VALUE_MSM_2 = 40033, // = vnum [ (M) -> 41005, (F) -> 41006] VALUE_MSM_3 = 40034, // = vnum [ (M) -> 41007, (F) -> 41008] VALUE_MSM_4 = 40035, // = vnum [ (M) -> 41009, (F) -> 41010] VALUE_MSM_5 = 40036, // = vnum [ (M) -> 41011, (F) -> 41012] VALUE_MSM_6 = 40037, // = vnum [ (M) -> 41013, (F) -> 41014] VALUE_MSM_7 = 40038, // = vnum [ (M) -> 41015, (F) -> 41016] VALUE_MSM_8 = 40039, // = vnum [ (M) -> 41017, (F) -> 41018] VALUE_MSM_9 = 40040, // = vnum [ (M) -> 41019, (F) -> 41020] VALUE_MSM_10 = 40041, // = vnum [ (M) -> 41021, (F) -> 41022] }; enum ECostumeEffectVnum { VALUE_VNUM_1 = 41003, VALUE_VNUM_2 = 41304, VALUE_VNUM_3 = 41005, VALUE_VNUM_4 = 41006, VALUE_VNUM_5 = 41307, VALUE_VNUM_6 = 41308, VALUE_VNUM_7 = 41309, VALUE_VNUM_8 = 41310, VALUE_VNUM_9 = 41311, VALUE_VNUM_10 = 41312, }; #endif [File: Src/Client/UserInterface/InstanceBase.cpp] #1.) Search: if (m_swordRefineEffectRight) m_swordRefineEffectRight = __AttachEffect(m_swordRefineEffectRight); if (m_swordRefineEffectLeft) m_swordRefineEffectLeft = __AttachEffect(m_swordRefineEffectLeft); break; #2.) Add bellow: #ifdef ENABLE_EFFECT_COSTUME case CItemData::ITEM_TYPE_COSTUME: if (pItem->GetSubType() == CItemData::COSTUME_BODY) { DWORD szItem = pItem->GetIndex(); long szMsm = pItem->GetValue(3); #ifdef GET_EFFECT_VIA_MSM if (szMsm == VALUE_MSM_1 || szMsm == VALUE_MSM_2 || szMsm == VALUE_MSM_3 || szMsm == VALUE_MSM_4 || szMsm == VALUE_MSM_5 || szMsm == VALUE_MSM_6 || szMsm == VALUE_MSM_7 || szMsm == VALUE_MSM_8 || szMsm == VALUE_MSM_9 || szMsm == VALUE_MSM_10) #endif #ifdef GET_EFFECT_VIA_VNUM if (szItem == VALUE_VNUM_1 || szItem == VALUE_VNUM_2 || szItem == VALUE_VNUM_3 || szItem == VALUE_VNUM_4 || szItem == VALUE_VNUM_5 || szItem == VALUE_VNUM_6 || szItem == VALUE_VNUM_7 || szItem == VALUE_VNUM_8 || szItem == VALUE_VNUM_9 || szItem == VALUE_VNUM_10) #endif { __AttachEffect(EFFECT_REFINED+EFFECT_NAME); // Put your effect } } #endif
  3. [File: src/Server/common/service.h] && [File: src/Client/UserInterface/Locale_inc.h] #define ENABLE_NEW_AFFECT_POTION [File: src/Client/UserInterface/InstanceBase.h] //1.) Search: NEW_AFFECT_NOG_POCKET_ABILITY = 302, //2.) Add bellow: #ifdef ENABLE_NEW_AFFECT_POTION AFFECT_POTION_1 = 303, AFFECT_POTION_2 = 304, AFFECT_POTION_3 = 305, AFFECT_POTION_4 = 306, AFFECT_POTION_5 = 307, AFFECT_POTION_6 = 308, #endif [File: src/Client/UserInterface/PythonCharacterModule.cpp] //1.) Search: PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_DECK2", CInstanceBase::NEW_AFFECT_DRAGON_SOUL_DECK2); //2.) Add bellow: #ifdef ENABLE_NEW_AFFECT_POTION PyModule_AddIntConstant(poModule, "AFFECT_POTION_1", CInstanceBase::AFFECT_POTION_1); PyModule_AddIntConstant(poModule, "AFFECT_POTION_2", CInstanceBase::AFFECT_POTION_2); PyModule_AddIntConstant(poModule, "AFFECT_POTION_3", CInstanceBase::AFFECT_POTION_3); PyModule_AddIntConstant(poModule, "AFFECT_POTION_4", CInstanceBase::AFFECT_POTION_4); PyModule_AddIntConstant(poModule, "AFFECT_POTION_5", CInstanceBase::AFFECT_POTION_5); PyModule_AddIntConstant(poModule, "AFFECT_POTION_6", CInstanceBase::AFFECT_POTION_6); #endif [File: src/Client/UserInterface/PythonApplicationModule.cpp] //1.) Search: #ifdef ENABLE_COSTUME_SYSTEM PyModule_AddIntConstant(poModule, "ENABLE_COSTUME_SYSTEM", 1); #else PyModule_AddIntConstant(poModule, "ENABLE_COSTUME_SYSTEM", 0); #endif //2.) Add bellow: #ifdef ENABLE_NEW_AFFECT_POTION PyModule_AddIntConstant(poModule, "ENABLE_NEW_AFFECT_POTION", 1); #else PyModule_AddIntConstant(poModule, "ENABLE_NEW_AFFECT_POTION", 0); #endif [File: src/Server/game/src/affect.h] //1.) Search: AFFECT_HOLLY_STONE_POWER = 303, //2.) Delete and replaced with: #ifdef ENABLE_NEW_AFFECT_POTION AFFECT_POTION_1, AFFECT_POTION_2, AFFECT_POTION_3, AFFECT_POTION_4, AFFECT_POTION_5, AFFECT_POTION_6, #endif [File: src/Server/game/src/char.h] //1.) Search: void FlushDelayedSaveItem(); //2.) Add bellow: #ifdef ENABLE_NEW_AFFECT_POTION bool SetAffectPotion(LPITEM item); #endif [File: src/Server/game/src/char_item.cpp] //1.) Search: void CHARACTER::UseSilkBotary(void) { if (m_bNoOpenedShop) { DWORD dwPlayerID = GetPlayerID(); db_clientdesc->DBPacket(HEADER_GD_MYSHOP_PRICELIST_REQ, GetDesc()->GetHandle(), &dwPlayerID, sizeof(DWORD)); m_bNoOpenedShop = false; } else { __OpenPrivateShop(); } } //2.) Add bellow: #ifdef ENABLE_NEW_AFFECT_POTION bool CHARACTER::SetAffectPotion(LPITEM item) { int blend_get_affect[] = {AFFECT_POTION_1, AFFECT_POTION_2, AFFECT_POTION_3, AFFECT_POTION_4, AFFECT_POTION_5, AFFECT_POTION_6}; int blend_null[] = {APPLY_NONE, AFF_NONE, 0, false}; int blend_list[] = {50821, 50822, 50823, 50824, 50825, 50826}; const char* blend_succes = {"<Affect Potion> Set icon ingame for item: |cFFc9ff00|H|h[%s]"}; int blend_time = item->GetSocket(2); switch (item->GetVnum()) { case 50821: AddAffect(blend_get_affect[0], blend_null[0], blend_null[2], blend_null[1], blend_time, blend_null[2], blend_null[3], blend_null[3]); break; case 50822: AddAffect(blend_get_affect[1], blend_null[0], blend_null[2], blend_null[1], blend_time, blend_null[2], blend_null[3], blend_null[3]); break; case 50823: AddAffect(blend_get_affect[2], blend_null[0], blend_null[2], blend_null[1], blend_time, blend_null[2], blend_null[3], blend_null[3]); break; case 50824: AddAffect(blend_get_affect[3], blend_null[0], blend_null[2], blend_null[1], blend_time, blend_null[2], blend_null[3], blend_null[3]); break; case 50825: AddAffect(blend_get_affect[4], blend_null[0], blend_null[2], blend_null[1], blend_time, blend_null[2], blend_null[3], blend_null[3]); break; case 50826: AddAffect(blend_get_affect[5], blend_null[0], blend_null[2], blend_null[1], blend_time, blend_null[2], blend_null[3], blend_null[3]); break; } ChatPacket(CHAT_TYPE_INFO, blend_succes, item->GetName()); } #endif //3.) Search: AddAffect(affect_type, apply_type, apply_value, 0, apply_duration, 0, false); //4.) Add before: #ifdef ENABLE_NEW_AFFECT_POTION SetAffectPotion(item); #endif [File: root/uiAffectShower.py] //1.) Search: if type < 500: return //2.) Delete and replaced with: if app.ENABLE_NEW_AFFECT_POTION: if type < 500 and not type == AFFECT_POTION["affect"][0] and not type == AFFECT_POTION["affect"][1] and not type == AFFECT_POTION["affect"][2] and not type == AFFECT_POTION["affect"][3] and not type == AFFECT_POTION["affect"][4] and not type == AFFECT_POTION["affect"][5]: return else: if type < 500: return //3.) Search: import math //4.) Add bellow: if app.ENABLE_NEW_AFFECT_POTION: AFFECT_POTION = { "affect" : { 0 : 303, 1 : 304, 2 : 305, 3 : 306, 4 : 307, 5 : 308, }, #"modulePython" : { #0 : str(pkAffect), #1 : int(pRemove_vegas), #}, "image" : { 0 : "icon/item/50821.tga", 1 : "icon/item/50822.tga", 2 : "icon/item/50823.tga", 3 : "icon/item/50824.tga", 4 : "icon/item/50825.tga", 5 : "icon/item/50826.tga", }, } //5.) Search: if app.ENABLE_DRAGON_SOUL_SYSTEM: AFFECT_DATA_DICT[chr.NEW_AFFECT_DRAGON_SOUL_DECK1] = (localeInfo.TOOLTIP_DRAGON_SOUL_DECK1, "d:/ymir work/ui/dragonsoul/buff_ds_sky1.tga") AFFECT_DATA_DICT[chr.NEW_AFFECT_DRAGON_SOUL_DECK2] = (localeInfo.TOOLTIP_DRAGON_SOUL_DECK2, "d:/ymir work/ui/dragonsoul/buff_ds_land1.tga") //6.) Add bellow: if app.ENABLE_NEW_AFFECT_POTION: AFFECT_DATA_DICT[AFFECT_POTION["affect"][0]] = (localeInfo.TOOLTIP_AFFECT_POTION_1, AFFECT_POTION["image"][0]) AFFECT_DATA_DICT[AFFECT_POTION["affect"][1]] = (localeInfo.TOOLTIP_AFFECT_POTION_2, AFFECT_POTION["image"][1]) AFFECT_DATA_DICT[AFFECT_POTION["affect"][2]] = (localeInfo.TOOLTIP_AFFECT_POTION_3, AFFECT_POTION["image"][2]) AFFECT_DATA_DICT[AFFECT_POTION["affect"][3]] = (localeInfo.TOOLTIP_AFFECT_POTION_4, AFFECT_POTION["image"][3]) AFFECT_DATA_DICT[AFFECT_POTION["affect"][4]] = (localeInfo.TOOLTIP_AFFECT_POTION_5, AFFECT_POTION["image"][4]) AFFECT_DATA_DICT[AFFECT_POTION["affect"][5]] = (localeInfo.TOOLTIP_AFFECT_POTION_6, AFFECT_POTION["image"][5]) [File: locale/xx/locale_game.txt] TOOLTIP_AFFECT_POTION_1 Potion Red SNA TOOLTIP_AFFECT_POTION_2 Potion Orange SNA TOOLTIP_AFFECT_POTION_3 Potion Yellow SNA TOOLTIP_AFFECT_POTION_4 Potion Green SNA TOOLTIP_AFFECT_POTION_5 Potion Blue SNA TOOLTIP_AFFECT_POTION_6 Potion White SNA
  4. Video with bug: Here is a gif with my fix: Link download: https://mega.nz/#!KBR2FKpZ!M4cHHz7bcX-J6PWWcP8fyto7MS3m5Upk7tKQSwZMriY
  5. Character isn't logout on my server. I tried phase_close isn't working. Can anyone help me please?
  6. def Run(self): res = self.GetText() #res = self.inputValue.GetText() ## your input value try: fHandle = app.OpenTextFile("locale/en/block_words_python.txt") w = app.GetTextFileLineCount(fHandle) except IOError: dbg.LogBox("Error: Loading words !") app.Abort() for j in xrange(w): lc = app.GetTextFileLine(fHandle, j) c = str(lc).split("\t") if len(c) == 0 or not c[0]: continue elif res == c[0]: chat.AppendChat(chat.CHAT_TYPE_INFO, "[SYSTEM] Blocked words were introduced!") return locale/en/block_words_python.txt text0 text1 text2 text3 text4 text5 text6 text7 text8 text9 text10 text11 text12 text13 text14 text15
  7. Conversation between me and vegas: [21:18:22] ####:: VegaS are you here? [21:18:31] VegaS™: Yes. [21:19:09] ####: Man, some people sell your title system what was public on tur****. [21:22:14] ####:: https://i.gyazo.com/feeb2dcc47adbed5c87f0e6dda867f7f.png [21:22:22] ####:: Here is this shit what he sell. [21:28:33] ####:: Shit all resellers , dude . [21:34:50] VegaS™: There are many whores in this area, so best bet would be to post this system because some hookers make money from him unjustly. So send them harlots that vegas has big dick and that will fuck all in the ass. This system has a crappy code, you can keep the recycle bin, is the first version of shit. I apologize for what my clients who bought this system, but I'll make updates to it and will be more advanced. I can not enter metin2dev this time because my account is suspended for a short period of time, but I will return very soon, remember that. Why has reached this release online? Since titlesystem first version had over 35 buyers from title and I sold at all retarded. But now these latest systems and will not sell than some people you know for a long time and know 100% that they are not whores. Latest systems are stored for each client, I know 100% who I was because when you reach for resellers or free. And remember one thing: - I Will never sell any system or any other things for Romanian people, if someone tries to sell it or mean it's fucking scammer, and if u see Something scammer who sell my works, you can report this to me. Soon it ready new website, where there will be all new systems sales and presentations. ^^ Go on metin2dev and post system and send them the message that I told you. (sorry for my english) Here is informations about system: Download: https://mega.nz/#!3BAnEZJQ!QKo35FCxVr8AFjatiVk7KX2DmN62Pj14VHJQZ9tpyR0 Have fun, scammer ^^ #request close topic, so much spam xD
  8. Download link: https://mega.nz/#!WAhHnTZI!QGSlaffKqQfI_Uf3Iqt_qblJlnBdCJyobTphonWbNzg
  9. Here is a little older configuration to see how the system work. http://paste.ubuntu.com/23085600/ I created this topic because I need ideea and opinions what would be done to the system to be nice for all servers and pleasant. Mention: The system will be chargeable in my services, this topic is for information only and opinions.
  10. A collision or crash is an event in which two or more bodies exert forces on each other for a relatively short time. Although the most common colloquial use of the word "collision" refers to incidents in which two or more objects collide, the scientific use of the word "collision" implies nothing about the magnitude of the force. Some examples of physical interactions that scientists would consider collisions: An insect touches its antenna to the leaf of a plant. The antenna is said to collide with leaf. A cat walks delicately through the grass. Each contact that its paws make with the ground is a collision. Each brush of its fur against a blade of grass is a collision. I will come back with a video tonight [File: src/Client/Source/GameLib/ActorInstanceCollisionDetection.cpp] //1.) Search: #include "../eterLib/GrpMath.h" //2.) Add bellow: #include "../UserInterface/PythonBackground.h" #include "../UserInterface/Locale_inc.h" //3.) Search: BOOL CActorInstance::TestActorCollision(CActorInstance & rVictim) { //4.) Add bellow: #ifdef ENABLE_STOP_COLISSION_GLOBAL /********************************************************************* * date : 2016.02.16 * function : Stop Colission * developer : VegaS * skype : sacadatt.amazon * description : Checks if the victim is one of the examples below you can easily configure. If the victim was found success as vnum site / breed ve you could go through it no longer block. */ /************ * The first value is the minimum value and the second value is the maximum value of pet vnum (mob_proto) - change 34051 with your max vnum of pet */ int pListPet[2] = {34001, 34051}; /************ * You can add whatever you like vnum of npc or monster (mob_proto) */ int pListGlobal[] = {9001, 9002, 9003, 9004, 9005, 9006, 20011, 20091, 20092, 20093, 20094, 20095, 30000}; /************ * You can add what mapname you want for enable this stop collission global like pet / npc */ const char* strMapListGlobal[] = {"metin2_map_a1", "metin2_map_a3", "metin2_map_b1", "metin2_map_b3", "metin2_map_c1", "metin2_map_c3", "season2/metin2_map_skipia_dungeon_01", "season2/metin2_map_skipia_dungeon_02", "metin2_map_duel"}; /************ * Location name of the map where the event takes place ox */ const char* strMapEventOx = "season1/metin2_map_oxevent"; std::string stringName = CPythonBackground::Instance().GetWarpMapName(); for (int i = 0; i < _countof(strMapListGlobal); i++) { #ifdef ENABLE_STOP_COLLISION_PLAYER_OX if (strMapEventOx == stringName) // Check if u are place in map ox { if (0 <= rVictim.GetRace() && rVictim.GetRace() <= 7) // Check if the victim through which pass over a player (change 7 with 8 if u have wolfman) return FALSE; // Stop collission for player --> You can go through players now successfully without lock yourself } #endif if (strMapListGlobal[i] == stringName) // Check if you are in one of the maps listed in the global list { for (int i = 0; i < _countof(pListGlobal); i++) { if (rVictim.GetRace() == pListGlobal[i] || pListPet[0] <= rVictim.GetRace() && rVictim.GetRace() <= pListPet[1]) // Verify that the victim is npc vnum listed above, or if a pet. return FALSE; // Stop collission for global vnum like a pet or npc } } } #endif [File: src/Client/Source/UserInterface/Locale_inc.h] //1.) Search: #define ENABLE_COSTUME_SYSTEM //2.) Add bellow: #ifndef ENABLE_STOP_COLISSION_GLOBAL #define ENABLE_STOP_COLISSION_GLOBAL #define ENABLE_STOP_COLLISION_PLAYER_OX #endif
  11. 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. Link download: https://mega.nz/#!CYJVib4L!bziTs5iK-R8dznmtAbBt3E2y93xyuCV0gZLV1MHdlPs And here is part rest for how to add grade:
  12. How to fix it? not:After add acce sorry for my english.
  13. A member from this community called for a tutorial with this so I made this little tutorial with several functions. These functions can be applied during an event to lock assembly automatic any items Self pickup because stiim with all that many players join a private server when an event such as a break Metin and get xx chests, and players use most illegal software in order to collect as many chests or any item. Command in game for disable/activate: /e enable_block_table_pickup 1 -> Activate /e enable_block_table_pickup 0 -> Disable - [ File: /Src/common/service.h ] #define __ENABLE_BLOCK_PICKUP__ // Enables blocking of special items that can not be collected #define __ENABLE_BLOCK_PICKUP__WARNING "[Block PickUp] You cannot collect this item when event is active!" - [ File: /Src/common/length.h ] enum TablePickupItem { BLOCK_VNUM_0 = 50011, BLOCK_VNUM_1 = 50124, BLOCK_VNUM_2 = 50125, BLOCK_VNUM_3 = 50126, BLOCK_VNUM_4 = 50127, BLOCK_VNUM_5 = 50128, BLOCK_VNUM_6 = 50129, BLOCK_VNUM_7 = 50130, BLOCK_VNUM_8 = 50131, BLOCK_VNUM_9 = 50132, BLOCK_VNUM_10 = 50133, }; - [ File: /Src/game/char_item.cpp ] #1.) Search: if (!item || !item->GetSectree()) return false; #2.) Add bellow: #ifdef __ENABLE_BLOCK_PICKUP__ DWORD vegas_dwEventFlagBlockPickup = quest::CQuestManager::instance().GetEventFlag("enable_block_table_pickup"); if (vegas_dwEventFlagBlockPickup > 0) { if (IS_TABLE_BLOCK_PICKUP(item->GetVnum())) { ChatPacket(CHAT_TYPE_NOTICE, __ENABLE_BLOCK_PICKUP__WARNING); return false; } } #endif #3.) Search: static bool FN_check_item_socket(LPITEM item) { [........] } #4.) Add bellow: #ifdef __ENABLE_BLOCK_PICKUP__ static bool IS_TABLE_BLOCK_PICKUP(int vnum) { switch (vnum) { case BLOCK_VNUM_0: case BLOCK_VNUM_1: case BLOCK_VNUM_2: case BLOCK_VNUM_3: case BLOCK_VNUM_4: case BLOCK_VNUM_5: case BLOCK_VNUM_6: case BLOCK_VNUM_7: case BLOCK_VNUM_8: case BLOCK_VNUM_9: case BLOCK_VNUM_10: return true; } return false; } #endif
  14. [File: Src/Game/common/service.h] #define ENABLE_HIDE_NAME_PLAYER [File: Src/Game/common/length.h] //#1.) Search: enum EOnIdleEvents { ON_IDLE_NONE, ON_IDLE_GENERAL, ON_IDLE_MAX_NUM }; //#2.) Add bellow: #ifdef ENABLE_HIDE_NAME_PLAYER enum ETypeEventOX { EVENT_OX_MAP = 113, EVENT_OX_FLAG = 0, }; #endif [File: Src/Game/affect.h] //#1.) Search: AFFECT_BLEND, //#2.) Add bellow: #ifdef ENABLE_HIDE_NAME_PLAYER AFFECT_HIDE_NAME, #endif [File: Src/game/input_login.cpp] //#1.) Search: if (ch->GetHorseLevel() > 0) { DWORD pid = ch->GetPlayerID(); if (pid != 0 && CHorseNameManager::instance().GetHorseName(pid) == NULL) db_clientdesc->DBPacket(HEADER_GD_REQ_HORSE_NAME, 0, &pid, sizeof(DWORD)); ch->SetHorseLevel(ch->GetHorseLevel()); ch->SkillLevelPacket(); } //#2.) Add bellow: // ------------------------------------------------------------------------ // // This function is loaded when you enter in map ox // // You need to activate loaded functions with /e enable_hide_player 1 // // You need to activate command before start event // // ------------------------------------------------------------------------ // #ifdef ENABLE_HIDE_NAME_PLAYER DWORD dwHidePlayer = quest::CQuestManager::instance().GetEventFlag("enable_hide_player"); // e enable_hide_player value (0 - disable / 1 - activate) if (dwHidePlayer > EVENT_OX_FLAG) { if (ch->GetMapIndex() == EVENT_OX_MAP) { if (!ch->FindAffect(AFFECT_HIDE_NAME)) { ch->ChatPacket(CHAT_TYPE_COMMAND, "hide_player_state"); ch->AddAffect(AFFECT_HIDE_NAME, 0, 0, AFF_NONE, 60*60*24*7, 0, true, false); } } } #endif //#1.) Search: if (ch->GetGMLevel() == GM_PLAYER) ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire())); //#2.) Delete and replaced with: // ------------------------------------------------------------------------ // // When event ox is finished and teleport you in your home, name players // // will return back ! // // ------------------------------------------------------------------------ // if (ch->GetGMLevel() == GM_PLAYER) #ifdef ENABLE_HIDE_NAME_PLAYER ch->RemoveAffect(AFFECT_HIDE_NAME); ch->ChatPacket(CHAT_TYPE_COMMAND, "show_player_state"); #endif ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire())); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [File: Client/root/game.py] //#1.) Search: "ShowMeMallPassword" : self.AskMallPassword, //#2.) Add bellow: "hide_player_state" : self.__Player_HideState, "show_player_state" : self.__Player_ShowState, //#1.) Search: def AskMallPassword(self): self.interface.AskMallPassword() //#2.) Add bellow: def __Player_HideState(self): # Function is loaded when you are start flag enable_hide_player 1 and when you are enter in map ox. import uiGameOption self.szGetVegasModule = uiGameOption.OptionDialog() self.szGetVegasModule.__OnClickAlwaysShowNameOffButton() # Hide player name #self.szGetVegasModule.__OnClickViewChatOffButton() # Hide chat def __Player_ShowState(self): #// Function is loaded when event is finished import uiGameOption self.szGetVegasModule = uiGameOption.OptionDialog() # Show player name self.szGetVegasModule.__OnClickAlwaysShowNameOnButton() #self.szGetVegasModule.__OnClickViewChatOnButton() # Show chat ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Here is loaded function for people have < 40k (no source) quest ox_hide_state begin state start begin when login with pc.get_map_index() == 113 begin if game.get_event_flag("enable_hide_player") > 0 then cmdchat("hide_player_state") end end when logout with pc.get_map_index() == 113 begin if game.get_event_flag("enable_hide_player") > 0 then cmdchat("show_player_state") end end end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Other thing about block: [File: Client/root/game.py] //#1.) Search: def ShowName(self): self.ShowNameFlag = TRUE self.playerGauge.EnableShowAlways() player.SetQuickPage(self.quickSlotPageIndex+1) //#2.) Delete and replaced with: def ShowName(self): import background if constInfo.ENABLE_HIDE_NAME_PLAYER > 0: if background.GetCurrentMapName() == constInfo.EVENT_OX_MAPNAME: chat.AppendChat(chat.CHAT_TYPE_INFO, constInfo.EVENT_OX_WARNING_ALT) else: self.ShowNameFlag = TRUE self.playerGauge.EnableShowAlways() player.SetQuickPage(self.quickSlotPageIndex+1) [File: Client/root/uiGameOption.py] //#1.) Search: def __OnClickAlwaysShowNameOnButton(self): systemSetting.SetAlwaysShowNameFlag(True) self.RefreshAlwaysShowName() def __OnClickAlwaysShowNameOffButton(self): systemSetting.SetAlwaysShowNameFlag(False) self.RefreshAlwaysShowName() //#2.) Delete and replaced with: def __OnClickAlwaysShowNameOnButton(self): import uiCommon, background if constInfo.ENABLE_HIDE_NAME_PLAYER > 0: if background.GetCurrentMapName() == constInfo.EVENT_OX_MAPNAME: self.wndPopup = uiCommon.PopupDialog() self.wndPopup.SetText(constInfo.EVENT_OX_WARNING_ON) self.wndPopup.Open() else: systemSetting.SetAlwaysShowNameFlag(True) self.RefreshAlwaysShowName() def __OnClickAlwaysShowNameOffButton(self): import uiCommon, background if constInfo.ENABLE_HIDE_NAME_PLAYER > 0: if background.GetCurrentMapName() == constInfo.EVENT_OX_MAPNAME: self.wndPopup = uiCommon.PopupDialog() self.wndPopup.SetText(constInfo.EVENT_OX_WARNING_OFF) self.wndPopup.Open() else: systemSetting.SetAlwaysShowNameFlag(False) self.RefreshAlwaysShowName() [File: Client/root/uiGameOption.py] //#1.) Search: CHRNAME_COLOR_INDEX = 0 //#2.) Add bellow: ################################################## HIDE PLAYER NAME - START ###################################################################### ###################################################################################################################################################### ENABLE_HIDE_NAME_PLAYER = 1 # Enable check [0 - disable / 1 - enabled] EVENT_OX_MAPNAME = "season1/metin2_map_oxevent" # Name map EVENT_OX_WARNING_ALT = "You can not do this during the event!" # Message when you press key [ALT] from keyboard. EVENT_OX_WARNING_ON = "You can display the name of the player during the event ox!" # Message loaded from gameOption when you -> Name Always (Show). EVENT_OX_WARNING_OFF = "You can disable the name of the player during the event ox!" # Message loaded from gameOption when you -> Name Always (Hide). ################################################## HIDE PLAYER NAME - STOP ####################################################################### ###################################################################################################################################################### PS: I not tested, i only write for other friend because he say me to help with this. - http://image.prntscr.com/image/f12be8a99a9647c7a5347d237df31fe4.png
  15. A guy asked me that Skype, so I said why not make a topic of these small functions. [File: Src/game/input_login.cpp] #1.) Search: if (ch->GetHorseLevel() > 0) { DWORD pid = ch->GetPlayerID(); if (pid != 0 && CHorseNameManager::instance().GetHorseName(pid) == NULL) db_clientdesc->DBPacket(HEADER_GD_REQ_HORSE_NAME, 0, &pid, sizeof(DWORD)); ch->SetHorseLevel(ch->GetHorseLevel()); ch->SkillLevelPacket(); } #2.) Add bellow: #ifdef ENABLE_TRANSFORM_PLAYER_OX if (ch->GetMapIndex() == OX_MAPINDEX) { if (ch->GetGMLevel() == GM_IMPLEMENTOR || GM_HIGH_WIZARD || GM_WIZARD) { return; } #ifdef ENABLE_TRANSFORM_PLAYER_MODERATOR else if (ch->GetGMLevel() == GM_LOW_WIZARD) // Moderator { ch->AddAffect(AFFECT_POLYMORPH_OX, 0, 0, AFF_NONE, OX_TIME_AFFECT , 0, true, false); ch->SetPolymorph(OX_MOBNAME_MODERATOR); } #endif #ifdef ENABLE_TRANSFORM_PLAYER_VIP else if (ch->GetGMLevel() == GM_VIP) // VIP { ch->AddAffect(AFFECT_POLYMORPH_OX, 0, 0, AFF_NONE, OX_TIME_AFFECT , 0, true, false); ch->SetPolymorph(OX_MOBNAME_VIP); } #endif else if (ch->GetGMLevel() == GM_PLAYER) // Player { ch->AddAffect(AFFECT_POLYMORPH_OX, 0, 0, AFF_NONE, OX_TIME_AFFECT , 0, true, false); ch->SetPolymorph(OX_MOBNAME_PLAYER); } } } #endif #1.) Search: else if (ch->GetMapIndex() == 113) { if (COXEventManager::instance().Enter(ch) == false) { if (ch->GetGMLevel() == GM_PLAYER) ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire())); } } #2.) Delete and replace with this: #ifdef ENABLE_TRANSFORM_PLAYER_OX #ifdef ENABLE_TRANSFORM_PLAYER_VIP if (ch->GetGMLevel() == GM_PLAYER || ch->GetGMLevel() == GM_LOW_WIZARD || ch->GetGMLevel() == GM_VIP) #else if (ch->GetGMLevel() == GM_PLAYER || ch->GetGMLevel() == GM_LOW_WIZARD) #endif ch->SetPolymorph(0); ch->RemoveAffect(AFFECT_POLYMORPH_OX); // Fix remove polymorph #else if (ch->GetGMLevel() == GM_PLAYER) ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire())); } #endif [File: Src/game/affect.h] #1.) Search: AFFECT_BLEND, #2.) Add bellow: #ifdef ENABLE_TRANSFORM_PLAYER_OX AFFECT_POLYMORPH_OX, #endif [File: Src/common/service.h] #define ENABLE_TRANSFORM_PLAYER_OX #define ENABLE_TRANSFORM_PLAYER_MODERATOR //#define ENABLE_TRANSFORM_PLAYER_VIP [File: Src/common/length.h] #1.) Search: enum EJobs { JOB_WARRIOR, JOB_ASSASSIN, JOB_SURA, JOB_SHAMAN, JOB_MAX_NUM }; #2.) Add bellow: #ifdef ENABLE_TRANSFORM_PLAYER_OX enum ETypeInformationsEventOx { OX_MOBNAME_PLAYER = 101, OX_MOBNAME_MODERATOR = 102, OX_MOBNAME_VIP = 103, OX_MAPINDEX = 113, OX_TIME_AFFECT = 60*60*24*7, }; #endif
  16. The site server: http://titan2.ro Download: http://titan2.ro/descarca.html The official description of the server: http://titan2.ro/descriere/
  17. Hi, probably many of you, I say that is the advantage of this change. Well of course changing little help against attent of lag especially in some dungeons that are hundreds of phones, greatly help to run it in a more fast. So to change the seconds of extinction of a monster after it you will kill them, the normal range of approx. 10 second, enter in: We open: looking function: and to change the seconds of extinction course change, number 10, where red is bold, with how many seconds you want, preferably as 1 second, the very best. I apologize for the language. Good luck to implement. Regards, VegaS - The leader of the organization Titan2