summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt13
-rw-r--r--conf-tmpl/msg_athena.conf2
-rw-r--r--src/char/int_guild.c1
-rw-r--r--src/char_sql/int_guild.c1
-rw-r--r--src/map/clif.c13
-rw-r--r--src/map/mob.c3
-rw-r--r--src/map/pc.c19
-rw-r--r--src/map/script.c1
-rw-r--r--src/map/skill.c2
9 files changed, 32 insertions, 23 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index d195ee407..06268ff00 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,19 @@ 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.
2006/12/04
+ * Repairing items via scripts no longer displays "item has been repaired"
+ [Skotlex]
+ * Status Recovery again makes mobs unlock their current target. [Skotlex]
+ * 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. [Skotlex]
+ * Fixed homun hunger timer being started on login even when hom is
+ vaporized/dead. [Skotlex]
+ * Fixed mvp exp attacker bonus applying incorrectly. [Skotlex]
+ * Removed duplicate msg_athena.conf entries 619 and 620 for
+ Ninja/Gunslinger.[Skotlex]
* Fixed the txt->sql converter not escaping character names before saving
them. [Skotlex]
* Fixed a pet's level not resetting to their db level when you enable pet
diff --git a/conf-tmpl/msg_athena.conf b/conf-tmpl/msg_athena.conf
index c0defb3eb..0b0c0cc42 100644
--- a/conf-tmpl/msg_athena.conf
+++ b/conf-tmpl/msg_athena.conf
@@ -549,8 +549,6 @@
616: Taekwon
617: Star Gladiator
618: Soul Linker
-619: Gunslinger
-620: Ninja
//...
650: Unknown Job
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: