From 045c123351a3ed8596799d57ae79165e76ed771a Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 10 Mar 2006 19:26:56 +0000 Subject: - 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 --- Changelog-Trunk.txt | 2 ++ db/Changelog.txt | 2 ++ db/skill_cast_db.txt | 7 +++---- src/common/cbasetypes.h | 8 ++++++-- src/map/npc.c | 2 +- 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(ibl, 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) -- cgit v1.2.3-70-g09d2