From 3930bf87479567f6e2b25dc6ee7df8b97a3c5122 Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Fri, 24 Jan 2020 06:44:44 +0100 Subject: Updated item scripts. Updated script of all items, which use SkillToMe in AEGIS, to now use itemskill() script command with flag parameter set to 6 (ISF_INSTANTCAST | ISF_CASTONSELF). Updated script of all items, which used unitskilluseid() script command, to now use itemskill() script command. --- db/pre-re/item_db.conf | 149 ++++++++++++++++++++----------------------------- db/re/item_db.conf | 146 ++++++++++++++++++++---------------------------- 2 files changed, 122 insertions(+), 173 deletions(-) (limited to 'db') diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index 38833636d..1ad8f4de8 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -68609,10 +68609,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,240000,10; - "> + Script: <" itemskill(AL_BLESSING, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12216 @@ -68633,14 +68630,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - if(Hp>15) { - skilleffect AL_INCAGI,0; - sc_start SC_INC_AGI,240000,10; - heal -15,0; - } - - "> + Script: <" itemskill(AL_INCAGI, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12217 @@ -68661,14 +68651,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - if(countitem(523)>0) { - skilleffect PR_ASPERSIO,0; - sc_start SC_ASPERSIO,180000,5; - delitem 523,1; - } - - "> + Script: <" itemskill(PR_ASPERSIO, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12218 @@ -68689,10 +68672,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - sc_start SC_ASSUMPTIO,100000,5; - skilleffect HP_ASSUMPTIO,0; - "> + Script: <" itemskill(HP_ASSUMPTIO, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12219 @@ -68713,10 +68693,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - skilleffect SN_WINDWALK,0; - sc_start SC_WINDWALK,250000,5; - "> + Script: <" itemskill(SN_WINDWALK, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12220 @@ -68737,14 +68714,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - .@type = getiteminfo(getequipid(EQI_HAND_R),11); - if (.@type==6||.@type==7||.@type==8) { - skilleffect BS_ADRENALINE,0; - sc_start SC_ADRENALINE,150000,5; - } - - "> + Script: <" itemskill(BS_ADRENALINE, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12221 @@ -68919,9 +68889,8 @@ item_db: ( sitting: true } Script: <" - percentheal 0,5; - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,240000,10; + percentheal(0, 5); + itemskill(AL_BLESSING, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -69701,9 +69670,8 @@ item_db: ( sitting: true } Script: <" - percentheal 5,0; - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,120000,5; + percentheal(5, 0); + itemskill(AL_BLESSING, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -69718,9 +69686,8 @@ item_db: ( sitting: true } Script: <" - percentheal 5,0; - skilleffect AL_INCAGI,0; - sc_start SC_INC_AGI,120000,5; + percentheal(0, 5); + itemskill(AL_INCAGI, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -70614,9 +70581,8 @@ item_db: ( sitting: true } Script: <" - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,120000,5; - itemskill AL_ANGELUS,5; + itemskill(AL_BLESSING, 5, ISF_INSTANTCAST | ISF_CASTONSELF); + itemskill(AL_ANGELUS, 5); "> }, { @@ -70968,8 +70934,8 @@ item_db: ( sitting: true } Script: <" - percentheal 3, 0; - itemskill PR_GLORIA, 2; + percentheal(3, 0); + itemskill(PR_GLORIA, 2, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -70984,8 +70950,8 @@ item_db: ( sitting: true } Script: <" - percentheal 0, 3; - itemskill PR_MAGNIFICAT, 1; + percentheal(0, 3); + itemskill(PR_MAGNIFICAT, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -71182,9 +71148,8 @@ item_db: ( sitting: true } Script: <" - //if(strcharinfo(PC_MAP)=="job3_rune02") { - // itemskill RK_STORMBLAST,1; - //} + //if (strcharinfo(PC_MAP) == "job3_rune02") + // itemskill(RK_STORMBLAST, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -71207,9 +71172,8 @@ item_db: ( sitting: true } Script: <" - //if(strcharinfo(PC_MAP)=="job3_rune02") { - // itemskill RK_MILLENNIUMSHIELD,1; - //} + //if (strcharinfo(PC_MAP) == "job3_rune02") + // itemskill(RK_MILLENNIUMSHIELD, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -71326,17 +71290,27 @@ item_db: ( sitting: true } Script: <" - .@temp = rand(1,10); - if (.@temp == 1) itemskill TF_DETOXIFY,1; - else if (.@temp == 2) itemskill TF_PICKSTONE,1; - else if (.@temp == 3) itemskill BA_FROSTJOKER,1; - else if (.@temp == 4) itemskill DC_SCREAM,1; - else if (.@temp == 5) percentheal 50,50; - else if (.@temp == 6) getitem Jellopy,1; - else if (.@temp == 7) itemskill AL_RUWACH,1; - else if (.@temp == 8) specialeffect(EF_BEGINASURA, AREA, playerattached()); - else if (.@temp == 9) specialeffect(EF_MVP, AREA, playerattached()); - else specialeffect(EF_CURSEATTACK, AREA, playerattached()); + .@temp = rand(1, 10); + if (.@temp == 1) + itemskill(TF_DETOXIFY, 1, ISF_INSTANTCAST | ISF_CASTONSELF); + else if (.@temp == 2) + itemskill(TF_PICKSTONE, 1); + else if (.@temp == 3) + itemskill(BA_FROSTJOKER, 1); + else if (.@temp == 4) + itemskill(DC_SCREAM, 1); + else if (.@temp == 5) + announce(strcharinfo(PC_NAME) + " shouts : I am a fool!!!", bc_all, C_WHITE); + else if (.@temp == 6) + getitem(Jellopy, 1); + else if (.@temp == 7) + itemskill(AL_RUWACH, 1); + else if (.@temp == 8) + specialeffect(EF_BEGINASURA, AREA, playerattached()); + else if (.@temp == 9) + specialeffect(EF_MVP, AREA, playerattached()); + else + specialeffect(EF_CURSEATTACK, AREA, playerattached()); "> }, { @@ -71437,9 +71411,8 @@ item_db: ( noauction: true } Script: <" - percentheal 30,30; - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,140000,5; + percentheal(30, 30); + itemskill(AL_BLESSING, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -71533,9 +71506,8 @@ item_db: ( Weight: 10 BuyingStore: true Script: <" - sc_start SC_ATTHASTE_POTION1, 1800000, 0; - sc_start SC_INC_AGI, 140000, 5; - skilleffect AL_INCAGI, 0; + sc_start(SC_ATTHASTE_POTION1, 1800000, 0); + itemskill(AL_INCAGI, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -73230,7 +73202,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill PR_GLORIA,5; "> + Script: <" itemskill(PR_GLORIA, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12707 @@ -73241,7 +73213,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill PR_MAGNIFICAT,1; "> + Script: <" itemskill(PR_MAGNIFICAT, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12708 @@ -73252,7 +73224,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill PR_IMPOSITIO,3; "> + Script: <" itemskill(PR_IMPOSITIO, 3, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12709 @@ -92196,7 +92168,7 @@ item_db: ( Name: "Chemical Protection Helm Scroll" Type: "IT_USABLE" Weight: 10 - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),237,5; "> + Script: <" itemskill(AM_CP_HELM, 5); "> }, { Id: 14518 @@ -92204,7 +92176,7 @@ item_db: ( Name: "Chemical Protection Shield Scrol" Type: "IT_USABLE" Weight: 10 - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),235,5; "> + Script: <" itemskill(AM_CP_SHIELD, 5); "> }, { Id: 14519 @@ -92212,7 +92184,7 @@ item_db: ( Name: "Chemical Protection Armor Scroll" Type: "IT_USABLE" Weight: 10 - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),236,5; "> + Script: <" itemskill(AM_CP_ARMOR, 5); "> }, { Id: 14520 @@ -92220,7 +92192,7 @@ item_db: ( Name: "Chemical Protection Weapon Scroll" Type: "IT_USABLE" Weight: 10 - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),234,5; "> + Script: <" itemskill(AM_CP_WEAPON, 5); "> }, { Id: 14521 @@ -92240,7 +92212,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),108,1; "> + Script: <" itemskill(BS_REPAIRWEAPON, 1); "> }, { Id: 14522 @@ -92315,7 +92287,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill BS_GREED,1; "> + Script: <" itemskill(BS_GREED, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14530 @@ -93117,7 +93089,7 @@ item_db: ( noselltonpc: true nogstorage: true } - Script: <" itemskill CASH_BLESSING,10; "> + Script: <" itemskill(CASH_BLESSING, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14589 @@ -93132,7 +93104,7 @@ item_db: ( noselltonpc: true nogstorage: true } - Script: <" itemskill CASH_INCAGI,10; "> + Script: <" itemskill(CASH_INCAGI, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14590 @@ -93147,7 +93119,7 @@ item_db: ( noselltonpc: true nogstorage: true } - Script: <" itemskill CASH_ASSUMPTIO,5; "> + Script: <" itemskill(CASH_ASSUMPTIO, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14591 @@ -93207,7 +93179,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill HW_MAGICPOWER,10; "> + Script: <" itemskill(HW_MAGICPOWER, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14594 @@ -93306,6 +93278,7 @@ item_db: ( Nouse: { sitting: true } + Script: <" itemskill(BS_GREED, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14600 diff --git a/db/re/item_db.conf b/db/re/item_db.conf index 4f5be9de5..ca561c33c 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -88252,10 +88252,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,240000,10; - "> + Script: <" itemskill(AL_BLESSING, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12216 @@ -88276,13 +88273,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - if(Hp>15) { - skilleffect AL_INCAGI,0; - sc_start SC_INC_AGI,240000,10; - heal -15,0; - } - "> + Script: <" itemskill(AL_INCAGI, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12217 @@ -88303,13 +88294,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - if(countitem(523)>0) { - skilleffect PR_ASPERSIO,0; - sc_start SC_ASPERSIO,180000,5; - delitem 523,1; - } - "> + Script: <" itemskill(PR_ASPERSIO, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12218 @@ -88330,10 +88315,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - sc_start SC_ASSUMPTIO,100000,5; - skilleffect HP_ASSUMPTIO,0; - "> + Script: <" itemskill(HP_ASSUMPTIO, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12219 @@ -88354,10 +88336,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - skilleffect SN_WINDWALK,0; - sc_start SC_WINDWALK,250000,5; - "> + Script: <" itemskill(SN_WINDWALK, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12220 @@ -88378,13 +88357,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" - .@type = getiteminfo(getequipid(EQI_HAND_R),11); - if (.@type==6||.@type==7||.@type==8) { - skilleffect BS_ADRENALINE,0; - sc_start SC_ADRENALINE,150000,5; - } - "> + Script: <" itemskill(BS_ADRENALINE, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12221 @@ -88559,9 +88532,8 @@ item_db: ( sitting: true } Script: <" - percentheal 0,5; - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,240000,10; + percentheal(0, 5); + itemskill(AL_BLESSING, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -89360,9 +89332,8 @@ item_db: ( sitting: true } Script: <" - percentheal 5,0; - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,120000,5; + percentheal(5, 0); + itemskill(AL_BLESSING, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -89377,9 +89348,8 @@ item_db: ( sitting: true } Script: <" - percentheal 5,0; - skilleffect AL_INCAGI,0; - sc_start SC_INC_AGI,120000,5; + percentheal(0, 5); + itemskill(AL_INCAGI, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -90241,9 +90211,8 @@ item_db: ( sitting: true } Script: <" - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,120000,5; - itemskill AL_ANGELUS,5; + itemskill(AL_BLESSING, 5, ISF_INSTANTCAST | ISF_CASTONSELF); + itemskill(AL_ANGELUS, 5); "> }, { @@ -90578,8 +90547,8 @@ item_db: ( sitting: true } Script: <" - percentheal 3, 0; - itemskill PR_GLORIA, 2; + percentheal(3, 0); + itemskill(PR_GLORIA, 2, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -90594,8 +90563,8 @@ item_db: ( sitting: true } Script: <" - percentheal 0, 3; - itemskill PR_MAGNIFICAT, 1; + percentheal(0, 3); + itemskill(PR_MAGNIFICAT, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -90790,9 +90759,8 @@ item_db: ( sitting: true } Script: <" - if(strcharinfo(PC_MAP)=="job3_rune02") { - itemskill RK_STORMBLAST,1; - } + if (strcharinfo(PC_MAP) == "job3_rune02") + itemskill(RK_STORMBLAST, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -90815,9 +90783,8 @@ item_db: ( sitting: true } Script: <" - if(strcharinfo(PC_MAP)=="job3_rune02") { - itemskill RK_MILLENNIUMSHIELD,1; - } + if (strcharinfo(PC_MAP) == "job3_rune02") + itemskill(RK_MILLENNIUMSHIELD, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -90921,17 +90888,27 @@ item_db: ( sitting: true } Script: <" - .@temp = rand(1,10); - if (.@temp == 1) itemskill TF_DETOXIFY,1; - else if (.@temp == 2) itemskill TF_PICKSTONE,1; - else if (.@temp == 3) itemskill BA_FROSTJOKER,1; - else if (.@temp == 4) itemskill DC_SCREAM,1; - else if (.@temp == 5) percentheal 50,50; - else if (.@temp == 6) getitem Jellopy,1; - else if (.@temp == 7) itemskill AL_RUWACH,1; - else if (.@temp == 8) specialeffect(EF_BEGINASURA, AREA, playerattached()); - else if (.@temp == 9) specialeffect(EF_MVP, AREA, playerattached()); - else specialeffect(EF_CURSEATTACK, AREA, playerattached()); + .@temp = rand(1, 10); + if (.@temp == 1) + itemskill(TF_DETOXIFY, 1, ISF_INSTANTCAST | ISF_CASTONSELF); + else if (.@temp == 2) + itemskill(TF_PICKSTONE, 1); + else if (.@temp == 3) + itemskill(BA_FROSTJOKER, 1); + else if (.@temp == 4) + itemskill(DC_SCREAM, 1); + else if (.@temp == 5) + announce(strcharinfo(PC_NAME) + " shouts : I am a fool!!!", bc_all, C_WHITE); + else if (.@temp == 6) + getitem(Jellopy, 1); + else if (.@temp == 7) + itemskill(AL_RUWACH, 1); + else if (.@temp == 8) + specialeffect(EF_BEGINASURA, AREA, playerattached()); + else if (.@temp == 9) + specialeffect(EF_MVP, AREA, playerattached()); + else + specialeffect(EF_CURSEATTACK, AREA, playerattached()); "> }, { @@ -91042,9 +91019,8 @@ item_db: ( noauction: true } Script: <" - percentheal 30,30; - skilleffect AL_BLESSING,0; - sc_start SC_BLESSING,140000,5; + percentheal(30, 30); + itemskill(AL_BLESSING, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -91145,9 +91121,8 @@ item_db: ( Weight: 10 BuyingStore: true Script: <" - sc_start SC_ATTHASTE_POTION1,1800000,0; - sc_start SC_INC_AGI,140000,5; - skilleffect AL_INCAGI,0; + sc_start(SC_ATTHASTE_POTION1, 1800000, 0); + itemskill(AL_INCAGI, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { @@ -94483,7 +94458,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill PR_GLORIA,5; "> + Script: <" itemskill(PR_GLORIA, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12707 @@ -94494,7 +94469,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill PR_MAGNIFICAT,1; "> + Script: <" itemskill(PR_MAGNIFICAT, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12708 @@ -94505,7 +94480,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill PR_IMPOSITIO,3; "> + Script: <" itemskill(PR_IMPOSITIO, 3, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 12709 @@ -121704,7 +121679,7 @@ item_db: ( nomail: true noauction: true } - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),237,5; "> + Script: <" itemskill(AM_CP_HELM, 5); "> }, { Id: 14518 @@ -121721,7 +121696,7 @@ item_db: ( nomail: true noauction: true } - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),235,5; "> + Script: <" itemskill(AM_CP_SHIELD, 5); "> }, { Id: 14519 @@ -121738,7 +121713,7 @@ item_db: ( nomail: true noauction: true } - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),236,5; "> + Script: <" itemskill(AM_CP_ARMOR, 5); "> }, { Id: 14520 @@ -121755,7 +121730,7 @@ item_db: ( nomail: true noauction: true } - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),234,5; "> + Script: <" itemskill(AM_CP_WEAPON, 5); "> }, { Id: 14521 @@ -121775,7 +121750,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" unitskilluseid getcharid(CHAR_ID_ACCOUNT),108,1; "> + Script: <" itemskill(BS_REPAIRWEAPON, 1); "> }, { Id: 14522 @@ -121914,7 +121889,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill BS_GREED,1; "> + Script: <" itemskill(BS_GREED, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14530 @@ -123056,7 +123031,7 @@ item_db: ( nomail: true noauction: true } - Script: <" itemskill CASH_BLESSING,10; "> + Script: <" itemskill(CASH_BLESSING, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14589 @@ -123074,7 +123049,7 @@ item_db: ( nomail: true noauction: true } - Script: <" itemskill CASH_INCAGI,10; "> + Script: <" itemskill(CASH_INCAGI, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14590 @@ -123092,7 +123067,7 @@ item_db: ( nomail: true noauction: true } - Script: <" itemskill CASH_ASSUMPTIO,5; "> + Script: <" itemskill(CASH_ASSUMPTIO, 5, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14591 @@ -123152,7 +123127,7 @@ item_db: ( Nouse: { sitting: true } - Script: <" itemskill HW_MAGICPOWER,10; "> + Script: <" itemskill(HW_MAGICPOWER, 10, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14594 @@ -123261,6 +123236,7 @@ item_db: ( Nouse: { sitting: true } + Script: <" itemskill(BS_GREED, 1, ISF_INSTANTCAST | ISF_CASTONSELF); "> }, { Id: 14600 -- cgit v1.2.3-60-g2f50