diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | db/Changelog.txt | 2 | ||||
-rw-r--r-- | db/skill_cast_db.txt | 7 | ||||
-rw-r--r-- | src/common/cbasetypes.h | 8 | ||||
-rw-r--r-- | src/map/npc.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 13 |
6 files changed, 21 insertions, 13 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 429e509db..980ffd5a6 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -5,6 +5,8 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
2006/03/10
+ * Autospells won't trigger now on maps where said skills are forbidden.
+ [Skotlex]
* Changed div (multi-hit) behaviour. Skills with div above zero will get
their total damage increased by the number of hits, div less than zero is
just for "show", total number of hits displayed is abs(div), but damage
diff --git a/db/Changelog.txt b/db/Changelog.txt index b9b4b864c..458630fe0 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -27,6 +27,8 @@ =========================
03/10
+ * Added a few dummy duration values on skill_cast_db for some GS skills
+ (better than leaving them on 0...) [Skotlex]
* Updated div of LoV, Combo Skills and other such skills whose damage
equation does not really scales well with the number of hits. [Skotlex]
* Made G_Giant_Hornet Agressive, thanks to Blackgatomon [Lupus]
diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt index d274a7958..6e9800799 100644 --- a/db/skill_cast_db.txt +++ b/db/skill_cast_db.txt @@ -825,14 +825,13 @@ //-- GS_MAGICALBULLET
507,0,0,0,0,0
//-- GS_CRACKER
-508,0,0,0,0,0
+508,0,0,0,0,5000
//-- GS_TRACKING
-
512,1200:1400:1600:1800:2000:2200:2400:2600:2800:3000,0,0,0,0
//-- GS_DISARM
513,0,0,0,0,0
//-- GS_PIERCINGSHOT
-514,0,0,0,0,0
+514,0,0,0,0,60000
//-- GS_RAPIDSHOWER
515,0,0,0,0,0
//-- GS_DESPERADO
@@ -883,7 +882,7 @@ //-- NJ_SUITON
538,0,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,0
//-- NJ_HYOUSYOURAKU
-539,0,0,0,0,0
+539,0,0,0,0,10000
//-- NJ_HUUJIN
540,0,0,0,0,0
//-- NJ_RAIGEKISAI
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)
|