Renamed struct 'skill' to 's_skill' to remove naming collisions.
Added defines for mercenary skill ranges. Added a mapping of mercenary skills to the skill db (700-799 atm). git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13012 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
6fd34c5052
commit
582c36c11e
@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
|
||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||
|
||||
2008/07/29
|
||||
* Renamed struct 'skill' to 's_skill' to remove naming collisions.
|
||||
* Added defines for mercenary skill ranges.
|
||||
* Added a mapping of mercenary skills to the skill db (700-799 atm).
|
||||
* Fixed Sql object not initializing default values properly.
|
||||
Fixed Sql_Free producing timer deallocation errors when called
|
||||
without first establishing a database connection.
|
||||
|
@ -886,7 +886,7 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
|
||||
char point_map[MAP_NAME_LENGTH_EXT];
|
||||
struct point tmp_point;
|
||||
struct item tmp_item;
|
||||
struct skill tmp_skill;
|
||||
struct s_skill tmp_skill;
|
||||
struct s_friend tmp_friend;
|
||||
#ifdef HOTKEY_SAVING
|
||||
struct hotkey tmp_hotkey;
|
||||
|
@ -30,7 +30,7 @@
|
||||
#define MAX_ZENY 1000000000
|
||||
#define MAX_FAME 1000000000
|
||||
#define MAX_CART 100
|
||||
#define MAX_SKILL 1100 // Bumped to 1100 for new quest skills, will need to further increase one day... [DracoRPG]
|
||||
#define MAX_SKILL 1020
|
||||
#define GLOBAL_REG_NUM 96
|
||||
#define ACCOUNT_REG_NUM 64
|
||||
#define ACCOUNT_REG2_NUM 16
|
||||
@ -104,6 +104,10 @@
|
||||
#define MAIL_TITLE_LENGTH 40
|
||||
#define MAIL_BODY_LENGTH 200
|
||||
|
||||
//Mercenary System
|
||||
#define MC_SKILLBASE 8201
|
||||
#define MAX_MERCSKILL 37
|
||||
|
||||
enum item_types {
|
||||
IT_HEALING = 0,
|
||||
IT_UNKNOWN, //1
|
||||
@ -157,7 +161,7 @@ struct point {
|
||||
short x,y;
|
||||
};
|
||||
|
||||
struct skill {
|
||||
struct s_skill {
|
||||
unsigned short id,lv,flag;
|
||||
};
|
||||
|
||||
@ -216,7 +220,7 @@ struct s_homunculus { //[orn]
|
||||
int hp,max_hp,sp,max_sp;
|
||||
unsigned int intimacy; //[orn]
|
||||
short hunger;
|
||||
struct skill hskill[MAX_HOMUNSKILL]; //albator
|
||||
struct s_skill hskill[MAX_HOMUNSKILL]; //albator
|
||||
short skillpts;
|
||||
short level;
|
||||
unsigned int exp;
|
||||
@ -280,7 +284,7 @@ struct mmo_charstatus {
|
||||
struct point last_point,save_point,memo_point[MAX_MEMOPOINTS];
|
||||
struct item inventory[MAX_INVENTORY],cart[MAX_CART];
|
||||
struct storage_data storage;
|
||||
struct skill skill[MAX_SKILL];
|
||||
struct s_skill skill[MAX_SKILL];
|
||||
|
||||
struct s_friend friends[MAX_FRIENDS]; //New friend system [Skotlex]
|
||||
#ifdef HOTKEY_SAVING
|
||||
|
@ -836,7 +836,7 @@ int merc_hom_shuffle(struct homun_data *hd)
|
||||
struct map_session_data *sd;
|
||||
int lv, i, skillpts;
|
||||
unsigned int exp;
|
||||
struct skill b_skill[MAX_HOMUNSKILL];
|
||||
struct s_skill b_skill[MAX_HOMUNSKILL];
|
||||
|
||||
if (!merc_is_hom_active(hd))
|
||||
return 0;
|
||||
|
@ -38,11 +38,14 @@
|
||||
|
||||
|
||||
#define SKILLUNITTIMER_INTERVAL 100
|
||||
//Guild Skills are shifted to these to make them stick into the skill array.
|
||||
|
||||
// ranges reserved for mapping skill ids to skilldb offsets
|
||||
#define GD_SKILLRANGEMIN 900
|
||||
#define GD_SKILLRANGEMAX GD_SKILLRANGEMIN+MAX_GUILDSKILL
|
||||
#define HM_SKILLRANGEMIN 800
|
||||
#define HM_SKILLRANGEMAX HM_SKILLRANGEMIN+MAX_HOMUNSKILL
|
||||
#define MC_SKILLRANGEMIN 700
|
||||
#define MC_SKILLRANGEMAX MC_SKILLRANGEMIN+MAX_MERCSKILL
|
||||
|
||||
static struct eri *skill_unit_ers = NULL; //For handling skill_unit's [Skotlex]
|
||||
static struct eri *skill_timer_ers = NULL; //For handling skill_timerskills [Skotlex]
|
||||
@ -73,17 +76,23 @@ int skill_name2id(const char* name)
|
||||
/// Returns the skill's array index, or 0 (Unknown Skill).
|
||||
int skill_get_index( int id )
|
||||
{
|
||||
// avoid ranges reserved for mapping guild/homun skills
|
||||
if( id >= GD_SKILLRANGEMIN && id <= GD_SKILLRANGEMAX )
|
||||
return 0;
|
||||
if( id >= HM_SKILLRANGEMIN && id <= HM_SKILLRANGEMAX )
|
||||
// avoid ranges reserved for mapping guild/homun/mercenary skills
|
||||
if( id >= GD_SKILLRANGEMIN && id <= GD_SKILLRANGEMAX
|
||||
|| id >= HM_SKILLRANGEMIN && id <= HM_SKILLRANGEMAX
|
||||
|| id >= MC_SKILLRANGEMIN && id <= MC_SKILLRANGEMAX )
|
||||
return 0;
|
||||
|
||||
// map skill number to skill id
|
||||
// map skill id to skill db index
|
||||
if( id >= GD_SKILLBASE )
|
||||
id = GD_SKILLRANGEMIN + id - GD_SKILLBASE;
|
||||
else
|
||||
if( id >= HM_SKILLBASE )
|
||||
id = HM_SKILLRANGEMIN + id - HM_SKILLBASE;
|
||||
else
|
||||
if( id >= MC_SKILLBASE )
|
||||
id = MC_SKILLRANGEMIN + id - MC_SKILLBASE;
|
||||
else
|
||||
; // identity
|
||||
|
||||
// validate result
|
||||
if( id <= 0 || id >= MAX_SKILL_DB )
|
||||
@ -10791,14 +10800,14 @@ static bool skill_parse_row_skilldb(char* split[], int columns, int current)
|
||||
{// id,range,hit,inf,element,nk,splash,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count,name,description
|
||||
int id = atoi(split[0]);
|
||||
int i;
|
||||
if( id >= GD_SKILLRANGEMIN && id <= GD_SKILLRANGEMAX ) {
|
||||
ShowWarning("skill_parse_row_skilldb: Skill id %d is forbidden (interferes with guild skill mapping)!\n");
|
||||
return false;
|
||||
}
|
||||
if( id >= HM_SKILLRANGEMIN && id <= HM_SKILLRANGEMAX ) {
|
||||
ShowWarning("skill_parse_row_skilldb: Skill id %d is forbidden (interferes with homunculus skill mapping)!\n");
|
||||
if( id >= GD_SKILLRANGEMIN && id <= GD_SKILLRANGEMAX
|
||||
|| id >= HM_SKILLRANGEMIN && id <= HM_SKILLRANGEMAX
|
||||
|| id >= MC_SKILLRANGEMIN && id <= MC_SKILLRANGEMAX )
|
||||
{
|
||||
ShowWarning("skill_parse_row_skilldb: Skill id %d is forbidden (interferes with guild/homun/mercenary skill mapping)!\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
i = skill_get_index(id);
|
||||
if( !i ) // invalid skill id
|
||||
return false;
|
||||
|
@ -349,7 +349,7 @@ enum {
|
||||
ST_WATER,
|
||||
};
|
||||
|
||||
enum s_skill {
|
||||
enum e_skill {
|
||||
NV_BASIC = 1,
|
||||
|
||||
SM_SWORD,
|
||||
|
@ -1595,7 +1595,7 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
||||
static int calculating = 0; //Check for recursive call preemption. [Skotlex]
|
||||
struct status_data b_status, *status;
|
||||
const struct status_change *sc = &sd->sc;
|
||||
struct skill b_skill[MAX_SKILL];
|
||||
struct s_skill b_skill[MAX_SKILL];
|
||||
|
||||
int b_weight,b_max_weight;
|
||||
int i,index;
|
||||
|
Loading…
x
Reference in New Issue
Block a user