- Oppositions can't be made during WoE now.
- Fixed a few compiler warnings from VC - Commented out the Homunculus Skills<->Status Change link which was causing some memory corruptions. - git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7127 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
a51eda844c
commit
9c860c13a4
@ -3,6 +3,11 @@ Date Added
|
|||||||
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
||||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||||
|
|
||||||
|
2006/06/13
|
||||||
|
* Oppositions can't be made during WoE now. [Skotlex]
|
||||||
|
* Fixed a few compiler warnings from VC [Skotlex]
|
||||||
|
* Commented out the Homunculus Skills<->Status Change link which was
|
||||||
|
causing some memory corruptions. [Skotlex]
|
||||||
2006/06/12
|
2006/06/12
|
||||||
* [Fixed]:
|
* [Fixed]:
|
||||||
- buildin_npcshopitem not allocating extra 1 block of terminator.
|
- buildin_npcshopitem not allocating extra 1 block of terminator.
|
||||||
|
@ -35,8 +35,6 @@ enum CharCommandType {
|
|||||||
CharCommandFeelReset, // Komurka
|
CharCommandFeelReset, // Komurka
|
||||||
CharCommandHelp,
|
CharCommandHelp,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef TXT_ONLY
|
#ifdef TXT_ONLY
|
||||||
/* TXT_ONLY */
|
/* TXT_ONLY */
|
||||||
|
|
||||||
@ -53,7 +51,13 @@ enum CharCommandType {
|
|||||||
};
|
};
|
||||||
|
|
||||||
typedef enum CharCommandType CharCommandType;
|
typedef enum CharCommandType CharCommandType;
|
||||||
typedef struct AtCommandInfo CharCommandInfo;
|
typedef struct CharCommandInfo {
|
||||||
|
CharCommandType type;
|
||||||
|
const char* command;
|
||||||
|
int level;
|
||||||
|
int (*proc)(const int, struct map_session_data*,
|
||||||
|
const char* command, const char* message);
|
||||||
|
} CharCommandInfo;
|
||||||
|
|
||||||
CharCommandType
|
CharCommandType
|
||||||
is_charcommand(const int fd, struct map_session_data* sd, const char* message, int gmlvl);
|
is_charcommand(const int fd, struct map_session_data* sd, const char* message, int gmlvl);
|
||||||
|
@ -1401,21 +1401,22 @@ int guild_opposition(struct map_session_data *sd,struct map_session_data *tsd)
|
|||||||
if( guild_get_alliance_count(g,1)>=3 ) // 敵対数確認
|
if( guild_get_alliance_count(g,1)>=3 ) // 敵対数確認
|
||||||
clif_guild_oppositionack(sd,1);
|
clif_guild_oppositionack(sd,1);
|
||||||
|
|
||||||
|
if(agit_flag) {
|
||||||
|
clif_displaymessage(sd->fd,"You cannot make oppositions during Guild Wars!");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
for(i=0;i<MAX_GUILDALLIANCE;i++){ // すでに関係を持っているか確認
|
for(i=0;i<MAX_GUILDALLIANCE;i++){ // すでに関係を持っているか確認
|
||||||
if(g->alliance[i].guild_id==tsd->status.guild_id){
|
if(g->alliance[i].guild_id==tsd->status.guild_id){
|
||||||
if(g->alliance[i].opposition==1){ // すでに敵対
|
if(g->alliance[i].opposition==1){ // すでに敵対
|
||||||
clif_guild_oppositionack(sd,2);
|
clif_guild_oppositionack(sd,2);
|
||||||
return 0;
|
return 0;
|
||||||
} else { //Change alliance to opposition.
|
|
||||||
if(agit_flag) {
|
|
||||||
clif_displaymessage(sd->fd,"You cannot break an alliance during Guild Wars!");
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
//Change alliance to opposition.
|
||||||
intif_guild_alliance( sd->status.guild_id,tsd->status.guild_id,
|
intif_guild_alliance( sd->status.guild_id,tsd->status.guild_id,
|
||||||
sd->status.account_id,tsd->status.account_id,8 );
|
sd->status.account_id,tsd->status.account_id,8 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// inter鯖に敵対要請
|
// inter鯖に敵対要請
|
||||||
intif_guild_alliance( sd->status.guild_id,tsd->status.guild_id,
|
intif_guild_alliance( sd->status.guild_id,tsd->status.guild_id,
|
||||||
|
@ -2671,9 +2671,8 @@ static int map_cache_write(struct map_data *m)
|
|||||||
map_cache.map[i].water_height = m->water_height;
|
map_cache.map[i].water_height = m->water_height;
|
||||||
map_cache.head.filesize += len_new;
|
map_cache.head.filesize += len_new;
|
||||||
map_cache.dirty = 1;
|
map_cache.dirty = 1;
|
||||||
if(map_read_flag == 2) {
|
if(map_read_flag == 2)
|
||||||
aFree(write_buf);
|
aFree(write_buf);
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9838,21 +9838,21 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in
|
|||||||
case BS_IRON:
|
case BS_IRON:
|
||||||
case BS_STEEL:
|
case BS_STEEL:
|
||||||
case BS_ENCHANTEDSTONE:
|
case BS_ENCHANTEDSTONE:
|
||||||
{ // Ores & Metals Refining - skill bonuses are straight from kRO website [DracoRPG]
|
// Ores & Metals Refining - skill bonuses are straight from kRO website [DracoRPG]
|
||||||
int skill = pc_checkskill(sd,skill_id);
|
i = pc_checkskill(sd,skill_id);
|
||||||
make_per = sd->status.job_level*20 + status->dex*10 + status->luk*10; //Base chance
|
make_per = sd->status.job_level*20 + status->dex*10 + status->luk*10; //Base chance
|
||||||
switch(nameid){
|
switch(nameid){
|
||||||
case 998: // Iron
|
case 998: // Iron
|
||||||
make_per += 4000+skill*500; // Temper Iron bonus: +26/+32/+38/+44/+50
|
make_per += 4000+i*500; // Temper Iron bonus: +26/+32/+38/+44/+50
|
||||||
break;
|
break;
|
||||||
case 999: // Steel
|
case 999: // Steel
|
||||||
make_per += 3000+skill*500; // Temper Steel bonus: +35/+40/+45/+50/+55
|
make_per += 3000+i*500; // Temper Steel bonus: +35/+40/+45/+50/+55
|
||||||
break;
|
break;
|
||||||
case 1000: //Star Crumb
|
case 1000: //Star Crumb
|
||||||
make_per = 100000; // Star Crumbs are 100% success crafting rate? (made 1000% so it succeeds even after penalties) [Skotlex]
|
make_per = 100000; // Star Crumbs are 100% success crafting rate? (made 1000% so it succeeds even after penalties) [Skotlex]
|
||||||
break;
|
break;
|
||||||
default: // Enchanted Stones
|
default: // Enchanted Stones
|
||||||
make_per += 1000+skill*500; // Enchantedstone Craft bonus: +15/+20/+25/+30/+35
|
make_per += 1000+i*500; // Enchantedstone Craft bonus: +15/+20/+25/+30/+35
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -9931,7 +9931,6 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in
|
|||||||
make_per = 5000;
|
make_per = 5000;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else { // Weapon Forging - skill bonuses are straight from kRO website, other things from a jRO calculator [DracoRPG]
|
} else { // Weapon Forging - skill bonuses are straight from kRO website, other things from a jRO calculator [DracoRPG]
|
||||||
make_per = 5000 + sd->status.job_level*20 + status->dex*10 + status->luk*10; // Base
|
make_per = 5000 + sd->status.job_level*20 + status->dex*10 + status->luk*10; // Base
|
||||||
make_per += pc_checkskill(sd,skill_id)*500; // Smithing skills bonus: +5/+10/+15
|
make_per += pc_checkskill(sd,skill_id)*500; // Smithing skills bonus: +5/+10/+15
|
||||||
|
@ -354,10 +354,11 @@ void initChangeTables(void) {
|
|||||||
// set_sc(NJ_KAENSIN, SC_KAENSIN, SI_BLANK);
|
// set_sc(NJ_KAENSIN, SC_KAENSIN, SI_BLANK);
|
||||||
set_sc(NJ_SUITON, SC_SUITON, SI_BLANK, SCB_AGI);
|
set_sc(NJ_SUITON, SC_SUITON, SI_BLANK, SCB_AGI);
|
||||||
set_sc(NJ_NEN, SC_NEN, SI_NEN, SCB_STR|SCB_INT);
|
set_sc(NJ_NEN, SC_NEN, SI_NEN, SCB_STR|SCB_INT);
|
||||||
set_sc(HLIF_AVOID, SC_AVOID, SI_BLANK, SCB_SPEED);
|
// FIXME: These skills have IDs of 8k and above, how do I fix these issues??
|
||||||
set_sc(HLIF_CHANGE, SC_CHANGE, SI_BLANK, SCB_INT);
|
// set_sc(HLIF_AVOID, SC_AVOID, SI_BLANK, SCB_SPEED);
|
||||||
set_sc(HAMI_BLOODLUST, SC_BLOODLUST, SI_BLANK, SCB_BATK|SCB_WATK);
|
// set_sc(HLIF_CHANGE, SC_CHANGE, SI_BLANK, SCB_INT);
|
||||||
set_sc(HFLI_FLEET, SC_FLEET, SI_BLANK, SCB_ASPD|SCB_BATK|SCB_WATK);
|
// set_sc(HAMI_BLOODLUST, SC_BLOODLUST, SI_BLANK, SCB_BATK|SCB_WATK);
|
||||||
|
// set_sc(HFLI_FLEET, SC_FLEET, SI_BLANK, SCB_ASPD|SCB_BATK|SCB_WATK);
|
||||||
|
|
||||||
// Storing the target job rather than simply SC_SPIRIT simplifies code later on.
|
// Storing the target job rather than simply SC_SPIRIT simplifies code later on.
|
||||||
SkillStatusChangeTable[SL_ALCHEMIST] = MAPID_ALCHEMIST,
|
SkillStatusChangeTable[SL_ALCHEMIST] = MAPID_ALCHEMIST,
|
||||||
@ -1994,7 +1995,7 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
|||||||
status->hp=status->max_hp>>1;
|
status->hp=status->max_hp>>1;
|
||||||
else
|
else
|
||||||
status->hp=status->max_hp * battle_config.restart_hp_rate/100;
|
status->hp=status->max_hp * battle_config.restart_hp_rate/100;
|
||||||
if(status->hp < 0)
|
if(!status->hp)
|
||||||
status->hp = 1;
|
status->hp = 1;
|
||||||
|
|
||||||
status->sp = status->max_sp * battle_config.restart_sp_rate /100;
|
status->sp = status->max_sp * battle_config.restart_sp_rate /100;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user