- Merged the necessary changes to make the script engine support negative constants (db/const.txt). Thanks to Rayce (from jA) for the code.
- Cleaned up the skill.c code to take into account when skill_unitsetting returns null (skill failed), fixes a possible crash with Wand of Hermode git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8891 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
32b53e9ba2
commit
f7a1d44c3e
@ -3,6 +3,12 @@ Date Added
|
|||||||
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
||||||
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.
|
||||||
|
|
||||||
|
2006/09/28
|
||||||
|
* Merged the necessary changes to make the script engine support negative
|
||||||
|
constants (db/const.txt). Thanks to Rayce (from jA) for the code. [Skotlex]
|
||||||
|
* Cleaned up the skill.c code to take into account when skill_unitsetting
|
||||||
|
returns null (skill failed), fixes a possible crash with Wand of Hermode
|
||||||
|
[Skotlex]
|
||||||
2006/09/27
|
2006/09/27
|
||||||
* Cleaned up status_get_party/guild_id, it should also fix a possible crash
|
* Cleaned up status_get_party/guild_id, it should also fix a possible crash
|
||||||
when invoking such a functio on a masterless pet. [Skotlex]
|
when invoking such a functio on a masterless pet. [Skotlex]
|
||||||
|
@ -408,7 +408,9 @@ static void add_scriptl(int l)
|
|||||||
add_scriptb(backpatch>>16);
|
add_scriptb(backpatch>>16);
|
||||||
break;
|
break;
|
||||||
case C_INT:
|
case C_INT:
|
||||||
add_scripti(str_data[l].val);
|
add_scripti(abs(str_data[l].val));
|
||||||
|
if(str_data[l].val < 0) //Notice that this is negative, from jA (Rayce)
|
||||||
|
add_scriptc(C_NEG);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// もう他の用途と確定してるので数字をそのまま
|
// もう他の用途と確定してるので数字をそのまま
|
||||||
@ -1499,8 +1501,8 @@ static void read_constdb(void)
|
|||||||
if(line[0]=='/' && line[1]=='/')
|
if(line[0]=='/' && line[1]=='/')
|
||||||
continue;
|
continue;
|
||||||
type=0;
|
type=0;
|
||||||
if(sscanf(line,"%[A-Za-z0-9_],%[0-9xXA-Fa-f],%d",name,val,&type)>=2 ||
|
if(sscanf(line,"%[A-Za-z0-9_],%[-0-9xXA-Fa-f],%d",name,val,&type)>=2 ||
|
||||||
sscanf(line,"%[A-Za-z0-9_] %[0-9xXA-Fa-f] %d",name,val,&type)>=2){
|
sscanf(line,"%[A-Za-z0-9_] %[-0-9xXA-Fa-f] %d",name,val,&type)>=2){
|
||||||
for(i=0;name[i];i++)
|
for(i=0;name[i];i++)
|
||||||
name[i]=tolower(name[i]);
|
name[i]=tolower(name[i]);
|
||||||
n=add_str((const unsigned char *) name);
|
n=add_str((const unsigned char *) name);
|
||||||
|
@ -6020,15 +6020,15 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
|
|||||||
break;
|
break;
|
||||||
case HP_BASILICA:
|
case HP_BASILICA:
|
||||||
skill_clear_unitgroup(src);
|
skill_clear_unitgroup(src);
|
||||||
sg = skill_unitsetting(src,skillid,skilllv,x,y,0);
|
if ((sg = skill_unitsetting(src,skillid,skilllv,x,y,0)))
|
||||||
sc_start(src,type,100,skilllv,skill_get_time(skillid,skilllv));
|
sc_start(src,type,100,skilllv,skill_get_time(skillid,skilllv));
|
||||||
flag|=1;
|
flag|=1;
|
||||||
break;
|
break;
|
||||||
case CG_HERMODE:
|
case CG_HERMODE:
|
||||||
skill_clear_unitgroup(src);
|
skill_clear_unitgroup(src);
|
||||||
sg = skill_unitsetting(src,skillid,skilllv,x,y,0);
|
if ((sg = skill_unitsetting(src,skillid,skilllv,x,y,0)))
|
||||||
sc_start4(src,SC_DANCING,100,
|
sc_start4(src,SC_DANCING,100,
|
||||||
skillid,0,skilllv,sg->group_id,skill_get_time(skillid,skilllv));
|
skillid,0,skilllv,sg->group_id,skill_get_time(skillid,skilllv));
|
||||||
flag|=1;
|
flag|=1;
|
||||||
break;
|
break;
|
||||||
case RG_CLEANER: // [Valaris]
|
case RG_CLEANER: // [Valaris]
|
||||||
@ -6172,8 +6172,8 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case HW_GRAVITATION:
|
case HW_GRAVITATION:
|
||||||
sg = skill_unitsetting(src,skillid,skilllv,x,y,0);
|
if ((sg = skill_unitsetting(src,skillid,skilllv,x,y,0)))
|
||||||
sc_start4(src,type,100,skilllv,0,BCT_SELF,(int)sg,skill_get_time(skillid,skilllv));
|
sc_start4(src,type,100,skilllv,0,BCT_SELF,(int)sg,skill_get_time(skillid,skilllv));
|
||||||
flag|=1;
|
flag|=1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -6199,8 +6199,8 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
|
|||||||
case SG_SUN_WARM:
|
case SG_SUN_WARM:
|
||||||
case SG_MOON_WARM:
|
case SG_MOON_WARM:
|
||||||
case SG_STAR_WARM:
|
case SG_STAR_WARM:
|
||||||
sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
|
if ((sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0)))
|
||||||
sc_start4(src,type,100,skilllv,0,0,(int)sg,skill_get_time(skillid,skilllv));
|
sc_start4(src,type,100,skilllv,0,0,(int)sg,skill_get_time(skillid,skilllv));
|
||||||
flag|=1;
|
flag|=1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -6210,14 +6210,15 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
|
sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
|
||||||
|
if (!sg) break;
|
||||||
if (sc && sc->data[type].timer != -1)
|
if (sc && sc->data[type].timer != -1)
|
||||||
status_change_end(src,type,-1); //Was under someone else's Gospel. [Skotlex]
|
status_change_end(src,type,-1); //Was under someone else's Gospel. [Skotlex]
|
||||||
sc_start4(src,type,100,skilllv,0,(int)sg,BCT_SELF,skill_get_time(skillid,skilllv));
|
sc_start4(src,type,100,skilllv,0,(int)sg,BCT_SELF,skill_get_time(skillid,skilllv));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NJ_TATAMIGAESHI:
|
case NJ_TATAMIGAESHI:
|
||||||
sc_start(src,type,100,skilllv,skill_get_time2(skillid,skilllv));
|
if (skill_unitsetting(src,skillid,skilllv,src->x,src->y,0))
|
||||||
skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
|
sc_start(src,type,100,skilllv,skill_get_time2(skillid,skilllv));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AM_CALLHOMUN: //[orn]
|
case AM_CALLHOMUN: //[orn]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user