- 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:
skotlex 2006-06-13 14:06:05 +00:00
parent a51eda844c
commit 9c860c13a4
6 changed files with 32 additions and 23 deletions

View File

@ -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.

View File

@ -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);

View File

@ -1401,19 +1401,20 @@ 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;
}
intif_guild_alliance( sd->status.guild_id,tsd->status.guild_id,
sd->status.account_id,tsd->status.account_id,8 );
} }
//Change alliance to opposition.
intif_guild_alliance( sd->status.guild_id,tsd->status.guild_id,
sd->status.account_id,tsd->status.account_id,8 );
} }
} }

View File

@ -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;
} }
} }

View File

@ -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;
@ -9930,7 +9930,6 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in
default: default:
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

View File

@ -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;