Explorar o código

Fix several honor token items and add Prontera Recall skill (#5431)

Co-authored-by: Eric <eric@nomoss.co>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Eric Liu %!s(int64=4) %!d(string=hai) anos
pai
achega
7a4bef2ab7

+ 17 - 6
db/re/item_db_equip.yml

@@ -89439,7 +89439,7 @@ Body:
     Script: |
       bonus bMdef,3; bonus2 bAddClass,Class_All,5;
   - Id: 28354
-    AegisName: City_Map
+    AegisName: DowntownMap_
     Name: City Map
     Type: Armor
     Weight: 100
@@ -89449,9 +89449,9 @@ Body:
       Left_Accessory: true
     EquipLevelMin: 1
     Script: |
-      /* todo */
+      skill "AL_INCAGI",3;
   - Id: 28355
-    AegisName: Shining_Holy_Water_
+    AegisName: ShiningHolyWater_
     Name: Shining Holy Water
     Type: Armor
     Weight: 100
@@ -89461,9 +89461,18 @@ Body:
       Left_Accessory: true
     EquipLevelMin: 1
     Script: |
-      /* todo */
+      bonus2 bHPRegenRate,100,10000;
+      bonus2 bSPRegenRate,5,10000;
+      bonus2 bAddDefMonster,3445,20;
+      bonus2 bAddDefMonster,3446,20;
+      bonus2 bAddDefMonster,3447,20;
+      bonus2 bAddDefMonster,3448,20;
+      bonus2 bAddDefMonster,3449,20;
+      bonus2 bAddDefMonster,3450,20;
+      bonus2 bAddDefMonster,3451,20;
+      bonus2 bAddDefMonster,3452,20;
   - Id: 28356
-    AegisName: Prontera_Badge
+    AegisName: BadgeOfProntera_
     Name: Prontera Badge
     Type: Armor
     Weight: 100
@@ -89471,8 +89480,10 @@ Body:
       Right_Accessory: true
       Left_Accessory: true
     EquipLevelMin: 1
+    Delay:
+      Duration: 900000
     Script: |
-      /*warp "prontera",159,192;  15 mins cooldown */
+      skill "ALL_PRONTERA_RECALL",2;
   - Id: 28357
     AegisName: Vesper_Gear_03
     Name: Vesper Gear 03

+ 3 - 3
db/re/item_db_usable.yml

@@ -45253,15 +45253,15 @@ Body:
     Script: |
       bonus_script "{ bonus2 bSPDrainRate,50,5; }",300;
   - Id: 22847
-    AegisName: Prontera_Medal
-    Name: Prontera Medal
+    AegisName: BadgeOfProntera
+    Name: Prontera Badge
     Type: Usable
     Buy: 10
     Weight: 10
     Flags:
       BuyingStore: true
     Script: |
-      warp "prontera",159,192; /*No coord info*/
+      warp "prontera",159,192;
   - Id: 22848
     AegisName: Prison_Key
     Name: Prison Key

+ 25 - 0
db/re/skill_db.yml

@@ -31611,6 +31611,31 @@ Body:
       IgnoreItemBonus: true
     Requires:
       SpCost: 1
+  - Id: 3042
+    Name: ALL_PRONTERA_RECALL
+    Description: Prontera Recall
+    MaxLevel: 2
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+    Hit: Single
+    HitCount: 1
+    Cooldown:
+      - Level: 1
+        Time: 1800000
+      - Level: 2
+        Time: 900000
+    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

+ 3 - 3
sql-files/item_db_re_equip.sql

@@ -5438,9 +5438,9 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`defense`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28342,'Critical_Anklet','Critical Anklet','Armor',200,3,1,true,true,50,'bonus bCritical,5; bonus bMdef,3;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28352,'Vesper_Gear_01','Vesper Gear 01','Armor',20,100,1,1,true,true,90,'bonus bMdef,3; bonus bMatkRate,5;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28353,'Vesper_Gear_02','Vesper Gear 02','Armor',20,100,1,1,true,true,90,'bonus bMdef,3; bonus2 bAddClass,Class_All,5;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28354,'City_Map','City Map','Armor',100,1,true,true,1,'/* todo */');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28355,'Shining_Holy_Water_','Shining Holy Water','Armor',100,1,true,true,1,'/* todo */');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28356,'Prontera_Badge','Prontera Badge','Armor',100,true,true,1,'/*warp "prontera",159,192;  15 mins cooldown */');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28354,'DowntownMap_','City Map','Armor',100,1,true,true,1,'skill "AL_INCAGI",3;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28355,'ShiningHolyWater_','Shining Holy Water','Armor',100,1,true,true,1,'bonus2 bHPRegenRate,100,10000;\nbonus2 bSPRegenRate,5,10000;\nbonus2 bAddDefMonster,3445,20;\nbonus2 bAddDefMonster,3446,20;\nbonus2 bAddDefMonster,3447,20;\nbonus2 bAddDefMonster,3448,20;\nbonus2 bAddDefMonster,3449,20;\nbonus2 bAddDefMonster,3450,20;\nbonus2 bAddDefMonster,3451,20;\nbonus2 bAddDefMonster,3452,20;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`delay_duration`,`script`) VALUES (28356,'BadgeOfProntera_','Prontera Badge','Armor',100,true,true,1,900000,'skill "ALL_PRONTERA_RECALL",2;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28357,'Vesper_Gear_03','Vesper Gear 03','Armor',20,100,1,1,true,true,90,'bonus bMdef,3; bonus bFlee,10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`,`unequip_script`) VALUES (28358,'Cursed_Lucky_Clover','Cursed Lucky Clover','Armor',100,1,true,true,100,'bonus bLuk,2; bonus bFlee,3; bonus2 bAddEff2,Eff_Curse,5;','sc_end SC_CLOAKING; /*FIXME: Because the combo has Cloaking skill*/');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`location_right_accessory`,`location_left_accessory`,`equip_level_min`,`script`) VALUES (28359,'Vesper_Gear_04','Vesper Gear 04','Armor',20,100,1,1,true,true,90,'bonus bMdef,3; bonus bHit,10;');

+ 1 - 1
sql-files/item_db_re_usable.sql

@@ -3169,7 +3169,7 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`class_all`,`gender`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (22844,'Sealed_Dracula_Card_Album','Sealed Dracula Card Album','Usable',10,10,false,'Female',100,true,true,true,true,true,true,true,'/*No Info*/');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`equip_level_min`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (22845,'Sealed_Fortune_Egg','Sealed Fortune Egg','Usable',10,10,1,100,true,true,true,true,true,true,true,'getitem callfunc("F_Rand",4488,4497,4486,4480,4485,4539,4487,4494,4538,4489,4490,4482,4503,22846),1;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (22846,'Sealed_Dracula_Card_','Sealed Dracula Card','Usable',10,10,100,true,true,true,true,true,true,'bonus_script "{ bonus2 bSPDrainRate,50,5; }",300;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`flag_buyingstore`,`script`) VALUES (22847,'Prontera_Medal','Prontera Medal','Usable',10,10,true,'warp "prontera",159,192; /*No coord info*/');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`flag_buyingstore`,`script`) VALUES (22847,'BadgeOfProntera','Prontera Badge','Usable',10,10,true,'warp "prontera",159,192;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`flag_buyingstore`,`script`) VALUES (22848,'Prison_Key','Prison Key','Usable',10,10,true,'warp "prt_prison",0,0; /*No coord info*/');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`flag_buyingstore`,`script`) VALUES (22849,'Prontera_Time_Crystal','Prontera Time Crystal','Usable',10,10,true,'warp "prt_q",155,27;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (22850,'January_Gift_Box_','January Gift Box','Usable',10,100,100,true,true,true,true,true,true,true,'rentitem 19052,604800;');

+ 1 - 1
src/common/mapindex.hpp

@@ -8,7 +8,7 @@
 
 #define MAX_MAPINDEX 2000
 
-//Some definitions for the mayor city maps.
+//Some definitions for the major city maps.
 #define MAP_PRONTERA "prontera"
 #define MAP_GEFFEN "geffen"
 #define MAP_MORROC "morocc"

+ 13 - 0
src/map/skill.cpp

@@ -859,6 +859,7 @@ bool skill_isNotOk(uint16 skill_id, struct map_session_data *sd)
 		case RETURN_TO_ELDICASTES:
 		case ALL_GUARDIAN_RECALL:
 		case ECLAGE_RECALL:
+		case ALL_PRONTERA_RECALL:
 			if(mapdata->flag[MF_NOWARP]) {
 				clif_skill_teleportmessage(sd,0);
 				return true;
@@ -10745,6 +10746,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 	case RETURN_TO_ELDICASTES:
 	case ALL_GUARDIAN_RECALL:
 	case ECLAGE_RECALL:
+	case ALL_PRONTERA_RECALL:
 		if( sd )
 		{
 			short x=0, y=0; // Destiny position.
@@ -10767,6 +10769,17 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 				y = 31;
 				mapindex  = mapindex_name2id(MAP_ECLAGE_IN);
 				break;
+			case ALL_PRONTERA_RECALL:
+				if(skill_lv == 1) {
+					x = 115;
+					y = 72;
+				}
+				else if(skill_lv == 2) {
+					x = 159;
+					y = 192;
+				}
+				mapindex  = mapindex_name2id(MAP_PRONTERA);
+				break;
 			}
 
 			if(!mapindex)

+ 2 - 0
src/map/skill.hpp

@@ -1895,6 +1895,8 @@ enum e_skill {
 	ECL_SEQUOIADUST,
 	ECLAGE_RECALL,
 
+	ALL_PRONTERA_RECALL = 3042,
+
 	GC_DARKCROW = 5001,
 	RA_UNLIMIT,
 	GN_ILLUSIONDOPING,