> 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:
flaid 2013-01-30 03:41:21 +00:00
parent 7baefc8b95
commit 2b434041a5
4 changed files with 58 additions and 71 deletions

View File

@ -11,7 +11,7 @@
// recover_weight_rate = Requires to be less than 50% weight // recover_weight_rate = Requires to be less than 50% weight
// water = Requires to be standing on a water cell // water = Requires to be standing on a water cell
// cart = Requires a Pushcart // cart = Requires a Pushcart
// riding = Requires to ride a Peco // riding = Requires to ride either a peco or a dragon
// falcon = Requires a Falcon // falcon = Requires a Falcon
// sight = Requires Sight skill activated // sight = Requires Sight skill activated
// hiding = Requires Hiding skill activated // hiding = Requires Hiding skill activated
@ -26,8 +26,9 @@
// poisonweapon = Requires to be under Poisoning Weapon. // poisonweapon = Requires to be under Poisoning Weapon.
// rollingcutter = Requires at least one Rotation Counter from Rolling Cutter. // rollingcutter = Requires at least one Rotation Counter from Rolling Cutter.
// elementalspirit = Requires to have an Elemental Spirit summoned. // elementalspirit = Requires to have an Elemental Spirit summoned.
// mh_fighting = eleanor fighthing mode // mh_fighting = Requires Eleanor fighthing mode
// mh_grappling = eleanor grappling 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ƒ…# 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# 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#

View File

@ -726,7 +726,7 @@ int inter_guild_sql_init(void)
castle_db = idb_alloc(DB_OPT_RELEASE_DATA); castle_db = idb_alloc(DB_OPT_RELEASE_DATA);
//Read exp file //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_func_list(guild_save_timer, "guild_save_timer");
add_timer(gettick() + 10000, guild_save_timer, 0, 0); add_timer(gettick() + 10000, guild_save_timer, 0, 0);

View File

@ -13059,7 +13059,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
} }
break; break;
case ST_RIDING: case ST_RIDING:
if(!pc_isriding(sd)) { if(!pc_isriding(sd) || !pc_isridingdragon(sd)) {
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0; return 0;
} }
@ -13121,45 +13121,30 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
break; break;
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0; return 0;
/**
* Rune Knight
**/
case ST_RIDINGDRAGON: case ST_RIDINGDRAGON:
if( !pc_isridingdragon(sd) ) { if( !pc_isridingdragon(sd) ) {
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0; return 0;
} }
break; break;
/**
* Wug
**/
case ST_WUG: case ST_WUG:
if( !pc_iswug(sd) ) { if( !pc_iswug(sd) ) {
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0; return 0;
} }
break; break;
/**
* Riding Wug
**/
case ST_RIDINGWUG: case ST_RIDINGWUG:
if( !pc_isridingwug(sd) ){ if( !pc_isridingwug(sd) ){
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0; return 0;
} }
break; break;
/**
* Mechanic
**/
case ST_MADO: case ST_MADO:
if( !pc_ismadogear(sd) ) { if( !pc_ismadogear(sd) ) {
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0; return 0;
} }
break; break;
/**
* Sorcerer
**/
case ST_ELEMENTALSPIRIT: case ST_ELEMENTALSPIRIT:
if(!sd->ed) { if(!sd->ed) {
clif_skill_fail(sd,skill_id,USESKILL_FAIL_EL_SUMMON,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_EL_SUMMON,0);
@ -13188,6 +13173,12 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 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) { 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); skill_split_atoi(split[9],skill_db[idx].ammo_qty);
if( strcmpi(split[10],"hiding")==0 ) skill_db[idx].state = ST_HIDING; 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],"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],"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],"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],"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],"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],"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],"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],"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],"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],"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],"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],"water") == 0 ) skill_db[idx].state = ST_WATER;
/** else if( strcmpi(split[10],"dragon") == 0 ) skill_db[idx].state = ST_RIDINGDRAGON;
* New States 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],"dragon")==0 ) skill_db[idx].state = ST_RIDINGDRAGON; else if( strcmpi(split[10],"mado") == 0 ) skill_db[idx].state = ST_MADO;
else if( strcmpi(split[10],"warg")==0 ) skill_db[idx].state = ST_WUG; else if( strcmpi(split[10],"elementalspirit") == 0 ) skill_db[idx].state = ST_ELEMENTALSPIRIT;
else if( strcmpi(split[10],"ridingwarg")==0 ) skill_db[idx].state = ST_RIDINGWUG; else if( strcmpi(split[10],"poisonweapon") == 0 ) skill_db[idx].state = ST_POISONINGWEAPON;
else if( strcmpi(split[10],"mado")==0 ) skill_db[idx].state = ST_MADO; else if( strcmpi(split[10],"rollingcutter") == 0 ) skill_db[idx].state = ST_ROLLINGCUTTER;
else if( strcmpi(split[10],"elementalspirit")==0 ) skill_db[idx].state = ST_ELEMENTALSPIRIT; else if( strcmpi(split[10],"mh_fighting") == 0 ) skill_db[idx].state = ST_MH_FIGHTING;
else if (strcmpi(split[10], "poisonweapon") == 0) skill_db[idx].state = ST_POISONINGWEAPON; else if( strcmpi(split[10],"mh_grappling") == 0 ) skill_db[idx].state = ST_MH_GRAPPLING;
else if (strcmpi(split[10], "rollingcutter") == 0) skill_db[idx].state = ST_ROLLINGCUTTER; else if( strcmpi(split[10],"peco") == 0 ) skill_db[idx].state = ST_PECO;
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;
/** /**
* Unknown or no state * Unknown or no state
**/ **/

View File

@ -392,9 +392,6 @@ enum {
ST_RECOV_WEIGHT_RATE, ST_RECOV_WEIGHT_RATE,
ST_MOVE_ENABLE, ST_MOVE_ENABLE,
ST_WATER, ST_WATER,
/**
* 3rd States
**/
ST_RIDINGDRAGON, ST_RIDINGDRAGON,
ST_WUG, ST_WUG,
ST_RIDINGWUG, ST_RIDINGWUG,
@ -404,6 +401,7 @@ enum {
ST_ROLLINGCUTTER, ST_ROLLINGCUTTER,
ST_MH_FIGHTING, ST_MH_FIGHTING,
ST_MH_GRAPPLING, ST_MH_GRAPPLING,
ST_PECO,
}; };
enum e_skill { enum e_skill {