diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-10 19:26:56 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-10 19:26:56 +0000 |
commit | 045c123351a3ed8596799d57ae79165e76ed771a (patch) | |
tree | 5022a228eac1777297c752e49b6c0a65f3fe235a /src | |
parent | 269c643607bb5ef99141928971e6bac98e3095ed (diff) | |
download | hercules-045c123351a3ed8596799d57ae79165e76ed771a.tar.gz hercules-045c123351a3ed8596799d57ae79165e76ed771a.tar.bz2 hercules-045c123351a3ed8596799d57ae79165e76ed771a.tar.xz hercules-045c123351a3ed8596799d57ae79165e76ed771a.zip |
- Added a few dummy times in skill_cast_db for some GS skills.
- Autoskills now won't trigger on maps where said skill are not allowed.
- Some compilation warning fixes
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5565 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/common/cbasetypes.h | 8 | ||||
-rw-r--r-- | src/map/npc.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 13 |
3 files changed, 14 insertions, 9 deletions
diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h index 505eb6752..b84a0c88e 100644 --- a/src/common/cbasetypes.h +++ b/src/common/cbasetypes.h @@ -91,9 +91,14 @@ typedef int* pint; //////////////////////////////
#ifdef WIN32
//////////////////////////////
+//These three are already redefined on my_global.h on Windows systems.
+#ifdef TXT_ONLY
typedef __int8 int8;
-typedef __int16 int16;
typedef __int32 int32;
+typedef unsigned __int32 uint32;
+#endif
+
+typedef __int16 int16;
typedef signed __int8 sint8;
typedef signed __int16 sint16;
@@ -101,7 +106,6 @@ typedef signed __int32 sint32; typedef unsigned __int8 uint8;
typedef unsigned __int16 uint16;
-typedef unsigned __int32 uint32;
//////////////////////////////
#else // GNU
//////////////////////////////
diff --git a/src/map/npc.c b/src/map/npc.c index 7ba8be5d5..276d615be 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -441,7 +441,7 @@ int npc_addeventtimer(struct npc_data *nd,int tick,const char *name) if( nd->eventtimer[i]==-1 )
break;
if(i<MAX_EVENTTIMER){
- if (!strdb_get(ev_db,name)) {
+ if (!strdb_get(ev_db,(unsigned char*)name)) {
if (battle_config.error_log)
ShowError("npc_addeventimer: Event %s does not exists.\n", name);
return 1; //Event does not exists!
diff --git a/src/map/skill.c b/src/map/skill.c index d4f55672d..ab45b973d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1244,15 +1244,14 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int sc_start(bl,SC_STUN,70,skilllv,skill_get_time2(skillid,skilllv));
break;
//Until they're at right position - gs_statuschange- [Vicious]
- case GS_BULLSEYE:
- if(!(status_get_mode(bl)&MD_BOSS))
- sc_start(bl,SC_COMA,0.1,skilllv,skill_get_time(skillid,skilllv));
+ case GS_BULLSEYE: //0.1% coma rate.
+ status_change_start(bl,SC_COMA,10,skilllv,0,0,0,0,0);
break;
case GS_CRACKER:
- sc_start(bl,SC_STUN,(100 - 10*distance_bl(&sd->bl, bl)),skilllv,skill_get_time(skillid,skilllv)); //Temp stun rate
+ sc_start(bl,SC_STUN,(100 - 10*distance_bl(src, bl)),skilllv,skill_get_time2(skillid,skilllv)); //Temp stun rate
break;
case GS_PIERCINGSHOT:
- sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time(skillid,skilllv));
+ sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv));
break;
case NJ_HYOUSYOURAKU:
sc_start(bl,SC_FREEZE,(10+10*skilllv),skilllv,skill_get_time2(skillid,skilllv));
@@ -1285,7 +1284,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int skill = (sd->autospell[i].id > 0) ? sd->autospell[i].id : -sd->autospell[i].id;
//Prevents skill from retriggering themselves. [Skotlex]
- if (skill == skillid)
+ if (skill == skillid || skillnotok(skill, sd))
continue;
//skill2 reused to store skilllv.
@@ -1413,6 +1412,8 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * rate = ((sd && !sd->state.arrow_atk) || (status_get_range(src)<=2)) ?
dstsd->autospell2[i].rate : dstsd->autospell2[i].rate / 2;
+ if (skillnotok(skillid, dstsd))
+ continue;
if (rand()%1000 > rate)
continue;
if (dstsd->autospell2[i].id < 0)
|