- Corrected crash if itemskill is used without an attached player.
- Removed range checks for autospells as per UltraMage Aegis tests. - Added chatID skill fail check to skill_check_condition - Corrected @refresh not re-displaying your spirit spheres nor re-setting your cloth dye. - Now the "number of attackers" in mob_dead is counted only from online characters on the same map. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10307 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
c667825023
commit
36a86d07e4
@ -4,6 +4,13 @@ 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.
|
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||||
|
|
||||||
2007/04/22
|
2007/04/22
|
||||||
|
* Corrected crash if itemskill is used without an attached player.
|
||||||
|
* Removed range checks for autospells as per UltraMage Aegis tests.
|
||||||
|
* Added chatID skill fail check to skill_check_condition
|
||||||
|
* Corrected @refresh not re-displaying your spirit spheres nor re-setting
|
||||||
|
your cloth dye.
|
||||||
|
* Now the "number of attackers" in mob_dead is counted only from online
|
||||||
|
characters on the same map.
|
||||||
* Updated the autospell bonus scripts so you don't have to specify all the
|
* Updated the autospell bonus scripts so you don't have to specify all the
|
||||||
attack type criteria. If neither of BF_LONG/BF_SHORT is specified, the
|
attack type criteria. If neither of BF_LONG/BF_SHORT is specified, the
|
||||||
spell will trigger on both. If neither of BF_WEAPON/BF_MAGIC/BF_MISC is
|
spell will trigger on both. If neither of BF_WEAPON/BF_MAGIC/BF_MISC is
|
||||||
|
@ -7634,6 +7634,10 @@ int clif_refresh(struct map_session_data *sd) {
|
|||||||
clif_updatestatus(sd,SP_INT);
|
clif_updatestatus(sd,SP_INT);
|
||||||
clif_updatestatus(sd,SP_DEX);
|
clif_updatestatus(sd,SP_DEX);
|
||||||
clif_updatestatus(sd,SP_LUK);
|
clif_updatestatus(sd,SP_LUK);
|
||||||
|
if (sd->spiritball)
|
||||||
|
clif_spiritball_single(sd->fd, sd);
|
||||||
|
if (sd->vd.cloth_color)
|
||||||
|
clif_refreshlook(&sd->bl,sd->bl.id,LOOK_CLOTHES_COLOR,sd->vd.cloth_color,SELF);
|
||||||
map_foreachinrange(clif_getareachar,&sd->bl,AREA_SIZE,BL_ALL,sd);
|
map_foreachinrange(clif_getareachar,&sd->bl,AREA_SIZE,BL_ALL,sd);
|
||||||
clif_weather_check(sd);
|
clif_weather_check(sd);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1790,12 +1790,18 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0,mvp_damage=0;i<DAMAGELOG_SIZE && md->dmglog[i].id;i++)
|
for(i=count=0,mvp_damage=0;i<DAMAGELOG_SIZE && md->dmglog[i].id;i++)
|
||||||
{
|
{
|
||||||
tmpsd[i] = map_charid2sd(md->dmglog[i].id);
|
tmpsd[i] = map_charid2sd(md->dmglog[i].id);
|
||||||
if(tmpsd[i] == NULL)
|
if(tmpsd[i] == NULL)
|
||||||
continue;
|
continue;
|
||||||
if(tmpsd[i]->bl.m != m || pc_isdead(tmpsd[i]))
|
if(tmpsd[i]->bl.m != m)
|
||||||
|
{
|
||||||
|
tmpsd[i] = NULL;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
count++; //Only logged into same map chars are counted for the total.
|
||||||
|
if (pc_isdead(tmpsd[i]))
|
||||||
{
|
{
|
||||||
tmpsd[i] = NULL;
|
tmpsd[i] = NULL;
|
||||||
continue;
|
continue;
|
||||||
@ -1805,7 +1811,6 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
|||||||
tmpsd[i] = NULL;
|
tmpsd[i] = NULL;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mvp_damage<(unsigned int)md->dmglog[i].dmg){
|
if(mvp_damage<(unsigned int)md->dmglog[i].dmg){
|
||||||
third_sd = second_sd;
|
third_sd = second_sd;
|
||||||
second_sd = mvp_sd;
|
second_sd = mvp_sd;
|
||||||
@ -1813,7 +1818,6 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
|||||||
mvp_damage=md->dmglog[i].dmg;
|
mvp_damage=md->dmglog[i].dmg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
count = i; //Total number of attackers.
|
|
||||||
|
|
||||||
if(!battle_config.exp_calc_type && count > 1)
|
if(!battle_config.exp_calc_type && count > 1)
|
||||||
{ //Apply first-attacker 200% exp share bonus
|
{ //Apply first-attacker 200% exp share bonus
|
||||||
|
@ -7110,8 +7110,7 @@ BUILDIN_FUNC(itemskill)
|
|||||||
id=script_getnum(st,2);
|
id=script_getnum(st,2);
|
||||||
lv=script_getnum(st,3);
|
lv=script_getnum(st,3);
|
||||||
|
|
||||||
// 詠唱中にスキルアイテムは使用できない
|
if(!sd || sd->ud.skilltimer != -1)
|
||||||
if(sd->ud.skilltimer != -1)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
sd->skillitem=id;
|
sd->skillitem=id;
|
||||||
|
@ -1440,9 +1440,6 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
|
|||||||
else
|
else
|
||||||
tbl = bl;
|
tbl = bl;
|
||||||
|
|
||||||
if (tbl != src && !battle_check_range(src, tbl, skill_get_range2(src, skill, skilllv)))
|
|
||||||
continue; //Autoskills DO check for target-src range. [Skotlex]
|
|
||||||
rate = skill_get_inf(skill);
|
|
||||||
switch (skill_get_casttype(skill)) {
|
switch (skill_get_casttype(skill)) {
|
||||||
case CAST_GROUND:
|
case CAST_GROUND:
|
||||||
skill_castend_pos2(src, tbl->x, tbl->y, skill, skilllv, tick, 0);
|
skill_castend_pos2(src, tbl->x, tbl->y, skill, skilllv, tick, 0);
|
||||||
@ -1615,9 +1612,6 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
|
|||||||
else
|
else
|
||||||
tbl = src;
|
tbl = src;
|
||||||
|
|
||||||
if (tbl != bl && !battle_check_range(bl, tbl, skill_get_range2(bl, skillid, skilllv)))
|
|
||||||
continue; //Autoskills DO check for target-src range. [Skotlex]
|
|
||||||
|
|
||||||
switch (skill_get_casttype(skillid)) {
|
switch (skill_get_casttype(skillid)) {
|
||||||
case CAST_GROUND:
|
case CAST_GROUND:
|
||||||
skill_castend_pos2(bl, tbl->x, tbl->y, skillid, skilllv, tick, 0);
|
skill_castend_pos2(bl, tbl->x, tbl->y, skillid, skilllv, tick, 0);
|
||||||
@ -7964,7 +7958,7 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t
|
|||||||
|
|
||||||
nullpo_retr(0, sd);
|
nullpo_retr(0, sd);
|
||||||
|
|
||||||
if (lv <= 0) return 0;
|
if (lv <= 0 || sd->chatID) return 0;
|
||||||
|
|
||||||
if( battle_config.gm_skilluncond &&
|
if( battle_config.gm_skilluncond &&
|
||||||
pc_isGM(sd)>= battle_config.gm_skilluncond &&
|
pc_isGM(sd)>= battle_config.gm_skilluncond &&
|
||||||
|
Loading…
x
Reference in New Issue
Block a user