瀏覽代碼

- Corrected the login TXT server not initializing the waiting_disconnect variable.
- Corrected the attack_attr_none check being backwards.
- All pets can now move regardless of their Mob counter part setting.
- Added hom_setting&0x40, when set it clears the "can't reuse" skill delay when you vaporize a homunculus (set by default).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10120 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 18 年之前
父節點
當前提交
028031a4da
共有 8 個文件被更改,包括 17 次插入4 次删除
  1. 4 0
      Changelog-Trunk.txt
  2. 3 0
      conf-tmpl/Changelog.txt
  3. 4 3
      conf-tmpl/battle/homunc.conf
  4. 1 0
      src/login/login.c
  5. 1 1
      src/map/battle.c
  6. 1 0
      src/map/map.h
  7. 2 0
      src/map/mercenary.c
  8. 1 0
      src/map/status.c

+ 4 - 0
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

+ 3 - 0
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

+ 4 - 3
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)

+ 1 - 0
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);

+ 1 - 1
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)
 		{

+ 1 - 0
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

+ 2 - 0
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);

+ 1 - 0
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;
 	}