summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--conf-tmpl/Changelog.txt3
-rw-r--r--conf-tmpl/battle/homunc.conf7
-rw-r--r--src/login/login.c1
-rw-r--r--src/map/battle.c2
-rw-r--r--src/map/map.h1
-rw-r--r--src/map/mercenary.c2
-rw-r--r--src/map/status.c1
8 files changed, 17 insertions, 4 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index b05bd0240..9fe1bff6b 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,10 @@ 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.
2007/04/03
+ * Corrected the attack_attr_none check being backwards (ie: this config was
+ working backwards!)
+ * All pets can now move regardless of their Mob counter part setting.
+ [Skotlex]
* Some source code cleaning
- Fixed the badly worded messages during mapserver startup
- Cleaned up socket config reading
diff --git a/conf-tmpl/Changelog.txt b/conf-tmpl/Changelog.txt
index 2ae322cdc..784e4c6db 100644
--- a/conf-tmpl/Changelog.txt
+++ b/conf-tmpl/Changelog.txt
@@ -1,5 +1,8 @@
Date Added
+2007/04/03
+ * Added hom_setting&0x40, when set it clears the "can't reuse" skill delay
+ when you vaporize a homunculus (set by default). [Skotlex]
2007/04/02
* Set the default vending tax to 2% as it is in kRO Sakray [Playtester]
2007/03/28
diff --git a/conf-tmpl/battle/homunc.conf b/conf-tmpl/battle/homunc.conf
index f5e48281f..f4c045522 100644
--- a/conf-tmpl/battle/homunc.conf
+++ b/conf-tmpl/battle/homunc.conf
@@ -31,13 +31,14 @@
// (placed here since homuncs are more or less like pet mobs)
// Activates various homunc-related 'quirks' that makes them behave unlike
// normal characters.
-// 0x001: They can't be targetted by support skills (except for their master)
-// 0x002: They are inmune to land skills.
+// 0x001: Can't be targetted by support skills (except for their master)
+// 0x002: Immunity to land skills.
// 0x004: Mobs will always go after them instead of players until attacked.
-// 0x008: They copy their master's speed on spawn/map-change
+// 0x008: Copy their master's speed on spawn/map-change
// 0x010: They display luk/3+1 instead of their actual critical in the
// stat window (by default they don't crit)
// 0x020: Their Min-Matk is always the same as their max
+// 0x040: Skill re-use delay is reset when they are vaporized.
hom_setting: 0xFFFF
// The rate a homunculus will get friendly by feeding it. (Note 2)
diff --git a/src/login/login.c b/src/login/login.c
index 95a55f5fe..639b61afb 100644
--- a/src/login/login.c
+++ b/src/login/login.c
@@ -204,6 +204,7 @@ static void* create_online_user(DBKey key, va_list args) {
p = aCalloc(1, sizeof(struct online_login_data));
p->account_id = key.i;
p->char_server = -1;
+ p->waiting_disconnect = -1;
return p;
}
static int waiting_disconnect_timer(int tid, unsigned int tick, int id, int data);
diff --git a/src/map/battle.c b/src/map/battle.c
index 596cdc55d..d3473872a 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -1817,7 +1817,7 @@ static struct Damage battle_calc_weapon_attack(
ATK_ADD(15*skill_lv);
if (!(nk&NK_NO_ELEFIX) ||
- (s_ele == ELE_NEUTRAL && (battle_config.attack_attr_none&src->type)))
+ (s_ele == ELE_NEUTRAL && !(battle_config.attack_attr_none&src->type)))
{ //Elemental attribute fix
if (wd.damage > 0)
{
diff --git a/src/map/map.h b/src/map/map.h
index 244bc18b3..2e433c619 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -1161,6 +1161,7 @@ enum _sp {
SP_HP_DRAIN_VALUE,SP_SP_DRAIN_VALUE, // 1079-1080
SP_WEAPON_ATK,SP_WEAPON_ATK_RATE, // 1081-1082
SP_DELAYRATE,SP_HP_DRAIN_RATE_RACE,SP_SP_DRAIN_RATE_RACE, // 1083-1085
+
SP_RESTART_FULL_RECOVER=2000,SP_NO_CASTCANCEL,SP_NO_SIZEFIX,SP_NO_MAGIC_DAMAGE,SP_NO_WEAPON_DAMAGE,SP_NO_GEMSTONE, // 2000-2005
SP_NO_CASTCANCEL2,SP_NO_MISC_DAMAGE,SP_UNBREAKABLE_WEAPON,SP_UNBREAKABLE_ARMOR, SP_UNBREAKABLE_HELM, // 2006-2010
SP_UNBREAKABLE_SHIELD, SP_LONG_ATK_RATE, // 2011-2012
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index 80e471ddc..c21a8721d 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -103,6 +103,8 @@ int merc_hom_vaporize(struct map_session_data *sd, int flag)
//Delete timers when vaporized.
merc_hom_hungry_timer_delete(hd);
hd->homunculus.vaporize = 1;
+ if(battle_config.hom_setting&0x40)
+ memset(hd->blockskill, 0, sizeof(hd->blockskill));
clif_hominfo(sd, sd->hd, 0);
merc_save(hd);
return unit_remove_map(&hd->bl, 0);
diff --git a/src/map/status.c b/src/map/status.c
index d1442e4bf..6aae8ba20 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1436,6 +1436,7 @@ int status_calc_pet(struct pet_data *pd, int first)
if (first) {
memcpy(&pd->status, &pd->db->status, sizeof(struct status_data));
+ pd->status.mode|= MD_CANMOVE; //so they can chase their master!
pd->status.speed = pd->petDB->speed;
}