Browse Source

Added Missing Recall Skills (#7815)

Pokye 1 year ago
parent
commit
cfac5bb769
5 changed files with 84 additions and 1 deletions
  1. 1 1
      db/re/item_db_equip.yml
  2. 57 0
      db/re/skill_db.yml
  3. 2 0
      src/common/mapindex.hpp
  4. 21 0
      src/map/skill.cpp
  5. 3 0
      src/map/skill.hpp

+ 1 - 1
db/re/item_db_equip.yml

@@ -85397,7 +85397,7 @@ Body:
          bonus2 bSubRace2,RC2_THANATOS,20;
          bonus2 bMagicAddRace2,RC2_THANATOS,20;
       }
-      /* skill 3044,1; */
+      skill "ALL_THANATOS_RECALL",1;
   - Id: 19104
     AegisName: YDragon_SkyWing
     Name: Dragon Emperor's Wing

+ 57 - 0
db/re/skill_db.yml

@@ -32937,6 +32937,63 @@ Body:
       IgnoreItemBonus: true
     Requires:
       SpCost: 1
+  - Id: 3043
+    Name: ALL_GLASTHEIM_RECALL
+    Description: Return To Glast Heim
+    MaxLevel: 1
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+    Cooldown: 300000
+    FixedCastTime: 1000
+    CastTimeFlags:
+      IgnoreDex: true
+      IgnoreStatus: true
+      IgnoreItemBonus: true
+    CastDelayFlags:
+      IgnoreDex: true
+      IgnoreStatus: true
+      IgnoreItemBonus: true
+    Requires:
+      SpCost: 1
+  - Id: 3044
+    Name: ALL_THANATOS_RECALL
+    Description: Return To Thanatos
+    MaxLevel: 1
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+    Cooldown: 300000
+    FixedCastTime: 1000
+    CastTimeFlags:
+      IgnoreDex: true
+      IgnoreStatus: true
+      IgnoreItemBonus: true
+    CastDelayFlags:
+      IgnoreDex: true
+      IgnoreStatus: true
+      IgnoreItemBonus: true
+    Requires:
+      SpCost: 1
+  - Id: 3045
+    Name: ALL_LIGHTHALZEN_RECALL
+    Description: Return To Lighthalzen
+    MaxLevel: 1
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+    Cooldown: 300000
+    FixedCastTime: 1000
+    CastTimeFlags:
+      IgnoreDex: true
+      IgnoreStatus: true
+      IgnoreItemBonus: true
+    CastDelayFlags:
+      IgnoreDex: true
+      IgnoreStatus: true
+      IgnoreItemBonus: true
+    Requires:
+      SpCost: 1
   - Id: 5001
     Name: GC_DARKCROW
     Description: Dark Claw

+ 2 - 0
src/common/mapindex.hpp

@@ -51,6 +51,8 @@
 #define MAP_ECLAGE "eclage"
 #define MAP_ECLAGE_IN "ecl_in01"
 #define MAP_LASAGNA "lasagna"
+#define MAP_GLASTHEIM "glast_01"
+#define MAP_THANATOS "hu_fild01"
 
 const char* mapindex_getmapname(const char* string, char* output);
 const char* mapindex_getmapname_ext(const char* string, char* output);

+ 21 - 0
src/map/skill.cpp

@@ -888,6 +888,9 @@ bool skill_isNotOk(uint16 skill_id, map_session_data *sd)
 		case ALL_GUARDIAN_RECALL:
 		case ECLAGE_RECALL:
 		case ALL_PRONTERA_RECALL:
+		case ALL_GLASTHEIM_RECALL:
+		case ALL_THANATOS_RECALL:
+		case ALL_LIGHTHALZEN_RECALL:
 			if(mapdata->getMapFlag(MF_NOWARP)) {
 				clif_skill_teleportmessage(sd,0);
 				return true;
@@ -11649,6 +11652,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 	case ALL_GUARDIAN_RECALL:
 	case ECLAGE_RECALL:
 	case ALL_PRONTERA_RECALL:
+	case ALL_GLASTHEIM_RECALL:
+	case ALL_THANATOS_RECALL:
+	case ALL_LIGHTHALZEN_RECALL:
 		if( sd )
 		{
 			short x=0, y=0; // Destiny position.
@@ -11682,6 +11688,21 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 				}
 				mapindex  = mapindex_name2id(MAP_PRONTERA);
 				break;
+			case ALL_GLASTHEIM_RECALL:
+				x = 200;
+				y = 268;
+				mapindex  = mapindex_name2id(MAP_GLASTHEIM);
+				break;
+			case ALL_THANATOS_RECALL:
+				x = 139;
+				y = 156;
+				mapindex  = mapindex_name2id(MAP_THANATOS);
+				break;
+			case ALL_LIGHTHALZEN_RECALL:
+				x = 307;
+				y = 307;
+				mapindex  = mapindex_name2id(MAP_LIGHTHALZEN);
+				break;
 			}
 
 			if(!mapindex)

+ 3 - 0
src/map/skill.hpp

@@ -1941,6 +1941,9 @@ enum e_skill {
 	ECLAGE_RECALL,
 
 	ALL_PRONTERA_RECALL = 3042,
+	ALL_GLASTHEIM_RECALL,
+	ALL_THANATOS_RECALL,
+	ALL_LIGHTHALZEN_RECALL,
 
 	GC_DARKCROW = 5001,
 	RA_UNLIMIT,