Jump to content

Rainbow1

Inactive Member
  • Posts

    9
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Posts posted by Rainbow1

  1. M2 Download Center

    This is the hidden content, please
    ( Internal )

    Hello everyone.

    With this tool you will be able to convert XML proto files into self-defined structure of SQL or TXT files.

    Files contains definitions for default metin2 structure of mob and item protos (includes txt version of mob proto).

     

    Now few words about program structure.

    There are files named like '*ProtoItem' - this is definition of input and result structure. You can define own names for properties in XML files, result SQL columns and indexes for positions in TXT version of protos.

    XmlAttribute is used to define input data type and name of property in XML file.

    SqlMapAttribute is used to define database column name or position in TXT file(by ClientProtoIdx property).

     

    MobProto & ItemProto classes inherits from abstract classes for specified destiny(client or database). I implemented basic functionallity to convert XML files into SQL, but you can easly implement your own version - it's really flexible.

     

    https://www.virustotal.com/#/file/1adbe7e10fc9f3b03fb3dec1215e31e30eaa9438513a304a1ede7cc1984bd00f

     

    • Metin2 Dev 9
    • Dislove 1
    • Good 2
    • Love 1
    • Love 15
  2. M2 Download Center

    This is the hidden content, please
    ( Internal )

     

    .png

     

    VIP Boxes

    Items with VIP packages written in c++.
    Are available in this day versions: 1, 3, 7, 14 i 30.
    There are 2 types of this boxes, first which allows player to "give, trade, drop - etc.", 
    and second type which don't allows player to sell, drop, give etc. - you can use them as reward from quest.

    • Metin2 Dev 30
    • kekw 1
    • Eyes 1
    • Good 8
    • muscle 1
    • Love 2
    • Love 24
  3. M2 Download Center

    This is the hidden content, please
    ( Internal )

    nh1pywP.png

    Emotions for party

    By this system your players now are able to start emotion in same time for all party members.
    When party leader choose emotion then you will see counter like in image bellow.

    xCguIqE.png

     

    You will able to open emotion menu in System Options.

    Bbcvy1J.png

     

    To open emotions menu player have to be a party leader
    To start emotions all party members must be near party leader.

     

    You can simply add new own emotions, change timer lenght, 
    set own emotion name(in menu) or disable some emotions without deleting them.

    TkeZAsu.png

     

    Download & Scan

     

    https://mega.nz/file/3nQ0CAgL#KqcHLF3rHnMeF1_enGuG6lDKDoyM8lRHlNvYrchma4o
    https://www.virustotal.com/#/file/24c3d2b2579ecefa2dda0e783eddd145fa456d97a2d17989246e83f266f19199

     

     

    • Metin2 Dev 5
    • kekw 1
    • Good 4
    • Love 1
    • Love 5
  4. In 17.5 GF update with Talismans GF also introduce new type of bonuses - strong against weapons

    So here's it! I'm not 100% sure about bonuses numbers cuz in my revision i have also other new bonuses.

     

    Server Side

    open service.h and add:

    #define ENABLE_BONUS_STRONG_AGAINST_WEAPON

    open length.h, find 
    APPLY_ANTI_PENETRATE_PCT, (or last of urs bonuses)

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    	APPLY_ATTBONUS_SWORD,			// 92
    	APPLY_ATTBONUS_TWOHANDED,		// 93
    	APPLY_ATTBONUS_DAGGER,			// 94
    	APPLY_ATTBONUS_BELL,			// 95
    	APPLY_ATTBONUS_FAN,				// 96
    	APPLY_ATTBONUS_BOW,				// 97
    #endif

    open ProtoReader.cpp and find

    "APPLY_ANTI_PENETRATE_PCT",  (or last of urs bonuses)

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    		, "APPLY_ATTBONUS_SWORD"
    		"APPLY_ATTBONUS_TWOHANDED",
    		"APPLY_ATTBONUS_DAGGER",
    		"APPLY_ATTBONUS_BELL",
    		"APPLY_ATTBONUS_FAN",
    		"APPLY_ATTBONUS_BOW"
    #endif

     

    open Battle.cpp and inf int CalcAttBonus find:

    	if (pkAttacker->IsNPC() && pkVictim->IsPC())
    	{
    		iAtk = (iAtk * CHARACTER_MANAGER::instance().GetMobDamageRate(pkAttacker)) / 100;
    	}

     

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    	if (pkVictim->IsPC())
    	{
    		LPITEM pkWeapon = pkVictim->GetWear(WEAR_WEAPON);
    		if (pkWeapon)
    		{
    			switch (pkWeapon->GetSubType())
    			{
    				case WEAPON_SWORD:
    					iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_SWORD)) / 100;
    					break;
    
    				case WEAPON_TWO_HANDED:
    					iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_TWOHANDED)) / 100;
    					break;
    
    				case WEAPON_DAGGER:
    					iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_DAGGER)) / 100;
    					break;
    
    				case WEAPON_BELL:
    					iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_BELL)) / 100;
    					break;
    
    				case WEAPON_FAN:
    					iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_FAN)) / 100;
    					break;
    
    				case WEAPON_BOW:
    					iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_BOW)) / 100;
    					break;
    			}
    		}
    	}
    #endif

     

    in char.cpp find:

    case POINT_ATTBONUS_DEVIL: // 47

    add bellow:

     

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    	case POINT_ATTBONUS_SWORD:
    	case POINT_ATTBONUS_TWOHANDED:
    	case POINT_ATTBONUS_DAGGER:
    	case POINT_ATTBONUS_BELL:
    	case POINT_ATTBONUS_FAN:
    	case POINT_ATTBONUS_BOW:
    #endif

     

    find(in CHARACTER::ApplyPoint):

    case APPLY_ATTBONUS_MONSTER: // 63

     

    add bellow:

     

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    	case APPLY_ATTBONUS_SWORD:
    	case APPLY_ATTBONUS_TWOHANDED:
    	case APPLY_ATTBONUS_DAGGER:
    	case APPLY_ATTBONUS_BELL:
    	case APPLY_ATTBONUS_FAN:
    	case APPLY_ATTBONUS_BOW:
    #endif

     

    in char.h find:

    POINT_RESIST_PENETRATE = 137,

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    	POINT_ATTBONUS_SWORD = 138,
    	POINT_ATTBONUS_TWOHANDED = 139,
    	POINT_ATTBONUS_DAGGER = 140,
    	POINT_ATTBONUS_BELL = 141,
    	POINT_ATTBONUS_FAN = 142,
    	POINT_ATTBONUS_BOW = 143,
    #endif

    in cmd_general.cpp find:

    case POINT_RESIST_SHAMAN: return LC_TEXT("ą«´ç°ř°Ýżˇ %d%% ŔúÇ×");

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    	case POINT_ATTBONUS_SWORD:	return LC_TEXT("Sword resistance: %d%%");
    	case POINT_ATTBONUS_TWOHANDED:	return LC_TEXT("Two Hand resistance: %d%%");
    	case POINT_ATTBONUS_DAGGER:	return LC_TEXT("Dagger resistance: %d%%");
    	case POINT_ATTBONUS_BELL:	return LC_TEXT("Bell resistance: %d%%");
    	case POINT_ATTBONUS_FAN:	return LC_TEXT("Fan resistance: %d%%");
    	case POINT_ATTBONUS_BOW:	return LC_TEXT("Bow resistance: %d%%");
    #endif

     

    in constants.cpp find:

    { POINT_RESIST_PENETRATE,  },   // APPLY_ANTI_PENETRATE_PCT, 91

     

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    	{ POINT_ATTBONUS_SWORD,		},
    	{ POINT_ATTBONUS_TWOHANDED,		},
    	{ POINT_ATTBONUS_DAGGER,		},
    	{ POINT_ATTBONUS_BELL,		},
    	{ POINT_ATTBONUS_FAN,		},
    	{ POINT_ATTBONUS_BOW,		},
    #endif

     

    find:

    { "MELEE_MAGIC_ATTBONUS_PER", APPLY_MELEE_MAGIC_ATTBONUS_PER },

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
        { "ATT_BONUS_TO_SWORD",	APPLY_ATTBONUS_SWORD	},
        { "ATT_BONUS_TO_TWOHAND",	APPLY_ATTBONUS_TWOHANDED	},
        { "ATT_BONUS_TO_DAGGER",	APPLY_ATTBONUS_DAGGER    },
        { "ATT_BONUS_TO_BELL",	APPLY_ATTBONUS_BELL	},
        { "ATT_BONUS_TO_FAN",	APPLY_ATTBONUS_FAN	},
        { "ATT_BONUS_TO_BOW",	APPLY_ATTBONUS_BOW	},
    #endif

     

     

    let's go into client source side:

    open Locale_inc.h and add where you want:

    #define ENABLE_BONUS_STRONG_AGAINST_WEAPON

     

    open packet.h and find:

    POINT_RESIST_PENETRATE = 137,

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    		POINT_ATTBONUS_SWORD = 138,
    		POINT_ATTBONUS_TWOHANDED = 139,
    		POINT_ATTBONUS_DAGGER = 140,
    		POINT_ATTBONUS_BELL = 141,
    		POINT_ATTBONUS_FAN = 142,
    		POINT_ATTBONUS_BOW = 143,
    #endif

     

    open Itemdata.h and find:

    APPLY_ANTI_PENETRATE_PCT, //91

     

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    			APPLY_ATTBONUS_SWORD,			// 92
    			APPLY_ATTBONUS_TWOHANDED,		// 93
    			APPLY_ATTBONUS_DAGGER,			// 94
    			APPLY_ATTBONUS_BELL,			// 95
    			APPLY_ATTBONUS_FAN,				// 96
    			APPLY_ATTBONUS_BOW,				// 97
    #endif

     

    open PythonItemModule.cpp and find:

    PyModule_AddIntConstant(poModule, "APPLY_ANTI_PENETRATE_PCT", CItemData::APPLY_ANTI_PENETRATE_PCT);

    add bellow:

    #ifdef ENABLE_BONUS_STRONG_AGAINST_WEAPON
    	PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_SWORD", CItemData::APPLY_ATTBONUS_SWORD);
    	PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_TWOHANDED", CItemData::APPLY_ATTBONUS_TWOHANDED);
    	PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_DAGGER", CItemData::APPLY_ATTBONUS_DAGGER);
    	PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_BELL", CItemData::APPLY_ATTBONUS_BELL);
    	PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_FAN", CItemData::APPLY_ATTBONUS_FAN);
    	PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_BOW", CItemData::APPLY_ATTBONUS_BOW);
    #endif

     

    let's go into Dump Proto source:

    open ItemCSVReader.cpp and find(in string arApplyType[]):

    "APPLY_ANTI_PENETRATE_PCT",

    add after:

    "APPLY_ATTBONUS_SWORD","APPLY_ATTBONUS_TWOHANDED","APPLY_ATTBONUS_DAGGER","APPLY_ATTBONUS_BELL","APPLY_ATTBONUS_FAN","APPLY_ATTBONUS_BOW",

     

    let's go into Client root/locale part:

    open uiToolTip.py and find:

    item.APPLY_ANTI_PENETRATE_PCT : locale.TOOLTIP_ANTI_PENETRATE_PCT,

    add bellow:

    		item.APPLY_ATTBONUS_SWORD : locale.TOOLTIP_ATTBONUS_SWORD,
    		item.APPLY_ATTBONUS_TWOHANDED : locale.TOOLTIP_ATTBONUS_TWOHANDED,
    		item.APPLY_ATTBONUS_DAGGER : locale.TOOLTIP_ATTBONUS_DAGGER,
    		item.APPLY_ATTBONUS_BELL : locale.TOOLTIP_ATTBONUS_BELL,
    		item.APPLY_ATTBONUS_FAN : locale.TOOLTIP_ATTBONUS_FAN,
    		item.APPLY_ATTBONUS_BOW : locale.TOOLTIP_ATTBONUS_BOW,

     

    inside locale folder, open locale_game.txt, add in the end:

    TOOLTIP_ATTBONUS_SWORD	Strong Against Sword +%d%%	SA
    TOOLTIP_ATTBONUS_TWOHANDED	Strong Against Two-Handed Weapon +%d%%	SA
    TOOLTIP_ATTBONUS_DAGGER	Strong Against Dagger +%d%%	SA
    TOOLTIP_ATTBONUS_BELL	Strong Against Bell +%d%%	SA
    TOOLTIP_ATTBONUS_FAN	Strong Against Fan +%d%%	SA
    TOOLTIP_ATTBONUS_BOW	Strong Against Bow +%d%%	SA

     

    To use new bonuses please use in you item_proto.txt:

    APPLY_ATTBONUS_SWORD
    APPLY_ATTBONUS_TWOHANDED
    APPLY_ATTBONUS_DAGGER
    APPLY_ATTBONUS_BELL
    APPLY_ATTBONUS_FAN
    APPLY_ATTBONUS_BOW

    • Love 5
  5. M2 Download Center

    This is the hidden content, please
    ( Internal )

     

    IzTEs0D.png

    Auto Announcements

    This system allows you to send announcements at chosen time.

    There are 3 categories of announcements.

    Hourly Announcements
    You can set announcements which will appears at chosen minute after every full hour.


    Special Announcements
    You can set announcements which appears at chosen time in chosen day. 
    If you want to show messageeveryday in same hour simply set day to EVERYDAY.

    kWtgXPk.png

    Special Announcements | from h - to h
    You can set announcements which appears in chosen by you time intervals(ex. 17:00 - 21:00)
    00, 20 and 40 minutes after full hour.

    iYLIFZE.png

     

    Like in preview mode you can set it to EVERYDAY if you want show announcement everyday.

    By default it support 5 lines of message, but it's configurable.
    If you want to hide line simply set it to "".

     

    Dwonload & Scan

     

    https://mega.nz/file/ijJATKZR#hdFS0qFrxhm1vsWVx61sTfWr4_xzVvLhqIYVMMaBgZk
    https://www.virustotal.com/#/file/350f23a008f2ec7d972be88c1e28247477d03d12e7e64e0d28e91a556ea5ab09/detection

     

    • Metin2 Dev 10
    • kekw 1
    • Dislove 1
    • Good 3
    • Love 18
  6. M2 Download Center

    This is the hidden content, please
    ( Internal )

    mp6MaHL.jpg

    Daily Event

    Winter will come in days so what do you think about daily(or in chosen day) event with Grinch?.

    Before Grinch spawn game will send 4 notices about time of spawn.

    After kill daily boss(Grinch in package with map) game will send announcement with info about
    player who made last hit and kill Grinch.
    Every participants on this map after kill Grinch will get VIP bonuses for chosen time.

    Every settings like spawn time, announcement time are easy configurable.
    If you want fix small bug with displaying time please change this line like bellow:

    change:

    ["ANNOUCEMENT_LINE_3"] = "TODAY! About %d:%d he will be on Daily Boss Map.";

    for:

    ["ANNOUCEMENT_LINE_3"] = "TODAY! About %02d:%02d he will be on Daily Boss Map.";

    Announcement and spawn conf:

    FrRT1pY.png

     

    Time in quest dialogs are imported directly from settings in game.
    If you will set this event only in one day of week then Quest Scroll will hidden in other days.

    TX0KHt6.png

     

    You can simple disable VIP bonuses if you want only drop reward.

    SKkI6Bn.png35FJRqf.png

     

    If you want it only in one day then simply change const value and choose own day.

    Y9RfAhK.png

     

    Download & Scan

     

    https://mega.nz/file/23YWTSiY#cRnDSdj65nNUgze_CcSUsN5LcUUewlVYBE9w478_FyY
    https://www.virustotal.com/#/file/91e74bab2c2fab4f3046b7d4e7ff1f31432730d5adce1de863a9866303025bbc/detection

     

    • Metin2 Dev 35
    • Dislove 1
    • Good 7
    • Love 2
    • Love 21
  7. M2 Download Center

    This is the hidden content, please
    ( Internal )

    Spoiler

    2821274xZzty3.png2821067gDpbWm.png282106AN9slio.png282106c7JVfQC.png282106CS19Tin.png282106GOxA8d2.png282106wWCrc3V.png

     

     

    (Video at the end)

    Lockpicking is the new system which allows you to train special ability.

    This ability upgrade your skill of opening new boxes which are on maps(like npc).

    Every level gives higher chance to open box and probability to get more rewards.

    To train Lockpicking skill players have to read special books.

    You can set the level from which players can use this system.

    Maximum level of skill is 40, but it's configurable.

    Player can check how many boxes found.

    System support multilang servers.

    ykQAGYx.pngc7JVfQC.png

    AN9slio.png

    Missions

    Additionaly you will get special missions for this sytem, you can easily configure them or add new ones(just add new item to the table).
    After finished mission player receive reward directly in Quest Scroll.

    CS19Tin.pngwWCrc3V.png

    7gDpbWm.png

    Configuration

    FkFAxc0.png

    ItemShop

    Also you can earn some money from itemshop by this system : )
    Magical key rises you chance to open box to 100%, but count of items which you can get from box still depends on skill level.
    The Key can be used only 10 times.
    GOxA8d2.png

     

    Download & Scan

    https://mega.nz/file/i2JwSAjR#l2rAXslF7JnnFSAR7PN0yJeuaIAkTZOVABRdW044ahg
    https://www.virustotal.com/#/file/d4fb8b52a8ed74f3a2fbf74efdbd2cc2c042ed82b243fea4d7d18561fa206750/detection

     

     

    • Metin2 Dev 9
    • Good 2
    • Love 1
    • Love 28
×
×
  • 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.