> Hercules merges:
* e15fe61: Brandish spear can now be used by rune knights riding dragons. Made riding state check for both peco and dragon, created a new state for peco-only so that the functionality isn't lost. (bugreport:6305) * ca1eb76: Char server displaying extra '/' in exp_guild path. (bugreport:7227) git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17110 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
7baefc8b95
commit
2b434041a5
@ -11,7 +11,7 @@
|
||||
// recover_weight_rate = Requires to be less than 50% weight
|
||||
// water = Requires to be standing on a water cell
|
||||
// cart = Requires a Pushcart
|
||||
// riding = Requires to ride a Peco
|
||||
// riding = Requires to ride either a peco or a dragon
|
||||
// falcon = Requires a Falcon
|
||||
// sight = Requires Sight skill activated
|
||||
// hiding = Requires Hiding skill activated
|
||||
@ -26,8 +26,9 @@
|
||||
// poisonweapon = Requires to be under Poisoning Weapon.
|
||||
// rollingcutter = Requires at least one Rotation Counter from Rolling Cutter.
|
||||
// elementalspirit = Requires to have an Elemental Spirit summoned.
|
||||
// mh_fighting = eleanor fighthing mode
|
||||
// mh_grappling = eleanor grappling mode
|
||||
// mh_fighting = Requires Eleanor fighthing mode
|
||||
// mh_grappling = Requires Eleanor grappling mode
|
||||
// peco = Requires riding a peco
|
||||
|
||||
5,0,0,8:8:8:8:8:15:15:15:15:15,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SM_BASH#ƒoƒbƒVƒ…#
|
||||
6,0,0,4:5:6:7:8:9:10:11:12:13,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SM_PROVOKE#ƒvƒ<76>ƒ{ƒbƒN#
|
||||
|
@ -726,7 +726,7 @@ int inter_guild_sql_init(void)
|
||||
castle_db = idb_alloc(DB_OPT_RELEASE_DATA);
|
||||
|
||||
//Read exp file
|
||||
sv_readdb("db/"DBPATH, "exp_guild.txt", ',', 1, 1, 100, exp_guild_parse_row);
|
||||
sv_readdb("db", DBPATH"exp_guild.txt", ',', 1, 1, 100, exp_guild_parse_row);
|
||||
|
||||
add_timer_func_list(guild_save_timer, "guild_save_timer");
|
||||
add_timer(gettick() + 10000, guild_save_timer, 0, 0);
|
||||
|
116
src/map/skill.c
116
src/map/skill.c
@ -13059,7 +13059,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
|
||||
}
|
||||
break;
|
||||
case ST_RIDING:
|
||||
if(!pc_isriding(sd)) {
|
||||
if(!pc_isriding(sd) || !pc_isridingdragon(sd)) {
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
@ -13121,73 +13121,64 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
|
||||
break;
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
/**
|
||||
* Rune Knight
|
||||
**/
|
||||
case ST_RIDINGDRAGON:
|
||||
if( !pc_isridingdragon(sd) ) {
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
/**
|
||||
* Wug
|
||||
**/
|
||||
case ST_WUG:
|
||||
if( !pc_iswug(sd) ) {
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
/**
|
||||
* Riding Wug
|
||||
**/
|
||||
case ST_RIDINGWUG:
|
||||
if( !pc_isridingwug(sd) ){
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
/**
|
||||
* Mechanic
|
||||
**/
|
||||
case ST_MADO:
|
||||
if( !pc_ismadogear(sd) ) {
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
/**
|
||||
* Sorcerer
|
||||
**/
|
||||
case ST_ELEMENTALSPIRIT:
|
||||
if(!sd->ed) {
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_EL_SUMMON,0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case ST_POISONINGWEAPON:
|
||||
if (!(sc && sc->data[SC_POISONINGWEAPON])) {
|
||||
clif_skill_fail(sd, skill_id, USESKILL_FAIL_GC_POISONINGWEAPON, 0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case ST_ROLLINGCUTTER:
|
||||
if (!(sc && sc->data[SC_ROLLINGCUTTER])) {
|
||||
clif_skill_fail(sd, skill_id, USESKILL_FAIL_CONDITION, 0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case ST_MH_FIGHTING:
|
||||
if (!(sc && sc->data[SC_STYLE_CHANGE] && sc->data[SC_STYLE_CHANGE]->val2 == MH_MD_FIGHTING)){
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
case ST_MH_GRAPPLING:
|
||||
if (!(sc && sc->data[SC_STYLE_CHANGE] && sc->data[SC_STYLE_CHANGE]->val2 == MH_MD_GRAPPLING)){
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
case ST_POISONINGWEAPON:
|
||||
if (!(sc && sc->data[SC_POISONINGWEAPON])) {
|
||||
clif_skill_fail(sd, skill_id, USESKILL_FAIL_GC_POISONINGWEAPON, 0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case ST_ROLLINGCUTTER:
|
||||
if (!(sc && sc->data[SC_ROLLINGCUTTER])) {
|
||||
clif_skill_fail(sd, skill_id, USESKILL_FAIL_CONDITION, 0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case ST_MH_FIGHTING:
|
||||
if (!(sc && sc->data[SC_STYLE_CHANGE] && sc->data[SC_STYLE_CHANGE]->val2 == MH_MD_FIGHTING)){
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
case ST_MH_GRAPPLING:
|
||||
if (!(sc && sc->data[SC_STYLE_CHANGE] && sc->data[SC_STYLE_CHANGE]->val2 == MH_MD_GRAPPLING)){
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
case ST_PECO:
|
||||
if(!pc_isriding(sd)) {
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if(require.mhp > 0 && get_percentage(status->hp, status->max_hp) > require.mhp) {
|
||||
@ -17606,32 +17597,29 @@ static bool skill_parse_row_requiredb(char* split[], int columns, int current)
|
||||
}
|
||||
skill_split_atoi(split[9],skill_db[idx].ammo_qty);
|
||||
|
||||
if( strcmpi(split[10],"hiding")==0 ) skill_db[idx].state = ST_HIDING;
|
||||
else if( strcmpi(split[10],"cloaking")==0 ) skill_db[idx].state = ST_CLOAKING;
|
||||
else if( strcmpi(split[10],"hidden")==0 ) skill_db[idx].state = ST_HIDDEN;
|
||||
else if( strcmpi(split[10],"riding")==0 ) skill_db[idx].state = ST_RIDING;
|
||||
else if( strcmpi(split[10],"falcon")==0 ) skill_db[idx].state = ST_FALCON;
|
||||
else if( strcmpi(split[10],"cart")==0 ) skill_db[idx].state = ST_CART;
|
||||
else if( strcmpi(split[10],"shield")==0 ) skill_db[idx].state = ST_SHIELD;
|
||||
else if( strcmpi(split[10],"sight")==0 ) skill_db[idx].state = ST_SIGHT;
|
||||
else if( strcmpi(split[10],"explosionspirits")==0 ) skill_db[idx].state = ST_EXPLOSIONSPIRITS;
|
||||
else if( strcmpi(split[10],"cartboost")==0 ) skill_db[idx].state = ST_CARTBOOST;
|
||||
else if( strcmpi(split[10],"recover_weight_rate")==0 ) skill_db[idx].state = ST_RECOV_WEIGHT_RATE;
|
||||
else if( strcmpi(split[10],"move_enable")==0 ) skill_db[idx].state = ST_MOVE_ENABLE;
|
||||
else if( strcmpi(split[10],"water")==0 ) skill_db[idx].state = ST_WATER;
|
||||
/**
|
||||
* New States
|
||||
**/
|
||||
else if( strcmpi(split[10],"dragon")==0 ) skill_db[idx].state = ST_RIDINGDRAGON;
|
||||
else if( strcmpi(split[10],"warg")==0 ) skill_db[idx].state = ST_WUG;
|
||||
else if( strcmpi(split[10],"ridingwarg")==0 ) skill_db[idx].state = ST_RIDINGWUG;
|
||||
else if( strcmpi(split[10],"mado")==0 ) skill_db[idx].state = ST_MADO;
|
||||
else if( strcmpi(split[10],"elementalspirit")==0 ) skill_db[idx].state = ST_ELEMENTALSPIRIT;
|
||||
else if (strcmpi(split[10], "poisonweapon") == 0) skill_db[idx].state = ST_POISONINGWEAPON;
|
||||
else if (strcmpi(split[10], "rollingcutter") == 0) skill_db[idx].state = ST_ROLLINGCUTTER;
|
||||
else if (strcmpi(split[10], "mh_fighting") == 0) skill_db[idx].state = ST_MH_FIGHTING;
|
||||
else if (strcmpi(split[10], "mh_grappling") == 0) skill_db[idx].state = ST_MH_GRAPPLING;
|
||||
|
||||
if( strcmpi(split[10],"hiding") == 0 ) skill_db[idx].state = ST_HIDING;
|
||||
else if( strcmpi(split[10],"cloaking") == 0 ) skill_db[idx].state = ST_CLOAKING;
|
||||
else if( strcmpi(split[10],"hidden") == 0 ) skill_db[idx].state = ST_HIDDEN;
|
||||
else if( strcmpi(split[10],"riding") == 0 ) skill_db[idx].state = ST_RIDING;
|
||||
else if( strcmpi(split[10],"falcon") == 0 ) skill_db[idx].state = ST_FALCON;
|
||||
else if( strcmpi(split[10],"cart") == 0 ) skill_db[idx].state = ST_CART;
|
||||
else if( strcmpi(split[10],"shield") == 0 ) skill_db[idx].state = ST_SHIELD;
|
||||
else if( strcmpi(split[10],"sight") == 0 ) skill_db[idx].state = ST_SIGHT;
|
||||
else if( strcmpi(split[10],"explosionspirits") == 0 ) skill_db[idx].state = ST_EXPLOSIONSPIRITS;
|
||||
else if( strcmpi(split[10],"cartboost") == 0 ) skill_db[idx].state = ST_CARTBOOST;
|
||||
else if( strcmpi(split[10],"recover_weight_rate") == 0 ) skill_db[idx].state = ST_RECOV_WEIGHT_RATE;
|
||||
else if( strcmpi(split[10],"move_enable") == 0 ) skill_db[idx].state = ST_MOVE_ENABLE;
|
||||
else if( strcmpi(split[10],"water") == 0 ) skill_db[idx].state = ST_WATER;
|
||||
else if( strcmpi(split[10],"dragon") == 0 ) skill_db[idx].state = ST_RIDINGDRAGON;
|
||||
else if( strcmpi(split[10],"warg") == 0 ) skill_db[idx].state = ST_WUG;
|
||||
else if( strcmpi(split[10],"ridingwarg") == 0 ) skill_db[idx].state = ST_RIDINGWUG;
|
||||
else if( strcmpi(split[10],"mado") == 0 ) skill_db[idx].state = ST_MADO;
|
||||
else if( strcmpi(split[10],"elementalspirit") == 0 ) skill_db[idx].state = ST_ELEMENTALSPIRIT;
|
||||
else if( strcmpi(split[10],"poisonweapon") == 0 ) skill_db[idx].state = ST_POISONINGWEAPON;
|
||||
else if( strcmpi(split[10],"rollingcutter") == 0 ) skill_db[idx].state = ST_ROLLINGCUTTER;
|
||||
else if( strcmpi(split[10],"mh_fighting") == 0 ) skill_db[idx].state = ST_MH_FIGHTING;
|
||||
else if( strcmpi(split[10],"mh_grappling") == 0 ) skill_db[idx].state = ST_MH_GRAPPLING;
|
||||
else if( strcmpi(split[10],"peco") == 0 ) skill_db[idx].state = ST_PECO;
|
||||
/**
|
||||
* Unknown or no state
|
||||
**/
|
||||
|
@ -392,9 +392,6 @@ enum {
|
||||
ST_RECOV_WEIGHT_RATE,
|
||||
ST_MOVE_ENABLE,
|
||||
ST_WATER,
|
||||
/**
|
||||
* 3rd States
|
||||
**/
|
||||
ST_RIDINGDRAGON,
|
||||
ST_WUG,
|
||||
ST_RIDINGWUG,
|
||||
@ -404,6 +401,7 @@ enum {
|
||||
ST_ROLLINGCUTTER,
|
||||
ST_MH_FIGHTING,
|
||||
ST_MH_GRAPPLING,
|
||||
ST_PECO,
|
||||
};
|
||||
|
||||
enum e_skill {
|
||||
|
Loading…
x
Reference in New Issue
Block a user