Jump to content

GF v17.5 - Strong Against Weapon Bonuses


Recommended Posts

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
Link to comment
Share on other sites

  • 2 weeks later...
vor 46 Minuten schrieb Fleon:

	case POINT_ATTBONUS_BELL:	return LC_TEXT("Bell resistance: %d%%");

? ATT and the text is resistance?

re-tipe it - he was only copying it from another Bonus and forgot to change resistance into Strong against.

This Tutorial should be work - Take: "Strong Against X: %d%%" & btw - cmd_general part isnt so important.

Regards.

Link to comment
Share on other sites

  • Premium
21 hours ago, JeeX said:

re-tipe it - he was only copying it from another Bonus and forgot to change resistance into Strong against.

This Tutorial should be work - Take: "Strong Against X: %d%%" & btw - cmd_general part isnt so important.

Regards.

I know very well what he did and it`s just a copy/paste from the previous existing bonuses but it wasn`t about that.

The point was to use the correct words for that part.

Link to comment
Share on other sites

  • 1 year later...

Announcements



×
×
  • 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.