From 9b325c6a9ee3e96a991bbac34b907305316e5e1a Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 4 Dec 2006 15:37:09 +0000 Subject: - Repairing items via scripts no longer displays "item has been repaired" - Status Recovery again makes mobs unlock their current target. - Moved requesting party/guilds from the char-server from pc_authok to pc_reg_received, since map_nick2sd and map_getallsd won't work until the characters are authentified. Also removed the guild master setting from clif_parse_LoadEndAck to pc_reg_received since guild master setting will work there. - Fixed homun hunger timer being started on login even when hom is vaporized/dead. - Fixed mvp exp attacker bonus applying incorrectly. - Removed duplicate msg_athena.conf entries 619 and 620 for Ninja/Gunslinger. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9401 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char/int_guild.c | 1 - src/char_sql/int_guild.c | 1 - src/map/clif.c | 13 ++----------- src/map/mob.c | 3 ++- src/map/pc.c | 19 +++++++++++++------ src/map/script.c | 1 - src/map/skill.c | 2 ++ 7 files changed, 19 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/char/int_guild.c b/src/char/int_guild.c index cb7fa232c..7a34b081f 100644 --- a/src/char/int_guild.c +++ b/src/char/int_guild.c @@ -1299,7 +1299,6 @@ int mapif_parse_GuildSkillUp(int fd, int guild_id, int skill_num, int account_id if (guild_calcinfo(g) == 0) mapif_guild_info(-1, g); mapif_guild_skillupack(guild_id, skill_num, account_id); - ShowInfo("int_guild: skill %d up\n", skill_num); } return 0; diff --git a/src/char_sql/int_guild.c b/src/char_sql/int_guild.c index 81333db16..8920ed948 100644 --- a/src/char_sql/int_guild.c +++ b/src/char_sql/int_guild.c @@ -1796,7 +1796,6 @@ int mapif_parse_GuildSkillUp(int fd,int guild_id,int skill_num,int account_id) if (!guild_calcinfo(g)) mapif_guild_info(-1,g); mapif_guild_skillupack(guild_id,skill_num,account_id); - ShowDebug("int_guild: skill %d up\n",skill_num); g->save_flag |= (GS_LEVEL|GS_SKILL); // Change guild & guild_skill } return 0; diff --git a/src/map/clif.c b/src/map/clif.c index 31fdd80f7..ec1ad27bd 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -8338,7 +8338,6 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) if(sd->state.connect_new) { int lv; - struct guild *g; sd->state.connect_new = 0; clif_skillinfoblock(sd); clif_updatestatus(sd,SP_NEXTBASEEXP); @@ -8365,17 +8364,9 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) if(sd->pd && sd->pd->pet.intimate > 900) clif_pet_emotion(sd->pd,(sd->pd->pet.class_ - 100)*100 + 50 + pet_hungry_val(sd->pd)); - if(sd->hd) - merc_hom_init_timers(sd->hd); - if (sd->status.guild_id > 0 && !sd->state.gmaster_flag && - (g=guild_search(sd->status.guild_id)) && - strcmp(sd->status.name,g->master) == 0) - { //Block Guild Skills to prevent logout/login reuse exploiting. [Skotlex] - guild_block_skill(sd, 300000); - //Also set the Guild Master flag. - sd->state.gmaster_flag = g; - } + if(merc_is_hom_active(sd->hd)) + merc_hom_init_timers(sd->hd); //Delayed night effect on log-on fix for the glow-issue. Thanks to Larry. if (night_flag && map[sd->bl.m].flag.nightenabled) diff --git a/src/map/mob.c b/src/map/mob.c index 9ef9d75ce..d42e28fc1 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2072,7 +2072,8 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) exp =1; else { exp = md->db->mexp; - exp += exp*(battle_config.exp_bonus_attacker*count)/100.; //[Gengar] + if (count > 1) + exp += exp*(battle_config.exp_bonus_attacker*(count-1))/100.; //[Gengar] } mexp = (exp > UINT_MAX)?UINT_MAX:(exp<1?1:(unsigned int)exp); diff --git a/src/map/pc.c b/src/map/pc.c index 6630a38c5..f7b9167f6 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -671,11 +671,6 @@ int pc_authok(struct map_session_data *sd, int login_id2, time_t connect_until_t if (sd->status.hom_id > 0) intif_homunculus_requestload(sd->status.account_id, sd->status.hom_id); - if (sd->status.party_id > 0 && party_search(sd->status.party_id) == NULL) - party_request_info(sd->status.party_id); - if (sd->status.guild_id > 0 && guild_search(sd->status.guild_id) == NULL) - guild_request_info(sd->status.guild_id); - clif_authok(sd); map_addiddb(&sd->bl); if (map_charid2nick(sd->status.char_id) == NULL) @@ -795,6 +790,7 @@ int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl) int pc_reg_received(struct map_session_data *sd) { int i,j; + struct guild *g = NULL; sd->change_level = pc_readglobalreg(sd,"jobchange_level"); sd->die_counter = pc_readglobalreg(sd,"PC_DIE_COUNTER"); @@ -851,9 +847,20 @@ int pc_reg_received(struct map_session_data *sd) //Weird... maybe registries were reloaded? if (sd->state.auth) return 0; + sd->state.auth = 1; + + if (sd->status.party_id > 0 && party_search(sd->status.party_id) == NULL) + party_request_info(sd->status.party_id); + if (sd->status.guild_id > 0 && (g=guild_search(sd->status.guild_id)) == NULL) + guild_request_info(sd->status.guild_id); + else if (g && strcmp(sd->status.name,g->master) == 0) + { //Block Guild Skills to prevent logout/login reuse exploiting. [Skotlex] + guild_block_skill(sd, 300000); + //Also set the Guild Master flag. + sd->state.gmaster_flag = g; + } status_calc_pc(sd,1); - sd->state.auth = 1; if (!sd->state.connect_new && sd->fd) { //Character already loaded map! Gotta trigger LoadEndAck manually. sd->state.connect_new = 1; diff --git a/src/map/script.c b/src/map/script.c index 420c905b5..e6a673d22 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -6018,7 +6018,6 @@ int buildin_repair(struct script_state *st) clif_equiplist(sd); clif_produceeffect(sd, 0, sd->status.inventory[i].nameid); clif_misceffect(&sd->bl, 3); - clif_displaymessage(sd->fd,"Item has been repaired."); break; } } diff --git a/src/map/skill.c b/src/map/skill.c index 301845066..cd4786022 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4321,6 +4321,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in skill_get_time2(skillid, skilllv) * (100-(tstatus->int_+tstatus->vit)/2)/100,10); } clif_skill_nodamage(src,bl,skillid,skilllv,1); + if(dstmd) + mob_unlocktarget(dstmd,tick); break; case WZ_ESTIMATION: -- cgit v1.2.3-60-g2f50