SG LOV and PARRYING:
Go to your trunk/src/map/pc.c and look for:
for( i = 0; i < MAX_SKILL; i++ ) {
if( sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED ) //Don't touch these
sd->status.skill[i].id = 0; //First clear skills.
/* permanent skills that must be re-checked */
if( sd->status.skill[i].flag == SKILL_FLAG_PERM_GRANTED ) {
switch( i ) {
case NV_TRICKDEAD:
if( (sd->class_&MAPID_UPPERMASK) != MAPID_NOVICE ) {
sd->status.skill[i].id = 0;
sd->status.skill[i].lv = 0;
sd->status.skill[i].flag = SKILL_FLAG_PERMANENT;
}
break;
}
}
}
Add this Lines below:
if( sd->sc.count && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_STAR)
{
sd->status.skill[85].id = 85;
sd->status.skill[85].lv = 10;
sd->status.skill[85].flag = SKILL_FLAG_PERMANENT;
sd->status.skill[356].id = 356;
sd->status.skill[356].lv = 10;
sd->status.skill[356].flag = SKILL_FLAG_PERMANENT;
}
LK PARRYING USING 1 Hand:
Look for this at the trunk/src/map/skill.c
bool skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv) {
struct skill_condition require;
struct status_data *status;
int i;
int index[MAX_SKILL_ITEM_REQUIRE];
Then Add this line below:
struct status_change *sc = &sd->sc;
2nd step:
Look for this at trunk/src/map/skill.c:
if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) {
there are 2 same lines of it and change it to this:
if( require.weapon && !(pc_check_weapontype(sd,require.weapon) || (skill_id = LK_PARRYING && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_KNIGHT && sd->status.weapon == W_1HSWORD) || (skill_id = LK_PARRYING && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_STAR && sd->status.weapon == W_BOOK) ) ){