summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-16 14:12:01 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-16 14:12:01 +0000
commit77e8294908fcbf69431d87b74a8ed15d3ab5fd2e (patch)
tree70ac7728a7d113f97bcc5a844573717db2109bb7 /src
parent9f21baade67fe21fc3e270ff1239401cd9ab41ff (diff)
downloadhercules-77e8294908fcbf69431d87b74a8ed15d3ab5fd2e.tar.gz
hercules-77e8294908fcbf69431d87b74a8ed15d3ab5fd2e.tar.bz2
hercules-77e8294908fcbf69431d87b74a8ed15d3ab5fd2e.tar.xz
hercules-77e8294908fcbf69431d87b74a8ed15d3ab5fd2e.zip
- Now arrow-consuming skills where your main weapon is a whip or musical instrument WILL count as arrow-type attacks, using the atk of the arrow and all related bonuses.
- Fixed some homun timer initialization code. - Some cleanups on the pet.c code, but no idea if pet view will work correctly now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8315 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/battle.c2
-rw-r--r--src/map/mercenary.c11
-rw-r--r--src/map/pet.c6
-rw-r--r--src/map/skill.c2
4 files changed, 8 insertions, 13 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 4f2e03e5f..12e8f69f6 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -1213,6 +1213,8 @@ static struct Damage battle_calc_weapon_attack(
case W_SHOTGUN:
case W_GATLING:
case W_GRENADE:
+ case W_WHIP: //These two do use arrow based skills.
+ case W_MUSICAL:
break;
default:
i |= 16; // for ex. shuriken must not be influenced by DEX
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index f63a75766..e76e1bcac 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -778,14 +778,6 @@ int merc_hom_create(struct map_session_data *sd)
hd->bl.prev=NULL;
hd->bl.next=NULL;
hd->exp_next=hexptbl[hd->master->homunculus.level - 1];
- hd->ud.attacktimer=-1;
- hd->ud.attackabletime=gettick();
- hd->target_id = 0 ;
-
- for(i=0;i<MAX_STATUSCHANGE;i++) {
- hd->sc.data[i].timer=-1;
- hd->sc.data[i].val1 = hd->sc.data[i].val2 = hd->sc.data[i].val3 = hd->sc.data[i].val4 = 0;
- }
hd->base_status.hp = hd->master->homunculus.hp ;
hd->base_status.max_hp = hd->master->homunculus.max_hp ;
@@ -802,13 +794,14 @@ int merc_hom_create(struct map_session_data *sd)
status_set_viewdata(&hd->bl, hd->master->homunculus.class_);
status_change_init(&hd->bl);
- hd->ud.dir = sd->ud.dir;
unit_dataset(&hd->bl);
+ hd->ud.dir = sd->ud.dir;
map_addiddb(&hd->bl);
status_calc_homunculus(hd,1);
// Timers
+ hd->hungry_timer = hd->natural_heal_timer = -1;
merc_hom_init_timers(hd);
return 0;
}
diff --git a/src/map/pet.c b/src/map/pet.c
index e5b9efba2..3e63e1251 100644
--- a/src/map/pet.c
+++ b/src/map/pet.c
@@ -402,7 +402,7 @@ int pet_data_init(struct map_session_data *sd, struct s_pet *pet)
}
sd->pd = pd = (struct pet_data *)aCalloc(1,sizeof(struct pet_data));
pd->petDB = &pet_db[i];
- memcpy(&pd->pet, pet, sizeof(pet));
+ memcpy(&pd->pet, pet, sizeof(struct s_pet));
pd->bl.m = sd->bl.m;
pd->bl.x = sd->bl.x;
pd->bl.y = sd->bl.y;
@@ -737,7 +737,7 @@ int pet_equipitem(struct map_session_data *sd,int index)
pc_delitem(sd,index,1,0);
pd->pet.equip = nameid;
- status_set_viewdata(&pd->bl, pd->vd.class_); //Updates view_data.
+ status_set_viewdata(&pd->bl, pd->pet.class_); //Updates view_data.
clif_pet_equip(pd);
if (battle_config.pet_equip_required)
{ //Skotlex: start support timers if need
@@ -766,7 +766,7 @@ static int pet_unequipitem(struct map_session_data *sd, struct pet_data *pd)
nameid = pd->pet.equip;
pd->pet.equip = 0;
- status_set_viewdata(&pd->bl, pd->vd.class_);
+ status_set_viewdata(&pd->bl, pd->pet.class_);
clif_pet_equip(pd);
memset(&tmp_item,0,sizeof(tmp_item));
tmp_item.nameid = nameid;
diff --git a/src/map/skill.c b/src/map/skill.c
index 5b3be336f..681ff215e 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -7448,7 +7448,7 @@ int skill_unit_effect (struct block_list *bl, va_list ap)
{
struct skill_unit *unit;
struct skill_unit_group *group;
- int flag,unit_id,skill_id;
+ int flag,unit_id=0,skill_id;
unsigned int tick;
unit=va_arg(ap,struct skill_unit*);