Let me start by saying I have 0 background in coding, but have spent the past couple days digging through the source files in map folder.
I cannot find a way to allow/give left hand damage via dual wielding to other classes other than the assassin tree.
In battle.c I've edited (to include thief skills for knight and ninja skills for rogue):
else if(is_attack_right_handed(src, skill_id) && is_attack_left_handed(src, skill_id)) { //Dual-wield
if (wd.damage) {
if( (sd->class_&MAPID_BASEMASK) == MAPID_THIEF || (sd->class_&MAPID_UPPERMASK) == MAPID_KNIGHT ) {
skill = pc_checkskill(sd,AS_RIGHT);
ATK_RATER(wd.damage, 50 + (skill * 10))
}
else if(sd->class_ == MAPID_KAGEROUOBORO || (sd->class_&MAPID_UPPERMASK) == MAPID_ROGUE) {
skill = pc_checkskill(sd,KO_RIGHT);
ATK_RATER(wd.damage, 70 + (skill * 10))
in pc.c I've edited (to include Knight and Rogue's ability to equip weapon in left hand):
ep = sd->inventory_data[n]->equip;
if(sd->inventory_data[n]->look == W_DAGGER ||
sd->inventory_data[n]->look == W_1HSWORD ||
sd->inventory_data[n]->look == W_1HAXE) {
if(ep == EQP_HAND_R && (pc_checkskill(sd,AS_LEFT) > 0 || (sd->class_&MAPID_UPPERMASK) == MAPID_ASSASSIN || (sd->class_&MAPID_UPPERMASK) == MAPID_KNIGHT || (sd->class_&MAPID_UPPERMASK) == MAPID_ROGUE ||
(sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO))//Kagerou and Oboro can dual wield daggers. [Rytech]
return EQP_ARMS;
I also checked status.c but it only has aspd calculations:
#ifdef RENEWAL_ASPD
short mod = -1;
switch( sd->weapontype2 ) { // Adjustment for dual weilding
case W_DAGGER: mod = 0; break; // 0, 1, 1
case W_1HSWORD:
case W_1HAXE: mod = 1;
if( (sd->class_&MAPID_THIRDMASK) == MAPID_GUILLOTINE_CROSS ) // 0, 2, 3
mod = sd->weapontype2 / W_1HSWORD + W_1HSWORD / sd->weapontype2 ;
}
amotion = ( sd->status.weapon < MAX_WEAPON_TYPE && mod < 0 )
? (job_info[classidx].aspd_base[sd->status.weapon]) // Single weapon
: ((job_info[classidx].aspd_base[sd->weapontype2] // Dual-wield
+ job_info[classidx].aspd_base[sd->weapontype2]) * 6 / 10 + 10 * mod
- job_info[classidx].aspd_base[sd->weapontype2]
+ job_info[classidx].aspd_base[sd->weapontype1]);
if ( sd->status.shield )
amotion += ( 2000 - job_info[classidx].aspd_base[W_FIST] ) +
( job_info[classidx].aspd_base[MAX_WEAPON_TYPE] - 2000 );
#else
// Base weapon delay
amotion = (sd->status.weapon < MAX_WEAPON_TYPE)
? (job_info[classidx].aspd_base[sd->status.weapon]) // Single weapon
: (job_info[classidx].aspd_base[sd->weapontype1] + job_info[classidx].aspd_base[sd->weapontype2])*7/10; // Dual-wield
After chaning all this, if I equip a sword in my left and right hand for knight it still only does 1 hit with the slowed aspd. I am trying to get 2 hits, even if the sprite still only has 1 swing and 1 sword.
Any help is appreciated. Thank you in advance.