Jump to content

Feature settings (Repost)


exec
 Share

Recommended Posts

Update: Fetitor, a dedicated feature file editor is out: 

This is the original post:

While I'm working on an improved features converter, I'll repost this here. Originally posted by Yiting on the Aura forum on November 27, 2012.

Quote

The feature system is used to play mabinogi in different Generation/Season by same client, and also controls some server specific features.
All features are keep in data\features.xml.compiled, since it has been "compiled", we cannot edit it directly.
Now i make a very small tool to convert it between plain-text xml and compiled xml, so we can easily enable any feature we want to test.

Known features:


public enum EGameFeature
{
/* a43c978f */ gfHousing = 0x1C,
/* 9ed9bb11 */ gfSpecialAction = 0x35,
/* 4d281c21 */ gfCaptureTheFlag = 0x9B,
/* e7388624 */ gfFreeRebirth = 0xA9,
/* efd63387 */ gfJoust = 0xBA,
/* 8a124e66 */ gfVisualChat = 0xCF,

/* 19d10ff5 */ gfRelationSystem = 0x126, // ErinnOn
/* 0e23e3d3 */ gfItemEnhance = 0x15A,
/* e76e42af */ gfShadowBunshin = 0x1AD,
/* 44f24213 */ gfPrivateFarm = 0x1CB,
/* e1313f53 */ gfElfGiantNPCMotion = 0x1E6,
/* 5b335458 */ gfGiant_ThrowRenewalG14S3 = 0x1E9,
/* 23345bcc */ gfEgoWeaponIncarnate = 0x1EB,
/* b2eb1053 */ gfRainCastingRenewal = 0x1EC,
/* 48a8b80f */ gfArbeitFilter = 0x1F1,
/* 20961b46 */ gfSkillrankCollectionBookG14S3 = 0x1F2,
/* 59a7456a */ gfGolemWindmillRankDown = 0x1F4,
/* 580c546e */ gfJobForNewbie = 0x1F7,

/* 14b84e30 */ gfIllustratedCollectBook = 0x211,
/* 8dd25176 */ gfCobhWorld = 0x212,
/* 8d8ca16f */ gfCobhStory = 0x213,
/* 7d20509e */ gfPrivateFarmPondLvDown = 0x216,
/* 998bf234 */ gfAliceCharaterCard = 0x227,
/* be6175f3 */ gfBelfast = 0x22B,
/* 7b6e685d */ gfCommerce = 0x230,
/* ff1148ff */ gfMerchantJob = 0x232,
/* 4b28eea4 */ gfG14S5AdditionalEgoWeapon = 0x23D,
/* 0385c1f0 */ gfG15MainStream = 0x23E,
/* bb2561a1 */ gfAssaultSlashRangeIncrease = 0x245,
/* 4bd47f19 */ gfContinentMoveAction = 0x246,
/* 24372a05 */ gfG14S5FieldMonsterRewardRenewal = 0x24A,
/* 1d139d93 */ gfG14S5RangeAttackUpgrade = 0x251,
/* 58c0aab0 */ gfG14S5UserFacilityImprovement = 0x257,
/* 43574895 */ gfG14S5EasyShakespeareMainstream = 0x25A,
/* 3ae0b1f4 */ gfMetalware = 0x25E,
/* fd804cd6 */ gfDIYFestival = 0x260,
/* a66c9d76 */ gf2011SummerCharacterCard = 0x26A,
/* e5c03654 */ gfHumanPet = 0x26B,
/* b2146efd */ gfHoodArmor = 0x26C,
/* aa550f75 */ gfUmbrellaItem = 0x26E,
/* d8507af8 */ gfItemSeal2 = 0x26F,
/* eb036d18 */ gf2010ContestChina = 0x274,
/* 45d77f2b */ gfShanaRenewal = 0x279,
/* 52cf7f60 */ gfCashEgoFeed = 0x27B,
/* c6e5bcca */ gfWarranty = 0x27C,
/* b2fb4e90 */ gfGroundSpeedUpPotion = 0x27D,
/* 78baf3b4 */ gfExclusiveBag = 0x280,
/* 025e66be */ gfG15S2Bundle = 0x281,
/* 82c286b4 */ gfManaBurnRemove = 0x283,
/* c9679cb5 */ gfNPCMission = 0x284,
/* 622f75ae */ gfEgoWeaponMove = 0x285,
/* 1d8d72d3 */ gfKristellBirthday = 0x286,
/* 869d0868 */ gfAnohana = 0x288,
/* 325cf451 */ gfHarvestFestival2011 = 0x28B,
/* 4a3e5245 */ gfHalloweenZombieInfectionEvent2011USA = 0x28C,
/* c8c8db70 */ gfManaBurnDecreaseRemove = 0x28D,
/* 265c851b */ gfManaBurnUpgradeToManaUse = 0x290,
/* d4e4ce30 */ gfManaBurnUpgradeToDamage = 0x291,
/* 737817b4 */ gfEavanBirthday = 0x293,
/* 99309104 */ gfFullmetalAlchemistKorea = 0x295,
/* 2848a00b */ gfAlarmClock = 0x29A,
/* b7d4ee78 */ gfSmuggler = 0x29C,
/* eb14331d */ gfMetalwareToolCommerce = 0x29E,
/* 65351cdc */ gf2011HalloweenCharacterCard = 0x2A1,
/* 0ebee16f */ gfMagicassistancebookRepair = 0x2A9,
/* a3e695e5 */ gfCombatRebalance = 0x2AA,
/* 945ca104 */ gfWantedCriminal = 0x2AB,
/* 07c4da33 */ gf2011HalloweenAction = 0x2AF,
/* 6023c18c */ gfNewCharacterColor2011 = 0x2B0,
/* 1a0b065a */ gfAdditionalWandEgoWeapon = 0x2B1,
/* e6e353f1 */ gfCylinderEgoWeapon = 0x2B2,
/* 2564fef7 */ gfAnohanaItem = 0x2B3,
/* be2e135a */ gfVoightBirthday = 0x2B6,
/* d91600d1 */ gfRecommendSystem = 0x2B7,
/* 88e27731 */ gfG16MainStream = 0x2B9,
/* ff47bb8e */ gfSkatha = 0x2BA,
/* a058cd08 */ gfG16Monster = 0x2BB,
/* 798acc56 */ gfFighterJob = 0x2BF,
/* c7fedda2 */ gfAndrasBirthday = 0x2C0,
/* dc159527 */ gfPetIceDragon = 0x2C2,
/* fc7867e1 */ gfCommerceDropItem = 0x2C6,
/* 0d9575e1 */ gfMerrows = 0x2C7,
/* d5cb7fa2 */ gfXmasGiftBox2011 = 0x2C8,
/* 997ee724 */ gfchristmas2011 = 0x2C9,
/* 88aa3325 */ gfPasswordCampaign = 0x2CB,
/* 76e5c858 */ gfGilmoreBirthday = 0x2D0,
/* e8eae2f5 */ gfWolfCoatCharaterCard = 0x2D5,
/* 0371b947 */ gfBomberManEvent = 0x2D7,
/* 2196ca73 */ gfMetalwareRealview = 0x2D9,
/* 8c2d1ebf */ gfValentineEvent2012 = 0x2DE,
/* 2adf2fb0 */ gfMainStream2012Part1 = 0x2E0,
/* b577eb46 */ gfBardJob = 0x2E2,
/* a63ec807 */ gfPhoenixEggEvent2012 = 0x2E3,
/* 08151abc */ gfFighterStory = 0x2E9,
/* 8782f9db */ gfCombatSystemRenewal = 0x2EA,
/* f507dbb7 */ gfWhitedayGachapon2012 = 0x2EE,
/* f7f24656 */ gfBeautyShop = 0x2F7,
/* 177c21c8 */ gfTirCho_NPC_Renewal = 0x2FA,
/* 4063890b */ gfRescueNaoCoupon = 0x2FB,
/* 01218ea5 */ gfPowerofDagda = 0x2FC,

/* 5e380846 */ gfCharacterMakeAbusing = 0x303,
/* 0f376445 */ gfNewHairStyleG16S3 = 0x306,
/* 2b6e801b */ gfTradeCountLimit1 = 0x30F,
/* 21e11d10 */ gfG16LancerTournamentRenewal = 0x310,
/* e9b8aa0c */ gfG16HotSpringRenewal = 0x311,
/* be61b105 */ gfCommercePartnerKor = 0x313,
/* d3518249 */ gfNewIriaPart1 = 0x316,
/* 8a95f03d */ gfCommercePartnerHair = 0x317,
/* 53ec22d7 */ gfPuppetMasterJob = 0x318,
/* 83031041 */ gfG16WineRenewal = 0x31A,
/* 717f139e */ gfG16BanquetRenewal = 0x31B,
/* 15208c96 */ gfG16FashionContestRenewal = 0x31F,
/* 3f60e7bd */ gfG16RaftEventRenewal = 0x320,
/* 9ae4c836 */ gfPhoenixPet = 0x328,
/* 060593f5 */ gfWarpPet = 0x329,
/* f204e75d */ gfPerfumeMaking = 0x32A,
/* 8938d54e */ gfG17TalentSystem = 0x32B,
/* 2adf2fb1 */ gfMainStream2012Part2 = 0x32D,
/* 5662897b */ gfCollectingMastery = 0x32E,
/* be61d577 */ gfCommercePartnerTai = 0x334,
/* 4e63aa18 */ gfMugwortEvent2012Japan = 0x339,
/* 03852166 */ gf3DaysRebirth = 0x342,
/* 3d17aae7 */ gfBeautyShopCostume1 = 0x343,
/* 37fec382 */ gfCommerceMastery = 0x344,
/* 27b83d68 */ gfTaraRenewal = 0x349,
/* f922f196 */ gfAnohanaRenewal = 0x350,
/* 3d17aae8 */ gfBeautyShopCostume2 = 0x351,
/* fbf1c0cd */ gfLordWeapon = 0x353,
/* d20ab773 */ gfShapeShifterJob = 0x354,
/* 3d17aae9 */ gfBeautyShopCostume3 = 0x355,
/* e9d00753 */ gfLordDungeon = 0x356,
/* 73a44626 */ gfWarpPetWithoutHat = 0x357,
/* 5bd29e01 */ gfShanaTaiwan = 0x35B,
/* 44141311 */ gfBoneDragon = 0x35D,
/* 1e373ce1 */ gfPrivateFarmRenewal = 0x365,
/* a5158d95 */ gfRefineSuccessRankUp = 0x36F,
/* 373d011f */ gfHomosexualmarriage = 0x370,
/* cff50508 */ gfDailyAPQuest = 0x371,
/* af053680 */ gfNPCshapeList = 0x372,
/* 60f9a18a */ gfPawnCoinRevival = 0x374,
/* 5360bd6c */ gfG18DragonWarSystem = 0x384,
/* b99caa3b */ gfSiljangNPC = 0x385,
/* bc2b4d03 */ gfSubTalentSkill = 0x38A,
/* 773ae246 */ gfPremiumPlusService = 0x38E,
/* 33e22c76 */ gfItemBagPriceDown = 0x38F,
/* dd7844e3 */ gfCommercePartnerJapan = 0x391,
/* 701a4965 */ gfWorldQuizEvent = 0x399,
};

