diff options
author | Vicious <Vicious@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-08 05:18:46 +0000 |
---|---|---|
committer | Vicious <Vicious@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-08 05:18:46 +0000 |
commit | 521590c9bf7714d5b7fef748dc8cb55efe6809d8 (patch) | |
tree | a212067f245b6018dcc906acb1d0f114956dd1ed /src | |
parent | 9a5d570a57c6ab2f28514e8db67e9af044b96db3 (diff) | |
download | hercules-521590c9bf7714d5b7fef748dc8cb55efe6809d8.tar.gz hercules-521590c9bf7714d5b7fef748dc8cb55efe6809d8.tar.bz2 hercules-521590c9bf7714d5b7fef748dc8cb55efe6809d8.tar.xz hercules-521590c9bf7714d5b7fef748dc8cb55efe6809d8.zip |
some NJ/GS fix.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5509 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/itemdb.c | 4 | ||||
-rw-r--r-- | src/map/pc.c | 5 | ||||
-rw-r--r-- | src/map/skill.c | 107 |
3 files changed, 113 insertions, 3 deletions
diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 6b0900541..aa4f3a622 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -199,6 +199,10 @@ static void itemdb_jobid2mapid(unsigned short *bclass, int jobmask) bclass[1] |= 1<<MAPID_TAEKWON;
if (jobmask & 1<<26) //Soul Linker
bclass[2] |= 1<<MAPID_TAEKWON;
+ if (jobmask & 1<<27) //Gunslinger
+ bclass[0] |= 1<<MAPID_GUNSLINGER;
+ if (jobmask & 1<<28) //Ninja
+ bclass[0] |= 1<<MAPID_NINJA;
}
static void create_dummy_data(void) {
diff --git a/src/map/pc.c b/src/map/pc.c index 0b3cd1185..aa7e49481 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -5626,7 +5626,7 @@ int pc_readparam(struct map_session_data *sd,int type) val= sd->status.job_level;
break;
case SP_CLASS:
- if(val>=24 && val < 45)
+ if(val>=27 && val < 45)
val+=3978;
else
val= sd->status.class_;
@@ -6046,7 +6046,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper) } else if (job == JOB_GUNSLINGER || job == JOB_NINJA) {
if (upper > 0)
return 1;
- } else if (job < JOB_SUPER_BABY-JOB_NOVICE_HIGH+JOB_SUPER_NOVICE+1) {
+ } else if (job < JOB_SUPER_BABY-JOB_NOVICE_HIGH+JOB_SUPER_NOVICE+2) {
// Min is SuperNovice +1 -> Becomes Novice High [Skotlex]
// Max is SuperBaby-NoviceHigh+1 -> Becomes Super Baby
b_class += JOB_NOVICE_HIGH - JOB_SUPER_NOVICE -1;
@@ -8133,6 +8133,7 @@ int pc_readdb(void) skill_tree[atoi(split[0])][j].need[k].id=atoi(split[k*2+m]);
skill_tree[atoi(split[0])][j].need[k].lv=atoi(split[k*2+m+1]);
}
+
}
fclose(fp);
ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","skill_tree.txt");
diff --git a/src/map/skill.c b/src/map/skill.c index 38a880df8..8caa4031b 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3078,6 +3078,59 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s }
break;
+ //Until they're at right position [Vicious]
+ case GS_GLITTERING:
+ case GS_FLING:
+ case GS_TRIPLEACTION:
+ case GS_BULLSEYE:
+ case GS_MADNESSCANCEL:
+ case GS_ADJUSTMENT:
+ case GS_INCREASING:
+ case GS_MAGICALBULLET:
+ case GS_CRACKER:
+ case GS_SINGLEACTION:
+ case GS_SNAKEEYE:
+ case GS_CHAINACTION:
+ case GS_TRACKING:
+ case GS_DISARM:
+ case GS_PIERCINGSHOT:
+ case GS_RAPIDSHOWER:
+ case GS_DESPERADO:
+ case GS_GATLINGFEVER:
+ case GS_DUST:
+ case GS_SPREADATTACK:
+ case GS_GROUNDDRIFT:
+
+ case NV_BASIC:
+ case NV_FIRSTAID:
+ case NJ_TOBIDOUGU:
+ case NJ_SYURIKEN:
+ case NJ_KUNAI:
+ case NJ_HUUMA:
+ case NJ_ZENYNAGE:
+ case NJ_TATAMIGAESHI:
+ case NJ_KASUMIKIRI:
+ case NJ_SHADOWJUMP:
+ case NJ_KIRIKAGE:
+ case NJ_UTSUSEMI:
+ case NJ_BUNSINJYUTSU:
+ case NJ_NINPOU:
+ skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
+ break;
+ case NJ_KOUENKA:
+ case NJ_KAENSIN:
+ case NJ_BAKUENRYU:
+ case NJ_HYOUSENSOU:
+ case NJ_SUITON:
+ case NJ_HYOUSYOURAKU:
+ case NJ_HUUJIN:
+ case NJ_RAIGEKISAI:
+ case NJ_KAMAITACHI:
+ case NJ_NEN:
+ case NJ_ISSEN:
+ skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
+ break;
+
case 0:
if(sd) {
if (flag & 3){
@@ -5588,6 +5641,58 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in }
break;
+ //Until they're at right position [Vicious]
+ case GS_GLITTERING:
+ case GS_FLING:
+ case GS_TRIPLEACTION:
+ case GS_BULLSEYE:
+ case GS_MADNESSCANCEL:
+ case GS_ADJUSTMENT:
+ case GS_INCREASING:
+ case GS_MAGICALBULLET:
+ case GS_CRACKER:
+ case GS_SINGLEACTION:
+ case GS_SNAKEEYE:
+ case GS_CHAINACTION:
+ case GS_TRACKING:
+ case GS_DISARM:
+ case GS_PIERCINGSHOT:
+ case GS_RAPIDSHOWER:
+ case GS_DESPERADO:
+ case GS_GATLINGFEVER:
+ case GS_DUST:
+ case GS_SPREADATTACK:
+ case GS_GROUNDDRIFT:
+
+ case NV_BASIC:
+ case NV_FIRSTAID:
+ case NJ_TOBIDOUGU:
+ case NJ_SYURIKEN:
+ case NJ_KUNAI:
+ case NJ_HUUMA:
+ case NJ_ZENYNAGE:
+ case NJ_TATAMIGAESHI:
+ case NJ_KASUMIKIRI:
+ case NJ_SHADOWJUMP:
+ case NJ_KIRIKAGE:
+ case NJ_UTSUSEMI:
+ case NJ_BUNSINJYUTSU:
+ case NJ_NINPOU:
+ case NJ_KOUENKA:
+ case NJ_KAENSIN:
+ case NJ_BAKUENRYU:
+ case NJ_HYOUSENSOU:
+ case NJ_SUITON:
+ case NJ_HYOUSYOURAKU:
+ case NJ_HUUJIN:
+ case NJ_RAIGEKISAI:
+ case NJ_KAMAITACHI:
+ case NJ_NEN:
+ case NJ_ISSEN:
+ clif_skill_nodamage(src,bl,skillid,skilllv,
+ sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
+ break;
+
default:
ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skillid);
map_freeblock_unlock();
@@ -11062,7 +11167,7 @@ int skill_readdb(void) i = GD_SKILLRANGEMIN + i - GD_SKILLBASE;
if(i<=0 || i>MAX_SKILL_DB)
continue;
-
+
skill_split_atoi(split[1],skill_db[i].range);
skill_db[i].hit=atoi(split[2]);
skill_db[i].inf=atoi(split[3]);
|