Add Requiem weapon set

Added Requiem weapons
* Implemented two item bonuses bMagicAddRace2 and bIgnoreMdefRace2Rate.
Thanks to @secretdataz!
This commit is contained in:
Aleos 2016-05-08 08:53:03 -04:00
commit 62d9a9b040
8 changed files with 31 additions and 3 deletions

View File

@ -781,6 +781,7 @@
1441,Blue_Spear,Blue Spear,5,10,,1200,180,,3,1,0x00004000,56,2,2,3,100,1,4,{ bonus bDex,5; bonus bInt,5; bonus bMatk,170; },{},{}
1442,Ru_Gold_Spear,Ru Gold Spear,5,0,,1200,180,,3,2,0x00004000,56,2,2,3,120,1,4,{ bonus bStr,8; bonus bAgi,8; },{},{}
1443,Crimson_Spear,Crimson Spear,5,20,,900,90,,3,2,0x00000002,56,2,2,3,70,1,4,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); },{},{}
1446,Requiem_Spear,Requiem Spear,5,20,,1000,130,,3,,0x00004080,63,2,2,4,100,1,4,{ .@r = getrefine(); .@b = 40; bonus bUnbreakableWeapon,1; if(.@r>=5){ .@b += (.@r-5)*15+20; } bonus2 bAddRace2,RC2_BioLab,.@b; },{},{}
//===================================================================
// 2-Handed Spears
//===================================================================
@ -838,6 +839,7 @@
1495,TE_Woe_Lance,TE Woe Lance,5,0,,0,150,,3,0,0x00004082,63,2,34,3,40,1,5,{ bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Blind,3000; },{},{}
1496,Tanos_Two-Handed_Spear,Tanos Two-Handed Spear,5,10,,3750,250:50,,,1,0x00004082,63,2,34,4,120,1,5,{ bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus bAtkRate,5; bonus2 bHPLossRate,100,10000; },{},{}
1498,Crimson_Lance,Crimson Lance,5,20,,1750,175,,1,2,0x00000002,63,2,34,3,70,1,5,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); },{},{}
1499,Requiem_Lance,Requiem Lance,5,20,,1500,220,,3,,0x00004080,63,2,34,4,100,1,5,{ .@r = getrefine(); .@b = 40; .@c = 5; bonus bUnbreakableWeapon,1; if(.@r>=5){ .@b += (.@r-5)*15+30; .@c += (.@r-5); } bonus2 bAddRace2,RC2_BioLab,.@b; bonus2 bSubRace2,RC2_BioLab,.@c; },{},{}
//===================================================================
// Maces
//===================================================================
@ -1024,6 +1026,7 @@
1687,Beginner_Foxtail_Staff,Beginner Foxtail Staff,5,20,,100,40:15,,1,1,0x80000000,7,2,2,1,3,1,10,{ bonus bMaxHP,100; },{},{}
1690,Mysterious_Foxtail_Staff,Mysterious Foxtail Staff,5,20,,400,80:180,,1,3,0x80000000,7,2,2,2,60,1,10,{ .@r = getrefine(); bonus bMaxSP,10*(.@r/3)+50; bonus bMatk,10*(.@r/3); },{},{}
1694,Foxtail_Model,Foxtail Model,5,20,,300,150,,1,3,0x80000000,7,2,2,2,60,1,10,{ bonus bLongAtkRate,8; bonus bMaxHP,100; .@r = getrefine(); bonus bDex,(.@r/3)*2; bonus bMaxSP,(.@r/3)*10; },{},{}
1698,Requiem_Arc_Wand,Requiem Arc Wand,5,20,,500,80:145,,1,,0xFFFFFFFF,63,2,2,4,100,1,10,{ .@r = getrefine(); .@b = 40; if(.@r>=5){ .@b += (.@r-5)*15+20; } bonus2 bMagicAddRace2,RC2_BioLab,.@b; },{},{}
1699,Paradise_Foxtail_Staff_I,Eden Group Foxtail I,5,20,,0,120:135,,1,0,0x80000000,7,2,2,2,26,0,10,{ bonus bDex,3; bonus bInt,3; bonus bLongAtkRate,5; },{},{}
//===================================================================
// Bows
@ -1148,6 +1151,7 @@
1837,Iron_nail,Iron Nail,5,10,,1500,100,,,1,0x00008100,63,2,2,3,50,1,12,{ bonus bAspdRate,-5; bonus bAspdRate,((getrefine()+1)/2); },{},{}
1838,Half_BF_Knuckle1,Half BF Knuckle1,5,20,,0,30,,1,0,0x00008100,63,2,2,3,80,1,12,{ bonus bStr,2; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus2 bIgnoreDefRaceRate,RC_Player,10; bonus4 bAutoSpell,"CH_SOULCOLLECT",1,5,0; bonus bUnbreakableWeapon,1; },{},{}
1839,Crimson_Knuckles,Crimson Knuckles,5,20,,1000,100,,1,2,0x00008100,63,2,2,3,70,1,12,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bUnbreakableWeapon,1; },{},{}
1840,Requiem_Knuckle,Requiem Knuckle,5,20,,500,150:100,,1,0,0x00008100,63,2,2,4,100,1,12,{ .@r = getrefine(); .@b = 40; if(.@r>=5){ .@b += (.@r-5)*15+20; } bonus2 bAddRace2,RC2_BioLab,.@b; },{},{}
//===================================================================
// Instruments
//===================================================================
@ -1192,6 +1196,7 @@
1938,Infinity_Violin,Infinity Violin,5,10,,500,150,,2,1,0x00080000,63,1,2,4,100,1,13,{},{},{}
1939,Crimson_Violin,Crimson Violin,5,20,,800,80,,2,2,0x00080000,63,1,2,3,70,1,13,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); },{},{}
1940,Trumpet_Shell,Trumpet Shell,5,0,,600,125,,1,1,0x00080000,56,1,2,4,130,1,13,{ .@r = getrefine(); bonus bDex,.@r; bonus bInt,.@r; .@per = ((.@r > 9) ? 40 : ((.@r > 7) ? 20 : ((.@r > 5) ? 10 : 0))); bonus2 bSkillAtk,"WM_REVERBERATION",.@per; bonus2 bVariableCastrate,"WM_REVERBERATION",-.@per; },{},{}
1942,Requiem_Violin,Requiem Violin,5,20,,500,160:120,,1,,0x00080000,63,1,2,4,100,1,13,{ .@r = getrefine(); .@b = 40; bonus bUnbreakableWeapon,1; if(.@r>=5){ .@b += (.@r-5)*15+20; } if(.@r>=7) bonus2 bSkillAtk,"CG_ARROWVULCAN",200; bonus2 bAddRace2,RC2_BioLab,.@b; },{},{}
//===================================================================
// Whips
//===================================================================
@ -1272,6 +1277,7 @@
2025,Crimson_Two-Handed_Staff,Crimson Two-Handed Staff,5,20,,1000,100,,1,2,0x000014,63,2,34,3,70,1,23,{ .@r = getrefine(); bonus bInt,5; bonus bMatk,150+((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); },{},{}
2026,Staff_of_Vicious_Mind,Staff of Vicious Mind,5,20,,1000,100:200,,1,1,0x00810204,63,2,34,4,160,1,23,{ bonus bMatk,pow(min(getrefine(),15),2); bonus bInt,6; bonus bUnbreakableWeapon,1; },{},{}
2027,Sunflower_Kid,Sunflower Kid,5,10,,1500,150,,,2,0x00000200,40,2,34,4,170,1,23,{ bonus bMatk,320; bonus bInt,5; .@r = getrefine(); bonus bMatkRate,(.@r/2); bonus bDelayrate,(.@r*-1); bonus bUnbreakableWeapon,1; },{},{}
2032,Requiem_Wizardry_Staff,Requiem Wizardry Staff,5,20,,500,100:230,,1,,0xFFFFFFFF,63,2,2,4,100,1,10,{ .@r = getrefine(); .@b = 40; .@c = 5; if(.@r>=5){ .@b += (.@r-5)*15+20; .@c += .@r-5; } bonus2 bMagicAddRace2,RC2_BioLab,.@b; bonus2 bSubRace2,RC2_BioLab,.@c; bonus2 bIgnoreMdefRace2Rate,RC2_BioLab,(.@r-5)*10; },{},{}
//===================================================================
// Shields
//===================================================================

View File

@ -21,3 +21,6 @@
8,1906,1909,1914,1915
// Treasure Chests
9,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1938,1939,1940,1941,1942,1943,1944,1945,1946
// Bio Labs
// TODO : Monsters in lhz_dun_n not implemented yet. [secretdataz]
10,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241

View File

@ -245,6 +245,7 @@ bonus2 bAddMDefMonster,mid,x; +x% magical damage reduction against monster
bonus2 bAddRace2,mr,x; +x% damage against monster race mr
bonus2 bSubRace2,mr,x; +x% damage reduction against monster race mr
bonus2 bMagicAddRace2,mr,x; +x% magic damage against monster race mr
bonus2 bSubSkill,sk,n; Reduces n% damage received from skill sk
@ -272,6 +273,7 @@ bonus2 bIgnoreDefRaceRate,r,n; Disregard n% of the target's DEF if the target
bonus bIgnoreDefClass,c; Disregard DEF against enemies of class c
bonus bIgnoreMDefRace,r; Disregard MDEF against enemies of race r
bonus2 bIgnoreMdefRaceRate,r,n; Disregard n% of the target's MDEF if the target belongs to race r
bonus2 bIgnoreMdefRace2Rate,mr,n; Disregard n% of the target's MDEF if the target belongs to monster race mr
bonus bIgnoreMDefEle,e; Disregard MDEF against enemies of element e
bonus2 bIgnoreMdefClassRate,c,n; Disregard n% of the target's MDEF if the target belongs to class c

View File

@ -570,6 +570,7 @@ int battle_calc_cardfix(int attack_type, struct block_list *src, struct block_li
sstatus = status_get_status_data(src);
tstatus = status_get_status_data(target);
s_race2 = status_get_race2(src);
t_race2 = status_get_race2(target);
s_defele = (tsd) ? (enum e_element)status_get_element(src) : ELE_NONE;
//Official servers apply the cardfix value on a base of 1000 and round down the reduction/increase
@ -579,7 +580,7 @@ int battle_calc_cardfix(int attack_type, struct block_list *src, struct block_li
case BF_MAGIC:
// Affected by attacker ATK bonuses
if( sd && !(nk&NK_NO_CARDFIX_ATK) ) {
cardfix = cardfix * (100 + sd->magic_addrace[tstatus->race] + sd->magic_addrace[RC_ALL]) / 100;
cardfix = cardfix * (100 + sd->magic_addrace[tstatus->race] + sd->magic_addrace[RC_ALL] + sd->magic_addrace2[t_race2]) / 100;
if( !(nk&NK_NO_ELEFIX) ) { // Affected by Element modifier bonuses
cardfix = cardfix * (100 + sd->magic_addele[tstatus->def_ele] + sd->magic_addele[ELE_ALL] +
sd->magic_addele_script[tstatus->def_ele] + sd->magic_addele_script[ELE_ALL]) / 100;
@ -643,7 +644,6 @@ int battle_calc_cardfix(int attack_type, struct block_list *src, struct block_li
break;
case BF_WEAPON:
t_race2 = status_get_race2(target);
// Affected by attacker ATK bonuses
if( sd && !(nk&NK_NO_CARDFIX_ATK) && (left&2) ) {
short cardfix_ = 1000;
@ -6133,6 +6133,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
if(sd) {
i = sd->ignore_mdef_by_race[tstatus->race] + sd->ignore_mdef_by_race[RC_ALL];
i += sd->ignore_mdef_by_class[tstatus->class_] + sd->ignore_mdef_by_class[CLASS_ALL];
i += sd->ignore_mdef_by_race2[status_get_race2(target)];
if (i)
{
if (i > 100) i = 100;

View File

@ -296,6 +296,7 @@ enum e_race2 {
RC2_GVG,
RC2_BATTLEFIELD,
RC2_TREASURE,
RC2_BIOLAB,
RC2_MAX
};
@ -464,7 +465,7 @@ enum _sp {
SP_WEAPON_COMA_CLASS, SP_IGNORE_MDEF_CLASS_RATE, SP_EXP_ADDCLASS, SP_ADD_CLASS_DROP_ITEM, //2067-2070
SP_ADD_CLASS_DROP_ITEMGROUP, SP_ADDMAXWEIGHT, SP_ADD_ITEMGROUP_HEAL_RATE, // 2071-2073
SP_HP_VANISH_RACE_RATE, SP_SP_VANISH_RACE_RATE, SP_ABSORB_DMG_MAXHP, SP_SUB_SKILL, SP_SUBDEF_ELE, // 2074-2078
SP_STATE_NORECOVER_RACE, SP_CRITICAL_RANGEATK, // 2079-2080
SP_STATE_NORECOVER_RACE, SP_CRITICAL_RANGEATK, SP_MAGIC_ADDRACE2, SP_IGNORE_MDEF_RACE2_RATE // 2079-2082
};
enum _look {

View File

@ -3673,6 +3673,16 @@ void pc_bonus2(struct map_session_data *sd,int type,int type2,int val)
sd->coma_race[type2] += val;
sd->special_state.bonus_coma = 1;
break;
case SP_MAGIC_ADDRACE2: // bonus2 bMagicAddRace2,mr,n;
PC_BONUS_CHK_RACE2(type2, SP_MAGIC_ADDRACE2);
if(sd->state.lr_flag != 2)
sd->magic_addrace2[type2] += val;
break;
case SP_IGNORE_MDEF_RACE2_RATE: //bonus2 bIgnoreMdefRace2Rate,mr,n;
PC_BONUS_CHK_RACE2(type2, SP_IGNORE_MDEF_RACE2);
if (sd->state.lr_flag != 2)
sd->ignore_mdef_by_race2[type2] += val;
break;
default:
ShowWarning("pc_bonus2: unknown type %d %d %d!\n",type,type2,val);
break;

View File

@ -366,6 +366,8 @@ struct map_session_data {
int ignore_mdef_by_class[CLASS_MAX];
int ignore_def_by_race[RC_MAX];
short sp_gain_race[RC_MAX];
int magic_addrace2[RC2_MAX];
int ignore_mdef_by_race2[RC2_MAX];
// zeroed arrays end here.
// zeroed structures start here

View File

@ -656,6 +656,8 @@
script_set_constant("bSubDefEle",SP_SUBDEF_ELE,false);
script_set_constant("bStateNoRecoverRace",SP_STATE_NORECOVER_RACE,false);
script_set_constant("bCriticalLong",SP_CRITICAL_RANGEATK,false);
script_set_constant("bMagicAddRace2", SP_MAGIC_ADDRACE2, false);
script_set_constant("bIgnoreMdefRace2Rate", SP_IGNORE_MDEF_RACE2_RATE, false);
/* equip positions */
export_constant(EQI_HEAD_TOP);
@ -2418,6 +2420,7 @@
export_constant(RC2_GVG);
export_constant(RC2_BATTLEFIELD);
export_constant(RC2_TREASURE);
export_constant(RC2_BIOLAB);
/* classes */
export_constant(CLASS_NORMAL);