name |index| description
========|=====|=================================
3209f770|0x2D6| "option title"
d254dbd6|0x302| "new character select stage"
e28729b7|0x380| "multi-client"

Because all feature's name are hashed, if you find any feature out, please post here to let me add it on the list. 


Hash function:
public static uint GetStringHash(string str)
{
    int s = 5381;
    foreach (char ch in str) s = s * 33 + (int)ch;
    return (uint)s;
}

 MabiFeatureTool.zip

* .NET Framework 4.0 Client Profile required.
* Drag features.xml.compiled file on it will generate features.xml file, and vice versa.

 

MabiFeatureTool.zip

Link to comment
Share on other sites

  • 1 year later...

Hi, I'm new here but I have been benefited greatly by the editor you made. I've also found few feature names the editor didn't have before. 

Here it is. 

Spoiler

gfNewRabbieDungeon2016     e6c1b41a
gfDungeonRenewal           a42b5350
gfDungeonRenewal2016       a560b8f9
gfG20MyKnights             2ec9a4d9
gfG19MainStream            18f896f4
gfG19DivineKnightSkillReBalance  1a7823a3
gfG20DivineKnightSkill     889ab1de
gfMinigameMafia            eadc37f7
gfHelpBoard                aca19023
gfCharStyleCoupon          e6cbc4d5
gfComebackUserSupport      9d1f48e3
gfPartner2015              06b21076
gfNewRabbieEasyMode        11061418
gfJoeOXQuiz                69d8d8a0
gfCookieDungeonEvent       8f69ca1e
gfG19OrderQuest            d1142871
gfHotTimeEvent             c6a6e66e
gfAprilFoolsDay2015Japan   792300fd
gfNewYearEvent2015Japan    38726921
gfNinjaLaunchEventKorea    03c52351
gfBossLifeBar              4bca67fe
gfRebirthPotion            4e5f4f9b
gfAutoBot                  974ef250
gfMonthlyPointMission      41ce46a9
gfMinidoll                 ea2f7b4a
gf2010ContestKorea         eb982ce7
gfPawnCoin                 5c69e331
gfELD                      0f7ffa47
gfBlueDragon               5c6b9235 
gfG20MainStream            99a9950c 
gfWeaponSkin               bf7c3191
gfBeautyShopCostume4       3d17aaea
gfBeautyShopCostume5       3d17aaeb
gfInviteEvent2015          d259e10b
gfPremiumComboCard         be88dedb
gfPetBike                  f48defd6
gfBattleBike               4dcc9469 
gfPungdeung                9bfa8bff
gfPetFairy                 868fe336
gfSnowFightEvent2012       e60d7892
gfHalo                     ff814736
gfBountyHunter             fbea99a9
gfTutorialRenewal2015      03577ebc
gfGreenNogiCampaignS4      8d6e2b37
gfChildrensDayEvent2011    0b4a0b32  
gfValentine2015Japan       2248fa6a  
gfSuneungFighting2014      1a23990e 
gfDailyLoginEvent          d5cb8160  
gfNewRebirthEvent          1c67328e
gfPuzzleGacha              e80ffb30
gfLimitedEdition           2951c886 
gfBingoGacha               846189f5 
gfLittleGhost              5dacc085  
gf2010ContestTaiwan        729a3df9 
gfCatchingTail             5146f95d 
gfAfreecaTV                2023bcc3 
gfCashItemRefund           2801caa4
gfMonsterPot               154cf24d
gfSecondTitle              3209f770
gfAdditionalEquipmentPocket  a906bbe9 
gfMetalwareTime             3f4068e3 
gfTheOneWhoPriased         ca173e4b

025aa317 "second row for skill hotkeys" 

Thank you so much exec for the work you have done. 

  • Like 1
Link to comment
Share on other sites

The one now gets the work done, but it'd be great to have some instant hasher function that hashes what you input. it'd make finding out new features easier. but it is amazing as it is now, and I couldn't have learned or discovered anything without it. 

PS: I have an unrelated question, i've seen a modder named Xeroplz credited you for the area file template you worked out in his loginstage swap release, which replaces the default loginstage to Rabbie Phantasm's  boss room. I've searched on the site with keywords "area" "region" etc but couldn't find much info, would you please shed some light on this ^^?

Edited by Heraclitus
adding a question.
  • Like 1
Link to comment
Share on other sites

  • 5 weeks later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...