Procházet zdrojové kódy

Suggestion getiteminfo script command update (#5819)

* Extend the functionality of getiteminfo script command to retrieve the item ID/Aegis item name
* Added constants
* Updated setiteminfo
Atemo před 4 roky
rodič
revize
e4c0660190

+ 3 - 3
db/pre-re/item_db_etc.yml

@@ -8198,7 +8198,7 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {
          bonus bHit,5;
          bonus bCritical,5;
          bonus2 bSkillAtk,62,25;
@@ -8214,7 +8214,7 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOW) {
          bonus bHit,5;
          bonus bCritical,5;
          bonus2 bSkillAtk,47,50;
@@ -8403,7 +8403,7 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF) {
          bonus bInt,1;
          bonus2 bIgnoreMdefClassRate,Class_Normal,2;
          bonus2 bIgnoreMdefClassRate,Class_Boss,2;

+ 1 - 1
db/pre-re/item_db_usable.yml

@@ -5103,7 +5103,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      set .@type,getiteminfo(getequipid(EQI_HAND_R),11);
+      set .@type,getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);
       if (.@type == W_1HAXE || .@type == W_2HAXE || .@type == W_MACE) {
          skilleffect "BS_ADRENALINE",0;
          sc_start SC_ADRENALINE,150000,5;

+ 3 - 3
db/re/item_combo_db.txt

@@ -540,7 +540,7 @@
 4153:4247:4273,{ bonus3 bAddMonsterDropItem,544,RC_Fish,3000; bonus2 bAddEle,Ele_Water,30; }
 4153:18554,{ bonus2 bAddEle,Ele_Water,10; }
 4159:27082,{ autobonus "{ bonus bFlee,10; }",20,5000,BF_SHORT; }
-4163:5967,{ bonus bAspdRate,3; bonus bAspd,1; bonus2 bAddClass,Class_All,-5; if (getequiprefinerycnt(EQI_HAND_R) >= 10 && getiteminfo(getequipid(EQI_HAND_R),11) == 11) bonus bAspd,1; }
+4163:5967,{ bonus bAspdRate,3; bonus bAspd,1; bonus2 bAddClass,Class_All,-5; if (getequiprefinerycnt(EQI_HAND_R) >= 10 && getiteminfo(getequipid(EQI_HAND_R), II_VIEW) == 11) bonus bAspd,1; }
 4168:4169,{ bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bVariableCastrate,-10; }
 4169:4488,{ if(getequiprefinerycnt(EQI_SHOES) >= 15) { bonus bMaxHPrate,15; bonus bMaxSPrate,15; } else { bonus bMaxHPrate,10; bonus bMaxSPrate,10; } }
 4172:4210:4230:4257:4272,{ bonus bAgi,5; bonus bStr,5; bonus bAspdRate,5; bonus bSpeedRate,25; bonus bSPDrainValue,1; if(BaseClass==Job_Thief) bonus bNoGemStone; }
@@ -812,7 +812,7 @@
 5965:4991,{ bonus bAspd,1; }
 5966:2198:4441,{ .@r = getequiprefinerycnt(EQI_HAND_L); if (.@r > 7) bonus2 bSkillCooldown,"WL_COMET",+20000+(.@r > 9 ? +20000 : 0); }
 5966:2198:4876,{ .@r = getequiprefinerycnt(EQI_HAND_L); if (.@r > 7) bonus2 bSkillCooldown,"WL_COMET",+20000+(.@r > 9 ? +20000 : 0); }
-5966:4463,{ .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11); if (.@type == W_BOOK || .@type == W_STAFF || .@type == W_2HSTAFF) { bonus2 bMagicAddRace,RC_Player_Human, getequiprefinerycnt(EQI_HAND_R)*2; } }
+5966:4463,{ .@type = getiteminfo(getequipid(EQI_COMPOUND_ON), II_VIEW); if (.@type == W_BOOK || .@type == W_STAFF || .@type == W_2HSTAFF) { bonus2 bMagicAddRace,RC_Player_Human, getequiprefinerycnt(EQI_HAND_R)*2; } }
 5967:28321,{ bonus2 bSubSkill,"HT_BLITZBEAT",200; }
 5918:19306,{ .@aspd = 1; .@crit_dmg = 2 + 2 * (readparam(bDex) / 10); .@sub_player = 2; .@luk = readparam(bLuk); if (.@luk > 107) { .@aspd += 1; .@crit_dmg += 2; .@sub_player += 2; } if (.@luk > 119) { .@aspd += 2; .@crit_dmg += 4; .@sub_player += 4; bonus bSplashRange,1; } bonus bAspd,.@aspd; bonus bCritAtkRate,.@crit_dmg; bonus2 bSubRace,RC_Player_Human,.@sub_player; bonus2 bSubSkill,"NPC_CRITICALSLASH",100; }
 //9024:18832,{ bonus3 bAutoSpell,"BS_ADRENALINE",2,(GetPetRelationship >= 3)?15:10; }
@@ -1048,7 +1048,7 @@
 19266:20813,{.@r = getequiprefinerycnt(EQI_GARMENT); bonus bVariableCastrate,-5*(.@r/2);}
 19266:19139,{.@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bDelayRate,-.@r;}
 19272:4365,{ bonus bVariableCastrate,-100; bonus2 bSkillCooldown,"WL_TELEKINESIS_INTENSE",-120000; }
-19299:4463,{ .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11); if (.@type == W_BOOK || .@type == W_STAFF || .@type == W_2HSTAFF) { bonus2 bMagicAddRace,RC_Player_Human, getequiprefinerycnt(EQI_HAND_R)*2; } }
+19299:4463,{ .@type = getiteminfo(getequipid(EQI_COMPOUND_ON), II_VIEW); if (.@type == W_BOOK || .@type == W_STAFF || .@type == W_2HSTAFF) { bonus2 bMagicAddRace,RC_Player_Human, getequiprefinerycnt(EQI_HAND_R)*2; } }
 19299:5966,{ .@a = readparam(bDex); bonus bMatk,10; bonus bVariableCastrate,-2; bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player_Human,2; if (.@a>=108) { bonus bMatk,20; bonus bVariableCastrate,-3; bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player_Human,2; } if (.@a>=120) { bonus bMatk,30; bonus bVariableCastrate,-5; bonus2 bSubRace,RC_DemiHuman,4; bonus2 bSubRace,RC_Player_Human,4; } }
 19310:15250:20906:22173:28566,{ if(BaseLevel>=125){ bonus bBaseAtk,10; bonus bMatk,10; } if(BaseLevel>=130){ bonus bMaxHPrate,1; bonus bMaxSPrate,1; } autobonus "{}",20,100,BF_WEAPON,"{ heal 500,50; }"; autobonus "{}",20,100,BF_MAGIC,"{ heal 250,100; }"; }
 19326:4187,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bExpAddRace,RC_DEMON,5; if (.@r>=6) bonus2 bExpAddRace,RC_DEMON,5; if (.@r>=8) bonus2 bExpAddRace,RC_DEMON,5; }

+ 2 - 2
db/re/item_db_equip.yml

@@ -70655,7 +70655,7 @@ Body:
       }
       if (BaseClass == Job_Archer) {
          bonus bDex,3;
-         if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW)
+         if (getiteminfo(getequipid(EQI_HAND_R), II_VIEW) == W_BOW)
             bonus bLongAtkRate,10;
       }
   - Id: 18571
@@ -72834,7 +72834,7 @@ Body:
       bonus bInt,3;
       bonus bDex,2;
       bonus bLuk,1;
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK)
+      if (getiteminfo(getequipid(EQI_HAND_R), II_VIEW) == W_BOOK)
          bonus bVariableCastrate,-3;
   - Id: 18702
     AegisName: Shaving_Cream

+ 37 - 37
db/re/item_db_etc.yml

@@ -8685,7 +8685,7 @@ Body:
       BuyingStore: true
       DropEffect: CLIENT
     Script: |
-      .@i = getiteminfo(getequipid(EQI_HAND_R),11);
+      .@i = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);
       if (.@i == W_1HSWORD || .@i == W_2HSWORD) {
          bonus bHit,5;
          bonus bCritical,5;
@@ -8703,7 +8703,7 @@ Body:
       BuyingStore: true
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOW) {
          bonus bHit,5;
          bonus bCritical,5;
          bonus2 bSkillAtk,"AC_SHOWER",50;
@@ -8904,7 +8904,7 @@ Body:
       BuyingStore: true
       DropEffect: CLIENT
     Script: |
-      .@i = getiteminfo(getequipid(EQI_HAND_R),11);
+      .@i = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);
       if (.@i == W_STAFF || .@i == W_2HSTAFF) {
          bonus bInt,1;
          bonus2 bIgnoreMdefClassRate,Class_Normal,2;
@@ -9275,7 +9275,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       bonus bBaseAtk,10;
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {
          .@r = getrefine();
          if (.@r>=10) {
             bonus bAspd,1;
@@ -9297,7 +9297,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       bonus bLongAtkRate,3;
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOW) {
          .@r = getrefine();
          if (.@r>=10) {
             bonus bAspd,1;
@@ -10564,7 +10564,7 @@ Body:
       BuyingStore: true
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOW) {
          bonus2 bSkillAtk,"RA_ARROWSTORM",50;
          bonus bCriticalLong,25+10*(getequiprefinerycnt(EQI_HAND_R)/4);
          bonus bHit,5;
@@ -10898,7 +10898,7 @@ Body:
       BuyingStore: true
       DropEffect: CLIENT
     Script: |
-      .@i = getiteminfo(getequipid(EQI_HAND_R),11);
+      .@i = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);
       if (.@i == W_1HSWORD || .@i == W_2HSWORD) {
          bonus bBaseAtk,100;
       }
@@ -10915,7 +10915,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       bonus bBaseAtk,10;
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_DAGGER) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_DAGGER) {
          .@r = getrefine();
          if (.@r>=10) {
             bonus bAspd,1;
@@ -10979,7 +10979,7 @@ Body:
       BuyingStore: true
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_MACE) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MACE) {
          bonus bBaseAtk,20;
          bonus bCritical,10;
       }
@@ -11408,7 +11408,7 @@ Body:
     Script: |
       bonus bBaseAtk,5;
       bonus bMatk,5;
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOOK) {
          .@r = getrefine();
          if (.@r>=10) {
             bonus bBaseAtk,20;
@@ -36675,7 +36675,7 @@ Body:
     Flags:
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_BOW) {
+      if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_BOW) {
          bonus3 bAutoSpell,"AC_DOUBLE",5,30;
          if (getrefine() >= 10) {
             bonus2 bWeaponDamageRate,W_BOW,20;
@@ -36938,7 +36938,7 @@ Body:
     Flags:
       DropEffect: CLIENT
     Script: |
-      .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11);
+      .@type = getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW);
       if (.@type == W_WHIP || .@type == W_MUSICAL || .@type == W_BOOK || .@type == W_2HSWORD || .@type == W_2HSPEAR) {
          .@r = getrefine();
          bonus bCritical,5;
@@ -37130,7 +37130,7 @@ Body:
     Flags:
       DropEffect: CLIENT
     Script: |
-      .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11);
+      .@type = getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW);
       .@r = getrefine();
       if (.@type == 17 || .@type == 18 || .@type == 21) {
          bonus bLongAtkRate,5+.@r+(.@r >= 10 ? 5 : 0);
@@ -37357,7 +37357,7 @@ Body:
     Script: |
       .@atk = 5;
       .@r = getrefine();
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_SPEAR && .@r >= 10) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_SPEAR && .@r >= 10) {
          .@atk += 20;
          if (.@r >= 14) {
             .@atk += 20;
@@ -37403,7 +37403,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@bonus = 5;
-      .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11);
+      .@type = getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW);
       if (.@type == W_DAGGER) {
          .@r = getrefine();
          if (.@r>=10) {
@@ -37755,7 +37755,7 @@ Body:
          .@a = 5;
          .@b = 10;
       }
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R),11) == W_WHIP) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_WHIP) {
          skill "BA_POEMBRAGI2",.@a;
       }
       bonus bFlee,(readparam(bVit)>=110) ? (.@b*2) : .@b;
@@ -37859,13 +37859,13 @@ Body:
       DropEffect: CLIENT
     Script: |
       if (getrefine()<15) {
-         if (getiteminfo(getequipid(EQI_HAND_R),11) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R),11) == W_WHIP) {
+         if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_WHIP) {
             skill "DC_FORTUNEKISS2",5;
          }
          bonus bFlee,(readparam(bVit)>=110) ? 20 : 10;
       }
       else {
-         if (getiteminfo(getequipid(EQI_HAND_R),11) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R),11) == W_WHIP) {
+         if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_WHIP) {
             skill "DC_FORTUNEKISS2",7;
          }
          bonus bFlee,(readparam(bVit)>=110) ? 30 : 15;
@@ -37881,12 +37881,12 @@ Body:
       DropEffect: CLIENT
     Script: |
       if (getrefine()<15) {
-         if (getiteminfo(getequipid(EQI_HAND_R),11) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {
+         if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {
             bonus bBaseAtk,50;
          }
       }
       else {
-         if (getiteminfo(getequipid(EQI_HAND_R),11) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {
+         if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {
             bonus bBaseAtk,75;
          }
       }
@@ -38151,7 +38151,7 @@ Body:
     Flags:
       DropEffect: CLIENT
     Script: |
-      .@rate = 10 + (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK ? 20 : 0) + (getrefine() >= 14 ? 20 : 0);
+      .@rate = 10 + (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOOK ? 20 : 0) + (getrefine() >= 14 ? 20 : 0);
       bonus2 bSkillAtk,"MG_FIREBOLT",.@rate;
       bonus2 bSkillAtk,"MG_COLDBOLT",.@rate;
       bonus2 bSkillAtk,"MG_LIGHTNINGBOLT",.@rate;
@@ -38465,7 +38465,7 @@ Body:
     Flags:
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_REVOLVER) {
+      if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_REVOLVER) {
          .@r = getrefine();
          bonus bHit,20;
          bonus bLongAtkRate,(5+.@r);
@@ -38484,7 +38484,7 @@ Body:
     Flags:
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_GATLING) {
+      if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_GATLING) {
          .@r = getrefine();
          bonus bHit,20;
          bonus bLongAtkRate,(5+.@r);
@@ -38561,7 +38561,7 @@ Body:
     Flags:
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_KNUCKLE) {
+      if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_KNUCKLE) {
          .@r = getrefine();
          bonus bHit,20;
          bonus bBaseAtk,15;
@@ -38593,7 +38593,7 @@ Body:
     Flags:
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_KATAR) {
+      if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_KATAR) {
          .@r = getrefine();
          bonus bCritical,7;
          bonus bBaseAtk,15;
@@ -42586,7 +42586,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getequiprefinerycnt(EQI_HAND_R);
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {
          bonus2 bMagicAtkEle,Ele_Ghost,10;
       }
       if (.@r>=10) {
@@ -42607,7 +42607,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getequiprefinerycnt(EQI_HAND_R);
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {
          bonus2 bMagicAtkEle,Ele_Wind,10;
       }
       if (.@r>=10) {
@@ -42628,7 +42628,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getequiprefinerycnt(EQI_HAND_R);
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {
          bonus2 bMagicAtkEle,Ele_Holy,10;
       }
       if (.@r>=10) {
@@ -42880,7 +42880,7 @@ Body:
       BuyingStore: true
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_1HSPEAR || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSPEAR) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_1HSPEAR || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSPEAR) {
          bonus bLongAtkRate,10;
       }
       bonus bLongAtkRate,2*(getrefine()/2);
@@ -42940,7 +42940,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getrefine();
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {
          bonus bShortAtkRate,10;
       }
       bonus bShortAtkRate,.@r;
@@ -42975,7 +42975,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getrefine();
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOOK) {
          bonus2 bAddClass,Class_All,5;
          bonus bHit,20;
       }
@@ -43071,7 +43071,7 @@ Body:
       BuyingStore: true
       DropEffect: CLIENT
     Script: |
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {
          bonus bCritAtkRate,20;
       }
       bonus bCritAtkRate,2*(getrefine()/2);
@@ -43102,7 +43102,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getrefine();
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R),11) == W_WHIP) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_WHIP) {
          bonus bMatk,20;
       }
       if (.@r>=10) {
@@ -43265,7 +43265,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getequiprefinerycnt(EQI_HAND_R);
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {
          bonus2 bMagicAtkEle,Ele_Fire,10;
       }
       if (.@r>=10) {
@@ -43396,7 +43396,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getequiprefinerycnt(EQI_HAND_R);
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {
          bonus2 bMagicAtkEle,Ele_Neutral,10;
       }
       if (.@r>=10) {
@@ -43551,7 +43551,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@r = getequiprefinerycnt(EQI_HAND_R);
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {
          bonus2 bMagicAtkEle,Ele_Water,10;
       }
       if (.@r>=10) {
@@ -43934,7 +43934,7 @@ Body:
       DropEffect: CLIENT
     Script: |
       .@val = 15;
-      if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK) {
+      if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOOK) {
          .@val += 20;
       }
       if (getrefine()>=14) {

+ 1 - 1
db/re/item_db_usable.yml

@@ -6165,7 +6165,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      .@type = getiteminfo(getequipid(EQI_HAND_R),11);
+      .@type = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);
       if (.@type == W_1HAXE || .@type == W_2HAXE || .@type == W_MACE) {
          skilleffect "BS_ADRENALINE",0;
          sc_start SC_ADRENALINE,150000,5;

+ 24 - 7
doc/sample/getiteminfo.txt

@@ -9,15 +9,32 @@
 //============================================================
 
 prontera,156,179,6	script	test_getiteminfo	117,{
-	mes "Please enter an item ID.";
-	input .@value;
+	switch( select( "item ID", "aegis item name", "english item name" ) ) {
+	case 1:
+		mes "Please enter an item ID.";
+		input .@value;
 
-	// This line uses an INTERNAL function of your client to show item name by its ID!
-	// ^nItemID^XXXX -> Item Name
-	mes "Item ID: " + .@value + " ^nItemID^" + .@value;
+		// This line uses an INTERNAL function of your client to show item name by its ID!
+		// ^nItemID^XXXX -> Item Name
+		mes "Item ID: " + .@value + " ^nItemID^" + .@value;
 
+		mes "Current item info:";
+		for(.@id = 0; .@id <= 18; .@id++)
+			mes " getiteminfo(" + .@value + "," + .@id + ") = " + getiteminfo(.@value,.@id);
+		close;
+	case 2:
+		mes "Please enter an english item name.";
+		input .@value$;
+		mes "english item name: " + .@value$;
+		break;
+	case 3:
+		mes "Please enter an aegis item name.";
+		input .@value$;
+		mes "aegis item name: " + .@value$;
+		break;
+	}
 	mes "Current item info:";
-	for(.@id = 0; .@id <= 16; .@id++)
-		mes " getiteminfo(" + .@value + "," + .@id + ") = " + getiteminfo(.@value,.@id);
+	for(.@id = 0; .@id <= 18; .@id++)
+		mes " getiteminfo(" + .@value$ + "," + .@id + ") = " + getiteminfo(.@value$,.@id);
 	close;
 }

+ 79 - 39
doc/script_commands.txt

@@ -2705,10 +2705,11 @@ See 'getequipid' for a full list of valid equipment slots.
 ---------------------------------------
 
 *getitemname(<item id>)
+*getitemname(<aegis item name>)
 
 Given the database ID number of an item, this function will return the text
-stored in the 'japanese name' field (which, in rAthena, stores an English name
-the players would normally see on screen.)
+stored in the 'Name' field in item_db_*.yml for text version
+or 'name_english' field for SQL version.
 
 ---------------------------------------
 
@@ -2995,32 +2996,36 @@ Example:
 ---------------------------------------
 
 *getiteminfo(<item ID>,<type>)
+*getiteminfo(<item name>,<type>)
+*getiteminfo(<aegis item name>,<type>)
 
 This function will look up the item with the specified ID number in the database
 and return the info set by TYPE argument.
-It will return -1 if there is no such item.
+It will return -1 if there is no such item or "" if the aegis item name is requested.
 
 Valid types are:
-	0  - Buy Price
-	1  - Sell Price
-	2  - Type
-	3  - maxchance (max drop chance of this item, e.g. 1 = 0.01%)
-		 if = 0, then monsters don't drop it at all (rare or a quest item)
-		 if = 10000, then this item is sold in NPC shops only
-	4  - Gender
-	5  - Loc
-	6  - Weight
-	7  - ATK
-	8  - DEF
-	9  - Range
-	10 - Slot
-	11 - View
-	12 - eLV
-	13 - wLV
-	14 - SpriteID from 'db/item_avail.txt'
-	15 - eLVMax
-	16 - matk if RENEWAL is defined
-
+	ITEMINFO_BUY             (0)   -  Buy Price
+	ITEMINFO_SELL            (1)   -  Sell Price
+	ITEMINFO_TYPE            (2)   -  Type
+	ITEMINFO_MAXCHANCE       (3)   -  maxchance (max drop chance of this item, e.g. 1 = 0.01%)
+		                        if = 0, then monsters don't drop it at all (rare or a quest item)
+		                        if = 10000, then this item is sold in NPC shops only
+	ITEMINFO_GENDER          (4)   -  Gender
+	ITEMINFO_LOCATIONS       (5)   -  Location(s)
+	ITEMINFO_WEIGHT          (6)   -  Weight
+	ITEMINFO_ATTACK          (7)   -  ATK
+	ITEMINFO_DEFENSE         (8)   -  DEF
+	ITEMINFO_RANGE           (9)   -  Range
+	ITEMINFO_SLOT           (10)   -  Slot
+	ITEMINFO_VIEW           (11)   -  View
+	ITEMINFO_EQUIPLEVELMIN  (12)   -  equipment LV
+	ITEMINFO_WEAPONLEVEL    (13)   -  weapon LV
+	ITEMINFO_ALIASNAME      (14)   -  AliasName
+	ITEMINFO_EQUIPLEVELMAX  (15)   -  equipment LV Max
+	ITEMINFO_MAGICATTACK    (16)   -  matk if RENEWAL is defined
+	ITEMINFO_ID             (17)   -  item ID
+	ITEMINFO_AEGISNAME      (18)   -  aegis item name
+	
 See the sample in 'doc/sample/getiteminfo.txt'.
 
 ---------------------------------------
@@ -5175,19 +5180,34 @@ The default setting, 'item_enabled_npc', is defined in 'conf/battle/items.conf'.
 *itemskill "<skill name>",<skill level>{,<keep requirement>};
 
 This command is meant for item scripts to replicate single-use skills in usable
-items. It will not work properly if there is a visible dialog window or menu.
+items. It will not work properly if there is a visible dialog window or menu or if the item is not type 'Delayconsume'.
 If the skill is self or auto-targeting, it will be used immediately; otherwise a
 target cursor is shown.
 
 If <keep requirement> parameter is set to true, the skill's requirements will be checked.
 By default, the requirements for item skills are not checked, and therefore the default value is false.
 
-// When Anodyne is used, it will cast Endure (8), Level 1, as if the actual
-// skill has been used from skill tree.
-605,Anodyne,Anodyne,11,2000,0,100,,,,,10477567,2,,,,,{ itemskill 8,1; },{}
+// When Anodyne is used, it will cast Endure (8), Level 1, as if the actual skill has been used from skill tree.
+  - Id: 605
+    AegisName: Anodyne
+    Name: Anodyne
+    Type: Delayconsume
+    Buy: 2000
+    Weight: 100
+    Flags:
+      BuyingStore: true
+    Script: |
+      itemskill "SM_ENDURE",1;
 
 // When Sienna_Execrate_Scroll_1_5 is used, it will cast Sienna Execrate Level 5 and consume 2 Red_Gemstones.
-23194,Sienna_Execrate_Scroll_1_5,Level 5 Sienna Execrate,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "WL_SIENNAEXECRATE",5,true; },{},{}
+  - Id: 23194
+    AegisName: Sienna_Execrate_Scroll_1_5
+    Name: Level 5 Sienna Execrate
+    Type: Delayconsume
+    Buy: 10
+    Weight: 10
+    Script: |
+      itemskill "WL_SIENNAEXECRATE",5,true;
 
 ---------------------------------------
 
@@ -6020,8 +6040,16 @@ Types:
 Status_icon: See "Status Icon" section in 'src/map/script_constants.hpp'. Default is SI_BLANK (-1).
 
 Example:
-	// Apple gives you +5 Str bonus for 1 minute when it's consumed.
-	512,Apple,Apple,0,15,,20,,,,,0xFFFFFFFF,63,2,,,,,,{ bonus_script "{ bonus bStr,5; }",60; },{},{}
+  - Id: 512
+    AegisName: Apple
+    Name: Apple
+    Type: Healing
+    Buy: 15
+    Weight: 20
+    Flags:
+      BuyingStore: true
+    Script: |
+      bonus_script "{ bonus bStr,5; }",60;
 
 ---------------------------------------
 
@@ -8597,22 +8625,34 @@ Example:
 ---------------------------------------
 
 *setiteminfo(<item id>,<type>,<value>)
+*setiteminfo(<aegis item name>,<type>,<value>)
 
 This function will set some value of an item.
 Returns the new value on success, or -1 on fail (item_id not found or invalid type).
 
 Valid types are:
-	0 - Buy Price; 1 - Sell Price; 2 - Item Type;
-	3 - maxchance (Max drop chance of this item e.g. 1 = 0.01% , etc..
-		if = 0, then monsters don't drop it at all (rare or a quest item)
-		if = 10000, then this item is sold in NPC shops only
-	4 - sex; 5 - equip; 6 - weight; 7 - atk; 8 - def; 9 - range;
-	10 - slot; 11 - look; 12 - elv; 13 - wlv; 14 - view id
-	15 - eLVMax
-	16 - matk if RENEWAL is defined
+	ITEMINFO_BUY             (0)   -  Buy Price
+	ITEMINFO_SELL            (1)   -  Sell Price
+	ITEMINFO_TYPE            (2)   -  Type
+	ITEMINFO_MAXCHANCE       (3)   -  maxchance (max drop chance of this item, e.g. 1 = 0.01%)
+		                        if = 0, then monsters don't drop it at all (rare or a quest item)
+		                        if = 10000, then this item is sold in NPC shops only
+	ITEMINFO_GENDER          (4)   -  Gender
+	ITEMINFO_LOCATIONS       (5)   -  Location(s)
+	ITEMINFO_WEIGHT          (6)   -  Weight
+	ITEMINFO_ATTACK          (7)   -  ATK
+	ITEMINFO_DEFENSE         (8)   -  DEF
+	ITEMINFO_RANGE           (9)   -  Range
+	ITEMINFO_SLOT           (10)   -  Slot
+	ITEMINFO_VIEW           (11)   -  View
+	ITEMINFO_EQUIPLEVELMIN  (12)   -  equipment LV
+	ITEMINFO_WEAPONLEVEL    (13)   -  weapon LV
+	ITEMINFO_ALIASNAME      (14)   -  AliasName
+	ITEMINFO_EQUIPLEVELMAX  (15)   -  equipment LV Max
+	ITEMINFO_MAGICATTACK    (16)   -  matk if RENEWAL is defined
 
 Example:
-	setiteminfo 7049,6,9990; // Stone now weighs 999.0
+	setiteminfo 7049,ITEMINFO_WEIGHT,9990; // Stone now weighs 999.0
 
 ---------------------------------------
 

+ 3 - 3
npc/custom/etc/autopot.txt

@@ -68,7 +68,7 @@ L_Start:
 		message strcharinfo(0), "'" + getitemname(.@potion) + "' is black listed and cannot be used.";
 		end;
 	}
-	if (BaseLevel < getiteminfo(.@potion,12)) {
+	if (BaseLevel < getiteminfo(.@potion, ITEMINFO_EQUIPLEVELMIN)) {
 		message strcharinfo(0), "Your base level is too low to use '" + getitemname(.@potion) + "'.";
 		end;
 	}
@@ -116,9 +116,9 @@ OnCommand:
 		if(.@command$[1] == "list"){
 			getinventorylist;
 			for(.@i = 0;.@i < @inventorylist_count;.@i++){
-				if (getiteminfo(@inventorylist_id[.@i],2) == IT_HEALING) {
+				if (getiteminfo(@inventorylist_id[.@i], ITEMINFO_TYPE) == IT_HEALING) {
 					.@items[.@count] = @inventorylist_id[.@i];
-					.@menu$ = .@menu$ + sprintf("~ ^0055FF%s^000000 (%dx)" + (inarray(.blackList[0],@inventorylist_id[.@i]) != -1? " ^364022Black Listed^000000":"") + (BaseLevel < getiteminfo(@inventorylist_id[.@i],12)? " ^E82C0CNeed Higher Level^000000":"") + ":", getitemname(@inventorylist_id[.@i]), countitem(@inventorylist_id[.@i]));
+					.@menu$ = .@menu$ + sprintf("~ ^0055FF%s^000000 (%dx)" + (inarray(.blackList[0],@inventorylist_id[.@i]) != -1? " ^364022Black Listed^000000":"") + (BaseLevel < getiteminfo(@inventorylist_id[.@i], ITEMINFO_EQUIPLEVELMIN)? " ^E82C0CNeed Higher Level^000000":"") + ":", getitemname(@inventorylist_id[.@i]), countitem(@inventorylist_id[.@i]));
 					.@count++;
 				}
 			}

+ 1 - 1
npc/custom/item_signer.txt

@@ -80,7 +80,7 @@ prt_in,24,61,7	script	Perchik	47,{
 		emotion ET_SCRATCH;
 		close;
 	}
-	if (getiteminfo(.@id,10)) {
+	if (getiteminfo(.@id, ITEMINFO_SLOT)) {
 		mes "Sorry, I don't sign slotted items.";
 		emotion ET_SORRY;
 		close;

+ 3 - 3
npc/custom/quests/quest_shop.txt

@@ -146,7 +146,7 @@ OnBuyItem:
 	if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
 		mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
 	next;
-	setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
+	setarray @qe[1], getiteminfo(.@q[0], ITEMINFO_LOCATIONS), getiteminfo(.@q[0], ITEMINFO_VIEW);
 	if (@qe[2] > 0 && ((@qe[1] & EQP_HEAD_LOW) || (@qe[1] & EQP_HEAD_TOP) || (@qe[1] & EQP_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_TOP) || (@qe[1] & EQP_COSTUME_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_LOW) || (@qe[1] & EQP_GARMENT) || (@qe[1] & EQP_COSTUME_GARMENT)))
 		set .@preview,1;
 	addtimer 1000, strnpcinfo(0)+"::OnEnd";
@@ -160,7 +160,7 @@ OnBuyItem:
 			}
 			if (!checkweight(.@q[0],.@q[2])) {
 				mes "[Quest Shop]";
-				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
+				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0], ITEMINFO_WEIGHT))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
 				close;
 			}
 			if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
@@ -223,7 +223,7 @@ function Slot {
 	set .@s$,getitemname(getarg(0));
 	switch(.ShowSlot) {
 		case 1: if (!getitemslots(getarg(0))) return .@s$;
-		case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
+		case 2: if (getiteminfo(getarg(0), ITEMINFO_TYPE) == 4 || getiteminfo(getarg(0), ITEMINFO_TYPE) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
 		default: return .@s$;
 	}
 }

+ 1 - 1
npc/events/RWC_2012.txt

@@ -327,7 +327,7 @@ prontera,147,59,3	script	Goldberg#pron	878,{
 		delequip .@part;
 	
 //		GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
-		for ( .@i = getiteminfo(.@equip_id,10); .@i < MAX_SLOTS; .@i++ ) {
+		for ( .@i = getiteminfo(.@equip_id, ITEMINFO_SLOT); .@i < MAX_SLOTS; .@i++ ) {
 			if (callfunc("F_IsCharm",.@equip_card[.@i]) == true)
 				.@equip_card[.@i] = 0;// Armor Enchant System
 		}

+ 1 - 1
npc/merchants/socket_enchant.txt

@@ -259,7 +259,7 @@ function	script	Func_Socket	{
 	mes "Ah, and don't forget to bring that "+ getitemname(.@item_id) +"!";
 	next;
 	mes "[Seiyablem]";
-	if (getiteminfo(.@item_id,5) & EQP_HAND_R) // weapon
+	if (getiteminfo(.@item_id, ITEMINFO_LOCATIONS) & EQP_HAND_R) // weapon
 	{
 		mes "I can try to add a slot now if you have the required items and zeny.";
 		mes "However, you should know that there's a chance that I might fail.";

+ 2 - 2
npc/merchants/socket_enchant2.txt

@@ -410,8 +410,8 @@ function	script	Func_Socket2	{
 	mes "[Leablem]";
 	mes "Did you already bring all of them?";
 	mes "For your information, if you fail to create a slot,";
-	mes "you will lose all the item requirement as well as the target "+ ((getiteminfo(.@item_id,5)&EQP_HAND_R) ? "weapon" : "armor") +".";
-	mes "Also remember, if the "+ ((getiteminfo(.@item_id,5)&EQP_HAND_R) ? "weapon" : "armor") +" has been upgraded, and has been inserted with a card,";
+	mes "you will lose all the item requirement as well as the target "+ ((getiteminfo(.@item_id, ITEMINFO_LOCATIONS)&EQP_HAND_R) ? "weapon" : "armor") +".";
+	mes "Also remember, if the "+ ((getiteminfo(.@item_id, ITEMINFO_LOCATIONS)&EQP_HAND_R) ? "weapon" : "armor") +" has been upgraded, and has been inserted with a card,";
 	mes "you will lose them even if you succeed in creating a slot.";
 	next;
 	switch(select("Ask for slot creation.:Try next time."))

+ 2 - 2
npc/other/Global_Functions.txt

@@ -260,7 +260,7 @@ function	script	F_Load2Skills	{
 // -- callfunc "F_GetArmorType",<item ID>
 //////////////////////////////////////////////////////////////////////////////////
 function	script	F_GetWeaponType	{
-	switch(getiteminfo(getarg(0),11)) {
+	switch(getiteminfo(getarg(0), ITEMINFO_VIEW)) {
 		case 1: return "Dagger"; break;
 		case 2: return "One-handed Sword"; break;
 		case 3: return "Two-handed Sword"; break;
@@ -288,7 +288,7 @@ function	script	F_GetWeaponType	{
 	end;
 }
 function	script	F_GetArmorType	{
-	switch(getiteminfo(getarg(0),5)) {
+	switch(getiteminfo(getarg(0), ITEMINFO_LOCATIONS)) {
 		case EQP_HEAD_LOW:
 			return "Lower Headgear";
 		case EQP_HAND_R:

+ 1 - 1
npc/other/monster_race.txt

@@ -2558,7 +2558,7 @@ S_BonusReward:
 		mes "me a reward later?";
 		next;
 		mes "[Ei'felle]";
-		if (!getiteminfo(.@arg1,13)) { //use item level to determine if the item is armor (no weapon level)
+		if (!getiteminfo(.@arg1, ITEMINFO_WEAPONLEVEL)) { //use item level to determine if the item is armor (no weapon level)
 			mes "Of course, of course.";
 			mes "Remember, if you donate";
 			mes "more medals to me, then";

+ 2 - 2
npc/quests/cooking_quest.txt

@@ -2063,8 +2063,8 @@ L_End:
 
 S_SellSets:
 	.@item_id = getarg(0);
-	.@item_cost = getiteminfo(.@item_id,0);
-	.@item_weight = getiteminfo(.@item_id,6);
+	.@item_cost = getiteminfo(.@item_id, ITEMINFO_BUY);
+	.@item_weight = getiteminfo(.@item_id, ITEMINFO_WEIGHT);
 	mes "[Madeleine Chu]";
 	mes "How many "+ (.@item_id == 12125 ? "Outdoor":"Indoor");
 	mes "Cooking Kits would";

+ 1 - 1
npc/re/merchants/coin_exchange.txt

@@ -552,7 +552,7 @@ function	script	F_mal_coin	{
 				mes "I'm sorry, you need more "+.@str$+".";
 				close;
 			}
-			if (MaxWeight - Weight < getiteminfo(getarg(3),6)) {
+			if (MaxWeight - Weight < getiteminfo(getarg(3), ITEMINFO_WEIGHT)) {
 				mes .@npc_name$;
 				mes "Sorry, you've purchased too many.";
 				mes "You need to make more space in your inventory. Please come back later.";

+ 2 - 2
npc/re/merchants/enchan_mal.txt

@@ -69,7 +69,7 @@ malangdo,213,167,4	script	Mayomayo#mal	555,{
 		close;
 	}
 	@mal_equip_id = getequipid(EQI_HAND_R);
-	.@equip_type = getiteminfo(@mal_equip_id,11);
+	.@equip_type = getiteminfo(@mal_equip_id, ITEMINFO_VIEW);
 
 	// callsub L_Socket,<cost multiplier>,<4-x enchants possible>;
 	switch(.@equip_type) {	//  Check weapon type first to speed up the checks.
@@ -675,7 +675,7 @@ L_Socket:
 		delequip EQI_HAND_R;
 
 		// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
-		for ( .@i = getiteminfo(.@equip_id,10); .@i < MAX_SLOTS; .@i++ ) {
+		for ( .@i = getiteminfo(.@equip_id, ITEMINFO_SLOT); .@i < MAX_SLOTS; .@i++ ) {
 			if (callfunc("F_IsCharm",.@equip_card[.@i]) == true)
 				.@equip_card[.@i] = 0;// Armor Enchant System
 		}

+ 1 - 1
npc/re/merchants/enchan_mora.txt

@@ -1155,7 +1155,7 @@ L_Socket:
 		delequip .@part;
 
 //		GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
-		for ( .@i = getiteminfo(.@equip_id,10); .@i < MAX_SLOTS; .@i++ ) {
+		for ( .@i = getiteminfo(.@equip_id, ITEMINFO_SLOT); .@i < MAX_SLOTS; .@i++ ) {
 			if (callfunc("F_IsCharm",.@equip_card[.@i]) == true)
 				.@equip_card[.@i] = 0;// Armor Enchant System
 		}

+ 3 - 3
npc/re/merchants/malangdo_costume.txt

@@ -456,12 +456,12 @@ mal_in01,20,124,5	script	Designer Heidam#eventhat	4_CAT_SAILOR5,{
 
 	while(1) {
 		for ( .@i = 0; .@i < 18; ++.@i ) {
-			if (getiteminfo(.@box_list[.@i], 2) == -1)	// temporary check
+			if (getiteminfo(.@box_list[.@i], ITEMINFO_TYPE) == -1)	// temporary check
 				continue;
 			.@size = getarraysize( getd(".@item_list_" + .@i) );
 			for ( .@h = 0; .@h < .@size; ++.@h ) {
 				.@id = getd( ".@item_list_" + .@i + "[" + .@h + "]" );
-				if (getiteminfo(.@id, 2) == -1)	// temporary check
+				if (getiteminfo(.@id, ITEMINFO_TYPE) == -1)	// temporary check
 					continue;
 				if (countitem(.@id) < 1)
 					continue;
@@ -1133,7 +1133,7 @@ mal_in01,22,113,3	script	Aver De Dosh#cos_ect	4_WHITETIGER,{
 		close;
 	}
 
-	.@location = getiteminfo(.@equip_id, 5);
+	.@location = getiteminfo(.@equip_id, ITEMINFO_LOCATIONS);
 	.@equip_refine = getequiprefinerycnt(.@part);
 	setarray .@card[0], getequipcardid(.@part, 0), getequipcardid(.@part, 1), getequipcardid(.@part, 2), getequipcardid(.@part, 3);
 

+ 3 - 3
npc/re/quests/eden/eden_tutorial.txt

@@ -152,7 +152,7 @@ moc_para01,34,178,3	script	Tutorial Instructor	904,{
 		close;
 	} else if (checkquest(9168) == 0 || checkquest(9168) == 1) {
 		if (checkweight(607,1) == 0) {
-			if (MaxWeight - Weight < getiteminfo(607,6)) {
+			if (MaxWeight - Weight < getiteminfo(607, ITEMINFO_WEIGHT)) {
 				mes "[Tutorial Instructor]";
 				mes "You seemed to be sluggish with a lot of items";
 				mes "in your inventory making you heavy...";
@@ -354,7 +354,7 @@ moc_para01,34,178,3	script	Tutorial Instructor	904,{
 			}
 		}
 		if (checkweight(607,6) == 0) {
-			if (MaxWeight - Weight < getiteminfo(607,6)) {
+			if (MaxWeight - Weight < getiteminfo(607, ITEMINFO_WEIGHT)) {
 				mes "[Tutorial Instructor]";
 				mes "Your inventory seems to be really full";
 				mes "with various stuff... Do you think";
@@ -573,7 +573,7 @@ moc_para01,34,178,3	script	Tutorial Instructor	904,{
 
 moc_para01,32,179,4	script	Tutorial Goal	895,{
 	if (checkweight(608,7) == 0) {
-		if (MaxWeight - Weight < getiteminfo(608,7)) {
+		if (MaxWeight - Weight < getiteminfo(608, ITEMINFO_WEIGHT)) {
 			mes "[Tutorial Goal]";
 			mes "You seem to be overweight with items. Go put some stuff away then come back.";
 			close;

+ 1 - 1
npc/re/quests/quests_dewata.txt

@@ -172,7 +172,7 @@ dew_in01,22,48,3	script	Sage Kasyapa#dew	541,{
 		mes "Please, it would honor us if you would take it.";
 		next;
 		if (checkweight(6406,1) == 0) {
-			if (Weight + getiteminfo(6406,6) > MaxWeight) {
+			if (Weight + getiteminfo(6406, ITEMINFO_WEIGHT) > MaxWeight) {
 				mes "[Sage Kasyapa]";
 				mes "You are carrying too much weight over the limit.";
 				mes "I cannot get you your reward unless you reduce the amount of weighty items you are carrying.";

+ 3 - 3
sql-files/item_db_etc.sql

@@ -711,8 +711,8 @@ REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`wei
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`script`) VALUES (4424,'Stapo_Card','Stapo Card','Card',20,10,true,true,true,'skill "TF_PICKSTONE",1;\nskill "TF_THROWSTONE",1;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`script`) VALUES (4425,'Atroce_Card','Atroce Card','Card',20,10,true,true,'bonus bBaseAtk,25;\nautobonus "{ bonus bAspdRate,100; }",5,10000,0,"{ specialeffect2 EF_POTION_BERSERK; }";');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_buyingstore`,`script`) VALUES (4426,'Byorgue_Card','Byorgue Card','Card',20,10,true,true,'if (BaseJob == Job_Rogue) {\n   bonus bMatkRate,10;\n   bonus2 bAddClass,Class_All,10;\n}');
-REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`script`) VALUES (4427,'Sword_Guardian_Card','Sword Guardian Card','Card',20,10,true,true,'if (getiteminfo(getequipid(EQI_HAND_R),11) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {\n   bonus bHit,5;\n   bonus bCritical,5;\n   bonus2 bSkillAtk,62,25;\n}');
-REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`script`) VALUES (4428,'Bow_Guardian_Card','Bow Guardian Card','Card',20,10,true,true,'if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW) {\n   bonus bHit,5;\n   bonus bCritical,5;\n   bonus2 bSkillAtk,47,50;\n}');
+REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`script`) VALUES (4427,'Sword_Guardian_Card','Sword Guardian Card','Card',20,10,true,true,'if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {\n   bonus bHit,5;\n   bonus bCritical,5;\n   bonus2 bSkillAtk,62,25;\n}');
+REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`script`) VALUES (4428,'Bow_Guardian_Card','Bow Guardian Card','Card',20,10,true,true,'if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOW) {\n   bonus bHit,5;\n   bonus bCritical,5;\n   bonus2 bSkillAtk,47,50;\n}');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`script`) VALUES (4429,'Salamander_Card','Salamander Card','Card',20,10,true,true,'bonus2 bSkillAtk,"WZ_FIREPILLAR",40;\nbonus2 bSkillAtk,"WZ_METEOR",40;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`script`) VALUES (4430,'Ifrit_Card','Ifrit Card','Card',20,10,true,true,true,'bonus bBaseAtk,(JobLevel/10);\nbonus bCritical,(JobLevel/10);\nbonus bHit,(JobLevel/10);\nbonus3 bAutoSpellWhenHit,"NPC_EARTHQUAKE",2,10;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`script`) VALUES (4431,'Kasa_Card','Kasa Card','Card',20,10,true,true,'bonus3 bAutoSpell,"MG_FIREBALL",5,20;\nbonus3 bAutoSpell,"MG_FIREBOLT",5,20;');
@@ -724,7 +724,7 @@ REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`wei
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`script`) VALUES (4437,'Hell_Poodle_Card','Hell Poodle Card','Card',20,10,true,true,true,'bonus bHit,1;\nbonus2 bAddItemHealRate,517,100;\nbonus3 bAddEff,Eff_Bleeding,50,ATF_SHORT;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_buyingstore`,`script`) VALUES (4438,'Banshee_Card','Banshee Card','Card',20,10,true,true,true,true,'if (BaseClass == Job_Mage) {\n   bonus bMaxSP,100;\n   bonus bMaxHP,-100;\n   bonus2 bSkillAtk,"MG_NAPALMBEAT",20;\n   bonus2 bSkillAtk,"MG_SOULSTRIKE",20;\n   bonus2 bSkillAtk,"HW_NAPALMVULCAN",20;\n}');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_buyingstore`,`script`) VALUES (4439,'Flame_Skull_Card','Flame Skull Card','Card',20,10,true,true,'bonus2 bResEff,Eff_Blind,3000;\nbonus2 bResEff,Eff_Stun,3000;\nbonus2 bResEff,Eff_Curse,3000;\nbonus2 bResEff,Eff_Stone,3000;\nbonus2 bAddEffWhenHit,Eff_Blind,500;\nbonus2 bAddEffWhenHit,Eff_Stun,500;\nbonus2 bAddEffWhenHit,Eff_Curse,500;\nbonus2 bAddEffWhenHit,Eff_Stone,500;');
-REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`script`) VALUES (4440,'Necromancer_Card','Necromancer Card','Card',20,10,true,true,'if (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF) {\n   bonus bInt,1;\n   bonus2 bIgnoreMdefClassRate,Class_Normal,2;\n   bonus2 bIgnoreMdefClassRate,Class_Boss,2;\n}');
+REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`script`) VALUES (4440,'Necromancer_Card','Necromancer Card','Card',20,10,true,true,'if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF) {\n   bonus bInt,1;\n   bonus2 bIgnoreMdefClassRate,Class_Normal,2;\n   bonus2 bIgnoreMdefClassRate,Class_Boss,2;\n}');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_buyingstore`,`script`) VALUES (4441,'Fallen_Bishop_Card','Fallen Bishop Hibram Card','Card',20,10,true,true,'bonus bMatkRate,10;\nbonus bMaxSPrate,-50;\nbonus2 bMagicAddRace,RC_Angel,50;\nbonus2 bMagicAddRace,RC_DemiHuman,50;\nbonus2 bMagicAddRace,RC_Player_Human,50;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_buyingstore`,`script`) VALUES (4442,'Tatacho_Card','Tatacho Card','Card',20,10,true,true,'bonus2 bSubEle,Ele_Neutral,20;\nbonus2 bAddEle,Ele_Neutral,5;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_buyingstore`,`script`) VALUES (4443,'Aqua_Elemental_Card','Aqua Elemental Card','Card',20,10,true,true,'bonus2 bSubEle,Ele_Water,20;\nbonus2 bAddEle,Ele_Water,5;');

+ 2 - 2
sql-files/item_db_re_equip.sql

@@ -3415,7 +3415,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`,`location_head_low`,`view`) VALUES (18567,'Stretched_Nose','Stretched Nose','Armor',20,100,true,737);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`location_head_top`,`equip_level_min`,`view`,`script`) VALUES (18568,'Humming_Bird','Humming Bird','Armor',20,100,3,true,10,702,'bonus bMdef,6;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`equip_level_min`,`refineable`,`view`,`trade_override`,`trade_nodrop`,`script`) VALUES (18569,'Soft_Sheep_Hat','Soft Sheep Hat','Armor',20,1000,true,10,true,738,100,true,'bonus bMaxHPrate,1+getrefine();\nif (getrefine()>9) {\n   bonus2 bExpAddClass,Class_All,5;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`job_alchemist`,`job_assassin`,`job_barddancer`,`job_blacksmith`,`job_crusader`,`job_hunter`,`job_knight`,`job_monk`,`job_priest`,`job_rogue`,`job_sage`,`job_wizard`,`class_third`,`class_third_upper`,`class_third_baby`,`location_head_top`,`equip_level_min`,`refineable`,`view`,`script`) VALUES (18570,'Ancient_Gold_Deco','Ancient Gold Ornament','Armor',20,400,7,1,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,100,true,739,'if (BaseLevel >= 150) {\n   bonus bAllStats,2;\n}\nif (BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief) {\n   bonus2 bAddClass,Class_All,8;\n}\nif (BaseClass == Job_Mage || BaseClass == Job_Acolyte) {\n   bonus bMatkRate,8;\n   bonus bHealPower,7;\n}\nif (BaseClass == Job_Archer) {\n   bonus bDex,3;\n   if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW)\n      bonus bLongAtkRate,10;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`job_alchemist`,`job_assassin`,`job_barddancer`,`job_blacksmith`,`job_crusader`,`job_hunter`,`job_knight`,`job_monk`,`job_priest`,`job_rogue`,`job_sage`,`job_wizard`,`class_third`,`class_third_upper`,`class_third_baby`,`location_head_top`,`equip_level_min`,`refineable`,`view`,`script`) VALUES (18570,'Ancient_Gold_Deco','Ancient Gold Ornament','Armor',20,400,7,1,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,100,true,739,'if (BaseLevel >= 150) {\n   bonus bAllStats,2;\n}\nif (BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief) {\n   bonus2 bAddClass,Class_All,8;\n}\nif (BaseClass == Job_Mage || BaseClass == Job_Acolyte) {\n   bonus bMatkRate,8;\n   bonus bHealPower,7;\n}\nif (BaseClass == Job_Archer) {\n   bonus bDex,3;\n   if (getiteminfo(getequipid(EQI_HAND_R), II_VIEW) == W_BOW)\n      bonus bLongAtkRate,10;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`slots`,`location_head_top`,`view`,`script`) VALUES (18571,'Lucky_Hat','Lucky Hat','Armor',20,1000,1,true,740,'bonus2 bExpAddRace,RC_All,3;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`location_head_top`,`refineable`,`view`,`trade_override`,`trade_nodrop`,`script`) VALUES (18572,'Korean_Judge_Hat','Korean Judge Hat','Armor',20,300,2,1,true,true,377,100,true,'bonus bMdef,2;\nbonus bVariableCastrate,-6;\nbonus bAspdRate,6;\n.@r = getrefine();\nif (.@r>6) {\n   bonus2 bSubRace,RC_DemiHuman,2;\n   bonus2 bSubRace,RC_Player_Human,2;\n}\nif (BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief || Class == Job_Taekwon || Class == Job_Star_Gladiator || Class == Job_Star_Gladiator2 || Class == Job_Monk || Class == Job_Champion || Class == Job_Sura || Class == Job_Sura_T)\n   bonus2 bAddClass,Class_All,(.@r/2);\nif (BaseClass == Job_Mage || BaseClass == Job_Acolyte || Class == Job_Ninja || Class == Job_Soul_Linker)\n   bonus bMatkRate,(.@r/2);\nif (BaseClass == Job_Archer || Class == Job_Gunslinger)\n   bonus bBaseAtk,.@r;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`location_head_top`,`equip_level_min`,`refineable`,`view`,`script`) VALUES (18573,'White_Feather','White Feather','Armor',20,500,2,1,true,30,true,741,'.@r = getrefine();\nif (.@r<5) {\n   bonus bHit,20;\n   bonus bMaxHPrate,-10;\n} else if (.@r<7) {\n   bonus bHit,10;\n} else if (.@r<9) {\n   bonus bHit,7;bonus bMaxHPrate,3;\n}\nelse {\n   bonus bHit,4;bonus bMaxHPrate,4;\n}');
@@ -3545,7 +3545,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`,`job_all`,`job_novice`,`job_supernovice`,`location_head_low`,`equip_level_min`,`view`) VALUES (18698,'Cheesy_Snack_In_Mouth','Cheesy Snack In Mouth','Armor',20,200,true,false,false,true,20,843);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`location_head_top`,`equip_level_min`,`view`) VALUES (18699,'Starving_Fish_Hat','Starving Fish Hat','Armor',20,1200,3,true,1,844);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`location_head_top`,`equip_level_min`,`refineable`,`view`,`script`) VALUES (18700,'Rabbit_Ribbon','Rabbit Ribbon','Armor',20,500,3,1,true,50,true,845,'bonus bInt,1;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`job_all`,`job_novice`,`job_supernovice`,`location_head_top`,`equip_level_min`,`view`,`script`) VALUES (18701,'Ancient_Civil_Man','Ancient Civil Man','Armor',20,500,2,true,false,false,true,70,846,'bonus bInt,3;\nbonus bDex,2;\nbonus bLuk,1;\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK)\n   bonus bVariableCastrate,-3;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`job_all`,`job_novice`,`job_supernovice`,`location_head_top`,`equip_level_min`,`view`,`script`) VALUES (18701,'Ancient_Civil_Man','Ancient Civil Man','Armor',20,500,2,true,false,false,true,70,846,'bonus bInt,3;\nbonus bDex,2;\nbonus bLuk,1;\nif (getiteminfo(getequipid(EQI_HAND_R), II_VIEW) == W_BOOK)\n   bonus bVariableCastrate,-3;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`location_head_low`,`equip_level_min`,`view`) VALUES (18702,'Shaving_Cream','Shaving Cream','Armor',20,50,1,true,10,847);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_low`,`equip_level_min`,`view`,`script`) VALUES (18703,'Stem_In_Mouth','Stem In Mouth','Armor',20,50,true,1,848,'bonus2 bResEff,Eff_Poison,2000;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`defense`,`slots`,`location_head_top`,`equip_level_min`,`refineable`,`view`,`script`) VALUES (18704,'Drosera_Hairpin','Drosera Hairpin','Armor',20,640,6,1,true,64,true,850,'bonus bMdef,4;\nbonus bMaxSP,64;\nbonus2 bSubRace,RC_Insect,-10;');

+ 35 - 35
sql-files/item_db_re_etc.sql

@@ -712,8 +712,8 @@ 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`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4424,'Stapo_Card','Stapo Card','Card',20,10,true,true,true,'CLIENT','skill "TF_PICKSTONE",1;\nskill "TF_THROWSTONE",1;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4425,'Atroce_Card','Atroce Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,25;\nautobonus "{ bonus bAspdRate,100; }",5,10000,0,"{ specialeffect2 EF_POTION_BERSERK; }";');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4426,'Byorgue_Card','Byorgue Card','Card',20,10,true,true,'CLIENT','if (BaseJob == Job_Rogue) {\n   bonus bMatkRate,10;\n   bonus2 bAddClass,Class_All,10;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4427,'Sword_Guardian_Card','Sword Guardian Card','Card',20,10,true,true,'CLIENT','.@i = getiteminfo(getequipid(EQI_HAND_R),11);\nif (.@i == W_1HSWORD || .@i == W_2HSWORD) {\n   bonus bHit,5;\n   bonus bCritical,5;\n   bonus2 bSkillAtk,"KN_BOWLINGBASH",25;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4428,'Bow_Guardian_Card','Bow Guardian Card','Card',20,10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW) {\n   bonus bHit,5;\n   bonus bCritical,5;\n   bonus2 bSkillAtk,"AC_SHOWER",50;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4427,'Sword_Guardian_Card','Sword Guardian Card','Card',20,10,true,true,'CLIENT','.@i = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);\nif (.@i == W_1HSWORD || .@i == W_2HSWORD) {\n   bonus bHit,5;\n   bonus bCritical,5;\n   bonus2 bSkillAtk,"KN_BOWLINGBASH",25;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4428,'Bow_Guardian_Card','Bow Guardian Card','Card',20,10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOW) {\n   bonus bHit,5;\n   bonus bCritical,5;\n   bonus2 bSkillAtk,"AC_SHOWER",50;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4429,'Salamander_Card','Salamander Card','Card',20,10,true,true,'CLIENT','bonus2 bSkillAtk,"WZ_FIREPILLAR",40;\nbonus2 bSkillAtk,"WZ_METEOR",40;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4430,'Ifrit_Card','Ifrit Card','Card',20,10,true,true,true,'CLIENT','bonus bBaseAtk,(JobLevel/10);\nbonus bCritical,(JobLevel/10);\nbonus bHit,(JobLevel/10);\nbonus3 bAutoSpellWhenHit,"NPC_EARTHQUAKE",2,10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4431,'Kasa_Card','Kasa Card','Card',20,10,true,true,'CLIENT','bonus3 bAutoSpell,"MG_FIREBALL",5,20;\nbonus3 bAutoSpell,"MG_FIREBOLT",5,20;');
@@ -725,7 +725,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`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4437,'Hell_Poodle_Card','Hell Poodle Card','Card',20,10,true,true,true,'CLIENT','bonus bHit,1;\nbonus2 bAddItemHealRate,517,100;\nbonus3 bAddEff,Eff_Bleeding,50,ATF_SHORT;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4438,'Banshee_Card','Banshee Card','Card',20,10,true,true,true,true,'CLIENT','if (BaseClass == Job_Mage) {\n   bonus bMaxSP,100;\n   bonus bMaxHP,-100;\n   bonus2 bSkillAtk,"MG_NAPALMBEAT",20;\n   bonus2 bSkillAtk,"MG_SOULSTRIKE",20;\n   bonus2 bSkillAtk,"HW_NAPALMVULCAN",20;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4439,'Flame_Skull_Card','Flame Skull Card','Card',20,10,true,true,'CLIENT','bonus2 bResEff,Eff_Blind,3000;\nbonus2 bResEff,Eff_Stun,3000;\nbonus2 bResEff,Eff_Curse,3000;\nbonus2 bResEff,Eff_Stone,3000;\nbonus2 bAddEffWhenHit,Eff_Blind,500;\nbonus2 bAddEffWhenHit,Eff_Stun,500;\nbonus2 bAddEffWhenHit,Eff_Curse,500;\nbonus2 bAddEffWhenHit,Eff_Stone,500;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4440,'Necromancer_Card','Necromancer Card','Card',20,10,true,true,'CLIENT','.@i = getiteminfo(getequipid(EQI_HAND_R),11);\nif (.@i == W_STAFF || .@i == W_2HSTAFF) {\n   bonus bInt,1;\n   bonus2 bIgnoreMdefClassRate,Class_Normal,2;\n   bonus2 bIgnoreMdefClassRate,Class_Boss,2;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4440,'Necromancer_Card','Necromancer Card','Card',20,10,true,true,'CLIENT','.@i = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);\nif (.@i == W_STAFF || .@i == W_2HSTAFF) {\n   bonus bInt,1;\n   bonus2 bIgnoreMdefClassRate,Class_Normal,2;\n   bonus2 bIgnoreMdefClassRate,Class_Boss,2;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4441,'Fallen_Bishop_Card','Fallen Bishop Hibram Card','Card',20,10,true,true,'CLIENT','bonus bMatkRate,10;\nbonus bMaxSPrate,-50;\nbonus2 bMagicAddRace,RC_Angel,50;\nbonus2 bMagicAddRace,RC_DemiHuman,50;\nbonus2 bMagicAddRace,RC_Player_Human,50;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4442,'Tatacho_Card','Tatacho Card','Card',20,10,true,true,'CLIENT','bonus2 bSubDefEle,Ele_Neutral,20;\nbonus2 bAddEle,Ele_Neutral,5;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4443,'Aqua_Elemental_Card','Aqua Elemental Card','Card',20,10,true,true,'CLIENT','bonus2 bSubDefEle,Ele_Water,20;\nbonus2 bAddEle,Ele_Water,5;');
@@ -750,8 +750,8 @@ 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`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4462,'Hardrock_Mommos_Card','Hardrock Mammoth Card','Card',20,10,true,true,'CLIENT','.@r = getrefine();\nbonus bDef,5;\nif (.@r>=12) {\n   bonus bDef,20;\n   bonus bMaxHPrate,10;\n}\nif (.@r>=14) {\n   bonus bMaxHPrate,3;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4463,'Tendrilion_Card','Tendrilrion Card','Card',20,10,true,true,'CLIENT','bonus bCritical,5;\n.@r = getrefine();\nif (.@r>=12) {\n   bonus bBaseAtk,35;\n}\nif (.@r>=14) {\n   bonus bCritical,10;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4464,'Aunoe_Card','Aunoe Card','Card',20,10,true,true,'CLIENT','bonus bCritAtkRate,20;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4465,'Panat_Card','Fanat Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,10;\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      bonus bAspd,1;\n   }\n   if (.@r>=14) {\n      bonus bAspd,1;\n   }\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4466,'Beholder_Master_Card','Beholder Master Card','Card',20,10,true,true,'CLIENT','bonus bLongAtkRate,3;\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      bonus bAspd,1;\n   }\n   if (.@r>=14) {\n      bonus bAspd,1;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4465,'Panat_Card','Fanat Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,10;\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      bonus bAspd,1;\n   }\n   if (.@r>=14) {\n      bonus bAspd,1;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4466,'Beholder_Master_Card','Beholder Master Card','Card',20,10,true,true,'CLIENT','bonus bLongAtkRate,3;\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOW) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      bonus bAspd,1;\n   }\n   if (.@r>=14) {\n      bonus bAspd,1;\n   }\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4467,'Heavy_Metaling_Card','Heavy Metaling Card','Card',20,10,true,true,'CLIENT','bonus bStr,2;\nif (BaseClass == Job_Merchant) {\n   bonus2 bSkillAtk,"MC_CARTREVOLUTION",50;\n   bonus2 bSkillUseSP,"MC_CARTREVOLUTION",-12;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4468,'Pinguicula_Dark_Card','Dark Pinguicula Card','Card',20,10,true,true,true,true,'CLIENT','bonus bBaseAtk,10;\nbonus2 bAddMonsterDropItem,7932,10;\nbonus2 bAddMonsterDropItem,7933,10;\nbonus2 bAddMonsterDropItem,7934,10;\nbonus2 bAddMonsterDropItem,7935,10;\nbonus2 bAddMonsterDropItem,7936,10;\nbonus2 bAddMonsterDropItem,7937,10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4469,'Naga_Card','Naga Card','Card',20,10,true,true,'CLIENT','bonus2 bMagicAddRace,RC_Fish,10;');
@@ -835,7 +835,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`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4547,'Upd_Byorgue_Card','Enhanced Byorgue Card','Card',20,10,true,true,'CLIENT','if (BaseJob == Job_Rogue) {\n   bonus bMatkRate,10;\n   bonus2 bAddClass,Class_All,10;\n   bonus bMaxHPrate,getrefine()/2;\n}\n/* Adds a chance of inflicting Confuse on target when using Body Paint skill. */');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4548,'Upd_Salamander_Card','Enhanced Salamander Card','Card',20,10,true,true,'CLIENT','bonus2 bSkillAtk,"WZ_FIREPILLAR",40;\nbonus2 bSkillAtk,"WZ_METEOR",40;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4549,'Upd_Maya_Puple_Card','Upd Maya Puple Card','Card',20,10,true,true,true,true,'CLIENT','bonus bIntravision;\nbonus bAllStats,1;\nskill "AL_RUWACH",1;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4550,'Upd_Bow_Guardian_Card','Upd Bow Guardian Card','Card',20,10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOW) {\n   bonus2 bSkillAtk,"RA_ARROWSTORM",50;\n   bonus bCriticalLong,25+10*(getequiprefinerycnt(EQI_HAND_R)/4);\n   bonus bHit,5;\n   bonus3 bAutoSpell,"HT_PHANTASMIC",1,100;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4550,'Upd_Bow_Guardian_Card','Upd Bow Guardian Card','Card',20,10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOW) {\n   bonus2 bSkillAtk,"RA_ARROWSTORM",50;\n   bonus bCriticalLong,25+10*(getequiprefinerycnt(EQI_HAND_R)/4);\n   bonus bHit,5;\n   bonus3 bAutoSpell,"HT_PHANTASMIC",1,100;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4552,'Manny_Card','Manny Card','Card',20,10,true,true,true,'CLIENT','bonus bMaxHP,10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4553,'Sid_Card','Sid Card','Card',20,10,true,true,'CLIENT','bonus bMaxHP,100;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4554,'Diego_Card','Diego Card','Card',20,10,true,true,'CLIENT','bonus bMaxHP,100;');
@@ -858,12 +858,12 @@ 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`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4571,'Gertie_Card','Gertie Card','Card',20,10,true,true,'CLIENT','bonus bFlee,10;\nskill "RG_CLOSECONFINE",1;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4572,'Randel_Card','Randel Card','Card',20,10,true,true,'CLIENT','bonus bFlee,10;\nskill "CR_AUTOGUARD",3;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4573,'Trentini_Card','Trentini Card','Card',20,10,true,true,'CLIENT','bonus bFlee,10;\nif (BaseJob == Job_Dancer) {\n   bonus bMaxHPrate,10;\n   bonus bMaxSPrate,5;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4574,'Daehyon_Card','General Daehyon Card','Card',20,10,true,true,'CLIENT','.@i = getiteminfo(getequipid(EQI_HAND_R),11);\nif (.@i == W_1HSWORD || .@i == W_2HSWORD) {\n   bonus bBaseAtk,100;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4575,'Soheon_Card','Armed Guard Soheon Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,10;\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_DAGGER) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      bonus bAspd,1;\n   }\n   if (.@r>=14) {\n      bonus bAspd,1;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4574,'Daehyon_Card','General Daehyon Card','Card',20,10,true,true,'CLIENT','.@i = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);\nif (.@i == W_1HSWORD || .@i == W_2HSWORD) {\n   bonus bBaseAtk,100;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4575,'Soheon_Card','Armed Guard Soheon Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,10;\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_DAGGER) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      bonus bAspd,1;\n   }\n   if (.@r>=14) {\n      bonus bAspd,1;\n   }\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4576,'Gioia_Card','Gioia Card','Card',20,10,true,true,'CLIENT','bonus2 bMagicAtkEle,Ele_Wind,100;\nbonus2 bMagicAtkEle,Ele_Ghost,100;\nbonus2 bSubEle,Ele_All,-30;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4577,'Elvira_Card','Elvira Card','Card',20,10,true,true,true,'CLIENT','bonus2 bMagicAtkEle,Ele_Wind,20;\nbonus2 bMagicAtkEle,Ele_Ghost,20;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4578,'Pyuriel_Card','Angry Student Pyuriel Card','Card',20,10,true,true,'CLIENT','bonus bCritAtkRate,30;\nbonus2 bSubRace,RC_All,-10;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4579,'Lora_Card','Warrior Lola Card','Card',20,10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R),11) == W_MACE) {\n   bonus bBaseAtk,20;\n   bonus bCritical,10;\n}\n.@r = getrefine();\nbonus bBaseAtk,.@r;\nbonus bCritical,.@r;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4579,'Lora_Card','Warrior Lola Card','Card',20,10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MACE) {\n   bonus bBaseAtk,20;\n   bonus bCritical,10;\n}\n.@r = getrefine();\nbonus bBaseAtk,.@r;\nbonus bCritical,.@r;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4580,'Kades_Card','Dark Guardian Kades Card','Card',20,10,true,true,'CLIENT','bonus2 bSubEle,Ele_Water,50;\nbonus2 bSubEle,Ele_Earth,50;\nbonus2 bSubEle,Ele_Fire,50;\nbonus2 bSubEle,Ele_Wind,50;\nbonus2 bSubEle,Ele_Dark,50;\nbonus2 bSubEle,Ele_Undead,50;\nbonus2 bSubEle,Ele_Holy,-100;\nbonus2 bSubEle,Ele_Ghost,-100;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4581,'Rudo_Card','Rudo Card','Card',20,10,true,true,'CLIENT','autobonus "{ bonus bAgi,44; heal 0,-40; }",500,3000,0,"{ sc_start SC_SPEEDUP1,3000,50; }";');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4582,'Bungisngis_Card','Bungisngis Card','Card',20,10,true,true,true,true,'CLIENT','bonus bMaxHPrate,(getrefine()/2);');
@@ -891,7 +891,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`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4604,'CorruptionRootH_Card','Realized Corruption Root Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,30;\nbonus5 bAutoSpell,"NPC_WIDESTONE",2,50,BF_WEAPON,0;\nbonus5 bAutoSpell,"NPC_WIDESLEEP",2,50,BF_WEAPON,0;\nbonus5 bAutoSpell,"NPC_WIDECURSE",2,50,BF_WEAPON,0;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4605,'UndeadKnightM_Card','Agony Of Royal Knight Card','Card',20,10,true,true,'CLIENT','bonus bMaxHPrate,-44;\nbonus bHPGainValue,200+10*getrefine();');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`,`unequip_script`) VALUES (4606,'UndeadKnightF_Card','Grudge of Royal Knight Card','Card',20,10,true,true,'CLIENT','bonus bMaxSPrate,-44;\nbonus bSPGainValue,20+(getrefine()/2);','heal 0,-444;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4607,'FaithfulManager_Card','Faithful Manager Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,5;\nbonus bMatk,5;\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      bonus bBaseAtk,20;\n   bonus bMatk,20;\n   }\n   if (.@r>=14) {\n      bonus bBaseAtk,20;\n   bonus bMatk,20;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4607,'FaithfulManager_Card','Faithful Manager Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,5;\nbonus bMatk,5;\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOOK) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      bonus bBaseAtk,20;\n   bonus bMatk,20;\n   }\n   if (.@r>=14) {\n      bonus bBaseAtk,20;\n   bonus bMatk,20;\n   }\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4608,'White_Knightage_Card','White Knight Card','Card',20,10,true,true,'CLIENT','bonus bBaseAtk,15;\nbonus2 bAddSize,Size_Medium,20;\nbonus2 bAddSize,Size_Large,20;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4609,'Khaliz_Knightage_Card','Khalitzburg Knight Card','Card',20,10,true,true,'CLIENT','bonus bDef,20;\nbonus2 bSubSize,Size_Medium,25;\nbonus2 bSubSize,Size_Large,25;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (4610,'Sarah_Card','Sarah Card','Card',10,10,true,true,'CLIENT','bonus bAbsorbDmgMaxHP,100;');
@@ -3624,7 +3624,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`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27083,'BitterBonGun_Card','Resentful Bongun Card','Card',20,10,true,'CLIENT','bonus bBaseAtk,20;\nbonus bMatk,20;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27084,'BitterSohee_Card','Resentful Sohee Card','Card',20,10,true,'CLIENT','bonus bMatk,10;\nif (getrefine() >= 10) {\n   bonus bMatkRate,2;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27085,'BitterMunak_Card','Resentful Munak Card','Card',20,10,true,'CLIENT','bonus bBaseAtk,15;\nbonus bMatk,15;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27086,'BitterArcherSk_Card','Resentful Soldier Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_BOW) {\n   bonus3 bAutoSpell,"AC_DOUBLE",5,30;\n   if (getrefine() >= 10) {\n      bonus2 bWeaponDamageRate,W_BOW,20;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27086,'BitterArcherSk_Card','Resentful Soldier Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_BOW) {\n   bonus3 bAutoSpell,"AC_DOUBLE",5,30;\n   if (getrefine() >= 10) {\n      bonus2 bWeaponDamageRate,W_BOW,20;\n   }\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27087,'WizardOfVeritas_Card','Truthful Wizard Card','Card',20,10,true,'CLIENT','bonus bMatk,25;\nautobonus "{ bonus bNoCastCancel; }",5,5000,BF_MAGIC,"{ specialeffect2 EF_POTION_BERSERK; showscript \\"This is the truth!\\"; }";');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_dropeffect`,`script`) VALUES (27088,'FuryHero_Card','Fury Hero Card','Card',20,10,true,true,true,'CLIENT','bonus2 bAddClass,Class_All,2;\nbonus5 bAutoSpell,"SM_ENDURE",1,5,BF_SHORT,0;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27101,'SweetNightM_Card','Sweet Nightmare Card','Card',20,10,true,'CLIENT','bonus bMatk,20;\nbonus bNoCastCancel;');
@@ -3643,7 +3643,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`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27114,'Ominous_Solider_Card','Ominous Solider Card','Card',20,10,true,'CLIENT','bonus bMaxHPrate,(10+(getrefine()/3));\n.@val = 50;\nif (BaseLevel >= 160) {\n   .@val += 50;\n   bonus bVit,3;\n}\nbonus bDef,.@val;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_dropeffect`,`script`) VALUES (27115,'Ominous_Permeter_Card','Ominous Permeter Card','Card',20,10,true,true,true,'CLIENT','.@r = getrefine();\nbonus bInt,1;\nbonus bMaxSP,(80+10*(.@r/2));\nif (.@r >= 7) {\n   bonus bSPrecovRate,30;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27116,'Ominous_Heater_Card','Ominous Heater Card','Card',20,10,true,true,'CLIENT','bonus bCritical,3;\nbonus bCritAtkRate,5;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27117,'Ominous_Assaulter_Card','Ominous Assaulter Card','Card',20,10,true,'CLIENT','.@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11);\nif (.@type == W_WHIP || .@type == W_MUSICAL || .@type == W_BOOK || .@type == W_2HSWORD || .@type == W_2HSPEAR) {\n   .@r = getrefine();\n   bonus bCritical,5;\n   bonus bBaseAtk,(3*.@r);\n}\nbonus bCritAtkRate,(10+.@r);');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27117,'Ominous_Assaulter_Card','Ominous Assaulter Card','Card',20,10,true,'CLIENT','.@type = getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW);\nif (.@type == W_WHIP || .@type == W_MUSICAL || .@type == W_BOOK || .@type == W_2HSWORD || .@type == W_2HSPEAR) {\n   .@r = getrefine();\n   bonus bCritical,5;\n   bonus bBaseAtk,(3*.@r);\n}\nbonus bCritAtkRate,(10+.@r);');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (27118,'Ominous_Freezer_Card','Ominous Freezer Card','Card',20,10,true,'CLIENT','bonus bMaxHPrate,10;\nbonus bStr,2;\nif (BaseLevel >= 160) {\n   .@val = 10;\n}\nif (getrefine() >= 9) {\n   .@val += 10;\n}\nif (.@val) {\n   bonus2 bSkillAtk,"RK_HUNDREDSPEAR",.@val;\n   bonus2 bSkillAtk,"LG_OVERBRAND",.@val;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_dropeffect`,`script`) VALUES (27119,'Ominous_Turtle_General_Card','Ominous Turtle General Card','Card',20,10,true,'CLIENT','bonus bDef,30;\nbonus bMdef,5;\nbonus2 bSubSize,Size_All,25;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27120,'Iara_Card','Iara Card','Card',20,10,true,true,'CLIENT','skill "PR_STRECOVERY",1;');
@@ -3655,7 +3655,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`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27126,'Boitata_Card','Boitata Card','Card',20,10,true,'CLIENT','bonus2 bAddEle,Ele_Wind,40;\nbonus2 bAddEle,Ele_Earth,40;\nbonus2 bAddRace,RC_Brute,40;\nbonus2 bAddRace,RC_Insect,40;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27147,'Human_Kimera_Card','Humanoid Chimera Card','Card',20,10,true,true,'CLIENT','bonus bHit,(BaseLevel >= 90 ? 15 : 5);');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27148,'Matter_Kimera_Card','Material Chimera Card','Card',20,10,true,true,'CLIENT','bonus bFlee,(BaseLevel >= 90 ? 20 : 10);');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27149,'Heart_Hunter_Card','Heart Hunter Card','Card',20,10,true,'CLIENT','.@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11);\n.@r = getrefine();\nif (.@type == 17 || .@type == 18 || .@type == 21) {\n   bonus bLongAtkRate,5+.@r+(.@r >= 10 ? 5 : 0);\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27149,'Heart_Hunter_Card','Heart Hunter Card','Card',20,10,true,'CLIENT','.@type = getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW);\n.@r = getrefine();\nif (.@type == 17 || .@type == 18 || .@type == 21) {\n   bonus bLongAtkRate,5+.@r+(.@r >= 10 ? 5 : 0);\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (27150,'Venom_Kimera_Card','Toxic Enchanted Chimera Card','Card',20,10,true,'CLIENT','bonus bMaxHP,1000;\nbonus bMaxSP,200;\nif (getrefine() >= 12) {\n   bonus bMaxHPrate,15;\n   bonus bMaxSPrate,15;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27151,'Evil_Card','Heart Hunter Evil Card','Card',20,10,true,'CLIENT','bonus2 bAddEffWhenHit,Eff_Freeze,3000 + (readparam(bInt) >= 110 ? 1000 : 0);\nbonus bMdef,5;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (27152,'Cutie_Card','Cutie Card','Card',20,10,true,'CLIENT','bonus bMaxHPrate,10;\n.@r = getrefine()/2;\nbonus bAgi,.@r;\nbonus bAspdRate,.@r;');
@@ -3671,10 +3671,10 @@ 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`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (27166,'Faceworm_Egg_Card','Faceworm Egg Card','Card',20,10,true,'CLIENT','.@r = getrefine();\n.@sub = 2+(.@r >= 9 ? 3 : .@r >= 7 ? 1 : 0);\nbonus2 bSubEle,Ele_Fire,.@sub;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_dropeffect`,`script`) VALUES (27167,'Faceworm_L_Card','Faceworm Larva Card','Card',20,10,true,'CLIENT','bonus2 bSubEle,Ele_Neutral,15;\nbonus2 bMagicAtkEle,Ele_Water,getrefine()*3;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_dropeffect`,`script`) VALUES (27168,'Irene_Elder_Card','Irene High Elder Card','Card',20,10,true,'CLIENT','bonus bHit,10 + 5 * (getrefine()/3);');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27169,'Payon_Soldier_Card','Payon Soldier Card','Card',20,10,true,'CLIENT','.@atk = 5;\n.@r = getrefine();\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_SPEAR && .@r >= 10) {\n   .@atk += 20;\n   if (.@r >= 14) {\n      .@atk += 20;\n   }\n}\nbonus bBaseAtk,.@atk;\nbonus bMatk,.@atk;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27169,'Payon_Soldier_Card','Payon Soldier Card','Card',20,10,true,'CLIENT','.@atk = 5;\n.@r = getrefine();\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_SPEAR && .@r >= 10) {\n   .@atk += 20;\n   if (.@r >= 14) {\n      .@atk += 20;\n   }\n}\nbonus bBaseAtk,.@atk;\nbonus bMatk,.@atk;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27170,'Cowraiders1_Card','Shotgun Buffalo Bandit Card','Card',20,10,true,'CLIENT','bonus bAgi,7;\nbonus bHit,7;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`flag_dropeffect`,`script`) VALUES (27171,'Cowraiders2_Card','Revolver Buffalo Bandit Card','Card',20,10,true,'CLIENT','bonus bStr,4;\nbonus2 bAddClass,Class_All,4;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27172,'Cowraiders3_Card','Scimitar Buffalo Bandit Card','Card',20,10,true,'CLIENT','.@bonus = 5;\n.@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11);\nif (.@type == W_DAGGER) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      .@bonus += 20;\n   }\n   if (.@r>=14) {\n      .@bonus += 20;\n   }\n}\nbonus bBaseAtk,.@bonus;\nbonus bMatk,.@bonus;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27172,'Cowraiders3_Card','Scimitar Buffalo Bandit Card','Card',20,10,true,'CLIENT','.@bonus = 5;\n.@type = getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW);\nif (.@type == W_DAGGER) {\n   .@r = getrefine();\n   if (.@r>=10) {\n      .@bonus += 20;\n   }\n   if (.@r>=14) {\n      .@bonus += 20;\n   }\n}\nbonus bBaseAtk,.@bonus;\nbonus bMatk,.@bonus;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27173,'E_Cowraiders1_Card','Elite Shotgun Buffalo Bandit Card','Card',20,10,true,'CLIENT','.@bonus = 10;\n.@r = getrefine();\nif (.@r>=10) {\n   .@bonus += 20;\n}\nif (.@r>=14) {\n   .@bonus += 20;\n}\nbonus2 bSkillAtk,"GS_SPREADATTACK",.@bonus;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27174,'E_Cowraiders2_Card','Elite Revolver Buffalo Bandit Card','Card',20,10,true,'CLIENT','.@bonus = 10;\n.@r = getrefine();\nif (.@r>=10) {\n   .@bonus += 20;\n}\nif (.@r>=14) {\n   .@bonus += 20;\n}\nbonus2 bSkillAtk,"GS_RAPIDSHOWER",.@bonus;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27175,'E_Cowraiders3_Card','Elite Scimitar Buffalo Bandit Card','Card',20,10,true,'CLIENT','bonus2 bAddSize,Size_Small,10;\nbonus2 bMagicAddSize,Size_Small,10;');
@@ -3698,14 +3698,14 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`loc
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27209,'SLD_Q_Scaraba_Card','Sealed Queen Scaraba Card','Card',10,true,'CLIENT','bonus2 bAddMonsterDropItem,12806,30;\nif (getrefine()>=15) {\n   bonus2 bAddRace2,RC2_SCARABA,25;\n}\nelse {\n   bonus2 bAddRace2,RC2_SCARABA,15;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27211,'SLD_Baphomet_Card','Sealed Baphomet Card','Card',10,true,'CLIENT','bonus bSplashRange,1;\nif (getrefine()>=15) {\n   bonus bHit,-20;\n}\nelse {\n   bonus bHit,-30;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_left_hand`,`flag_dropeffect`,`script`) VALUES (27212,'SLD_Maya_Card','Sealed Maya Card','Card',10,true,'CLIENT','if (getrefine()>=15) {\n   bonus bMagicDamageReturn,30;\n}\nelse {\n   bonus bMagicDamageReturn,15;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27213,'SLD_Clown_Card','Sealed Clown Card','Card',10,true,'CLIENT','if (getrefine()>=15) {\n   .@a = 7;\n   .@b = 15;\n}\nelse {\n   .@a = 5;\n   .@b = 10;\n}\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R),11) == W_WHIP) {\n   skill "BA_POEMBRAGI2",.@a;\n}\nbonus bFlee,(readparam(bVit)>=110) ? (.@b*2) : .@b;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27213,'SLD_Clown_Card','Sealed Clown Card','Card',10,true,'CLIENT','if (getrefine()>=15) {\n   .@a = 7;\n   .@b = 15;\n}\nelse {\n   .@a = 5;\n   .@b = 10;\n}\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_WHIP) {\n   skill "BA_POEMBRAGI2",.@a;\n}\nbonus bFlee,(readparam(bVit)>=110) ? (.@b*2) : .@b;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27214,'SLD_Professor_Card','Sealed Professor Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   bonus5 bAutoSpellWhenHit,"SA_LANDPROTECTOR",1,1,BF_MAGIC,0;\n   bonus bMatkRate,(readparam(bDex)>=110) ? 6 : 3;\n}\nelse {\n   bonus5 bAutoSpellWhenHit,"SA_LANDPROTECTOR",3,1,BF_MAGIC,0;\n   bonus bMatkRate,(readparam(bDex)>=110) ? 10 : 5;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27215,'SLD_Champion_Card','Sealed Champion Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   bonus5 bAutoSpellWhenHit,"MO_INVESTIGATE",1,1,BF_WEAPON,1;\n   bonus2 bAddClass,Class_All,(readparam(bAgi)>=110) ? 6 : 3;\n}\nelse {\n   bonus5 bAutoSpellWhenHit,"MO_INVESTIGATE",3,1,BF_WEAPON,1;\n   bonus2 bAddClass,Class_All,(readparam(bAgi)>=110) ? 10 : 5;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27216,'SLD_Creator_Card','Sealed Creator Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   bonus5 bAutoSpellWhenHit,"AM_ACIDTERROR",1,1,BF_WEAPON,1;\n   bonus bCritical,(readparam(bStr)>=110) ? 20 : 10;\n}\nelse {\n   bonus5 bAutoSpellWhenHit,"AM_ACIDTERROR",3,1,BF_WEAPON,1;\n   bonus bCritical,(readparam(bStr)>=110) ? 30 : 20;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27217,'SLD_Stalker_Card','Sealed Stalker Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   bonus5 bAutoSpellWhenHit,"ST_FULLSTRIP",1,1,BF_WEAPON,1;\n   bonus bHit,(readparam(bLuk)>=110) ? 20 : 10;\n}\nelse {\n   bonus bHit,(readparam(bLuk)>=110) ? 30 : 15;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27218,'SLD_Paladin_Card','Sealed Paladin Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   bonus5 bAutoSpellWhenHit,"CR_GRANDCROSS",5,1,BF_WEAPON,0;\n   bonus bMaxHPrate,(readparam(bInt)>=110) ? 10 : 5;\n}\nelse {\n   bonus5 bAutoSpellWhenHit,"CR_GRANDCROSS",7,1,BF_WEAPON,0;\n   bonus bMaxHPrate,(readparam(bInt)>=110) ? 14 : 7;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27219,'SLD_Gypsy_Card','Sealed Gypsy Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   if (getiteminfo(getequipid(EQI_HAND_R),11) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R),11) == W_WHIP) {\n      skill "DC_FORTUNEKISS2",5;\n   }\n   bonus bFlee,(readparam(bVit)>=110) ? 20 : 10;\n}\nelse {\n   if (getiteminfo(getequipid(EQI_HAND_R),11) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R),11) == W_WHIP) {\n      skill "DC_FORTUNEKISS2",7;\n   }\n   bonus bFlee,(readparam(bVit)>=110) ? 30 : 15;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27220,'SLD_Daehyon_Card','Sealed General Daehyon Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   if (getiteminfo(getequipid(EQI_HAND_R),11) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {\n      bonus bBaseAtk,50;\n   }\n}\nelse {\n   if (getiteminfo(getequipid(EQI_HAND_R),11) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {\n      bonus bBaseAtk,75;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27219,'SLD_Gypsy_Card','Sealed Gypsy Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_WHIP) {\n      skill "DC_FORTUNEKISS2",5;\n   }\n   bonus bFlee,(readparam(bVit)>=110) ? 20 : 10;\n}\nelse {\n   if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_WHIP) {\n      skill "DC_FORTUNEKISS2",7;\n   }\n   bonus bFlee,(readparam(bVit)>=110) ? 30 : 15;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27220,'SLD_Daehyon_Card','Sealed General Daehyon Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {\n      bonus bBaseAtk,50;\n   }\n}\nelse {\n   if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_1HSWORD || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {\n      bonus bBaseAtk,75;\n   }\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_garment`,`flag_dropeffect`,`script`) VALUES (27221,'SLD_Gioia_Card','Sealed Gioia Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   bonus2 bMagicAtkEle,Ele_Ghost,50;\n   bonus2 bMagicAtkEle,Ele_Wind,50;\n   bonus2 bSubEle,Ele_All,-60;\n}\nelse {\n   bonus2 bMagicAtkEle,Ele_Ghost,75;\n   bonus2 bMagicAtkEle,Ele_Wind,75;\n   bonus2 bSubEle,Ele_All,-40;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27222,'SLD_Pyuriel_Card','Sealed Fallen Pyuriel Card','Card',10,true,'CLIENT','if (getrefine()<15) {\n   bonus bCritAtkRate,20;\n   bonus2 bSubRace,RC_All,-20;\n}\nelse {\n   bonus bCritAtkRate,25;\n   bonus2 bSubRace,RC_All,-15;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_garment`,`flag_dropeffect`,`script`) VALUES (27224,'SLD_Kades_Card','Sealed Guardian Kades Card','Card',10,true,'CLIENT','bonus2 bSubEle,Ele_Holy,-100;\nbonus2 bSubEle,Ele_Ghost,-100;\nif (getrefine()<15) {\n   bonus2 bSubEle,Ele_Water,20;\n   bonus2 bSubEle,Ele_Earth,20;\n   bonus2 bSubEle,Ele_Fire,20;\n   bonus2 bSubEle,Ele_Wind,20;\n   bonus2 bSubEle,Ele_Dark,20;\n   bonus2 bSubEle,Ele_Undead,20;\n}\nelse {\n   bonus2 bSubEle,Ele_Water,20;\n   bonus2 bSubEle,Ele_Earth,20;\n   bonus2 bSubEle,Ele_Fire,20;\n   bonus2 bSubEle,Ele_Wind,20;\n   bonus2 bSubEle,Ele_Dark,20;\n   bonus2 bSubEle,Ele_Undead,20;\n}');
@@ -3722,7 +3722,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`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (27258,'Hyper_Death_Card','Ifodes Card','Card',20,10,true,'CLIENT','bonus2 bAddClass,Class_All,3;\nbonus bAspdRate,5;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (27259,'Rechenier_Card','Licheniyes Card','Card',20,10,true,'CLIENT','bonus bMatkRate,3;\nbonus2 bMagicAtkEle,Ele_Holy,5;\nbonus bHealPower,5;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (27260,'Odorico_Card','Odoric Card','Card',20,10,true,'CLIENT','bonus bAspdRate,3;\nbonus bLongAtkRate,5;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27261,'Jew_Card','Ju Card','Card',20,10,true,'CLIENT','.@rate = 10 + (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK ? 20 : 0) + (getrefine() >= 14 ? 20 : 0);\nbonus2 bSkillAtk,"MG_FIREBOLT",.@rate;\nbonus2 bSkillAtk,"MG_COLDBOLT",.@rate;\nbonus2 bSkillAtk,"MG_LIGHTNINGBOLT",.@rate;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27261,'Jew_Card','Ju Card','Card',20,10,true,'CLIENT','.@rate = 10 + (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOOK ? 20 : 0) + (getrefine() >= 14 ? 20 : 0);\nbonus2 bSkillAtk,"MG_FIREBOLT",.@rate;\nbonus2 bSkillAtk,"MG_COLDBOLT",.@rate;\nbonus2 bSkillAtk,"MG_LIGHTNINGBOLT",.@rate;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27262,'Dy_Card','Dwigh Card','Card',20,10,true,true,'CLIENT','bonus2 bMagicAtkEle,Ele_Dark,20;\nbonus2 bMagicAtkEle,Ele_Neutral,20;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (27263,'Fei_Kanabian_Card','Fay Kanavian Card','Card',20,10,true,'CLIENT','autobonus "{ bonus bDef,300; }",20,10000,BF_WEAPON|BF_SHORT,"{ specialeffect2 EF_POTION_BERSERK; active_transform 1040,10000; }";');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_left_hand`,`flag_dropeffect`,`script`) VALUES (27264,'Evil_Shadow_Card','Evil Shadow Card','Card',20,10,true,'CLIENT','bonus2 bSubEle,Ele_Dark,30;\nbonus2 bSubEle,Ele_Undead,30;\nbonus2 bSubEle,Ele_Holy,-30;\nbonus2 bSubEle,Ele_Fire,-30;');
@@ -3743,14 +3743,14 @@ 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`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27301,'Labyrinth_Doppelganger_Card','Labyrinth Doppelganger Card','Card',20,10,true,'CLIENT','bonus2 bAddClass,Class_All,10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27304,'E_EA2S_Card','E EA2S Card','Card',20,10,true,true,'CLIENT','bonus bHPrecovRate,50;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27305,'EL_A17T_Card','EL A17T Card','Card',20,10,true,true,'CLIENT','bonus4 bAutoSpell,"WL_HELLINFERNO",3,20,1;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27306,'Bellare_Card','Bellare Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_REVOLVER) {\n   .@r = getrefine();\n   bonus bHit,20;\n   bonus bLongAtkRate,(5+.@r);\n   if (.@r >= 10) {\n      bonus2 bSkillAtk,"RL_FIREDANCE",15;\n   }\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27307,'High_Bellare_Card','Greater Bellare Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_GATLING) {\n   .@r = getrefine();\n   bonus bHit,20;\n   bonus bLongAtkRate,(5+.@r);\n   if (.@r >= 10) {\n      bonus2 bSkillAtk,"RL_R_TRIP",15;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27306,'Bellare_Card','Bellare Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_REVOLVER) {\n   .@r = getrefine();\n   bonus bHit,20;\n   bonus bLongAtkRate,(5+.@r);\n   if (.@r >= 10) {\n      bonus2 bSkillAtk,"RL_FIREDANCE",15;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27307,'High_Bellare_Card','Greater Bellare Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_GATLING) {\n   .@r = getrefine();\n   bonus bHit,20;\n   bonus bLongAtkRate,(5+.@r);\n   if (.@r >= 10) {\n      bonus2 bSkillAtk,"RL_R_TRIP",15;\n   }\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27308,'Sanare_Card','Sanare Card','Card',20,10,true,'CLIENT','.@r = getrefine();\n.@val = 2;\nif (.@r >= 9) {\n   .@val += 3;\n}\nif (.@r >= 11) {\n   .@val += 5;\n}\nbonus bHealPower,.@val;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_dropeffect`,`script`) VALUES (27309,'High_Sanare_Card','Greater Sanare Card','Card',20,10,true,true,true,'CLIENT','bonus bMatk,10;\n.@val = 5;\nif (getrefine() >= 9) {\n   .@val += 5;\n}\nbonus2 bMagicAtkEle,Ele_Holy,.@val;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_head_top`,`location_head_mid`,`location_head_low`,`flag_dropeffect`,`script`) VALUES (27310,'Plaga_Card','Plaga Card','Card',20,10,true,true,true,'CLIENT','bonus bMatk,10;\n.@val = 5;\nif (getrefine() >= 9) {\n   .@val += 5;\n}\nbonus2 bMagicAtkEle,Ele_Neutral,.@val;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27311,'Mutant_Plaga_Card','Mutant Plaga Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_KNUCKLE) {\n   .@r = getrefine();\n   bonus bHit,20;\n   bonus bBaseAtk,15;\n   if (.@r >= 10) {\n      .@val = 15;\n   }\n   bonus2 bAddSize,Size_Large,(.@r+.@val);\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27311,'Mutant_Plaga_Card','Mutant Plaga Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_KNUCKLE) {\n   .@r = getrefine();\n   bonus bHit,20;\n   bonus bBaseAtk,15;\n   if (.@r >= 10) {\n      .@val = 15;\n   }\n   bonus2 bAddSize,Size_Large,(.@r+.@val);\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (27312,'Dolor_Card','Dolor Card','Card',20,10,true,true,'CLIENT','bonus2 bAddRace,RC_Demon,5;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27313,'Mt_Dolor_Card','Mutant Dolor Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_KATAR) {\n   .@r = getrefine();\n   bonus bCritical,7;\n   bonus bBaseAtk,15;\n   bonus bCritAtkRate,(2*.@r);\n   if (.@r >= 10) {\n      bonus2 bAddSize,Size_Large,15;\n   }\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (27313,'Mt_Dolor_Card','Mutant Dolor Card','Card',20,10,true,'CLIENT','if (getiteminfo(getequipid(EQI_COMPOUND_ON), ITEMINFO_VIEW) == W_KATAR) {\n   .@r = getrefine();\n   bonus bCritical,7;\n   bonus bBaseAtk,15;\n   bonus bCritAtkRate,(2*.@r);\n   if (.@r >= 10) {\n      bonus2 bAddSize,Size_Large,15;\n   }\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_dropeffect`,`script`) VALUES (27314,'Venenum_Card','Venenum Card','Card',20,10,true,'CLIENT','bonus2 bAddRace,RC_Brute,15;\nbonus2 bAddRace,RC_Player_Doram,15;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_garment`,`flag_dropeffect`,`script`) VALUES (27315,'Mt_Venenum_Card','Mutant Venenum Card','Card',20,10,true,'CLIENT','bonus2 bMagicAddRace,RC_Brute,15;\nbonus2 bMagicAddRace,RC_Player_Doram,15;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`location_armor`,`flag_dropeffect`,`script`) VALUES (27316,'Caput_Card','Twin Caput Card','Card',20,10,true,'CLIENT','bonus bDef,50;\nbonus2 bSubDefEle,Ele_Poison,10;');
@@ -4215,9 +4215,9 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`loc
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300006,'Jeweliant_Card','Jewelry Ant Card','Card',10,true,true,'CLIENT','bonus5 bAutoSpell,"SO_PSYCHIC_WAVE",1,100,BF_WEAPON,1;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300007,'Jungoliant_Card','Jeweled Ungoliant Card','Card',10,true,true,'CLIENT','bonus2 bAddEle,Ele_Fire,40;\nbonus2 bAddEle,Ele_Water,40;\nbonus2 bAddRace,RC_Formless,40;\nbonus2 bAddRace,RC_Plant,40;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300008,'Angelgolt_Card','Angelgolt Card','Card',10,true,true,'CLIENT','bonus2 bMagicAddRace,RC_Demon,10;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300009,'Plasma_Spt_Card','Spectrum Plasma Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Ghost,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Ghost,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Ghost,10;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300010,'Plasma_Arch_Card','Arch Plasma Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Wind,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Wind,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Wind,10;\n}');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300011,'Holy_Frus_Card','Holy Frus Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Holy,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Holy,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Holy,10;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300009,'Plasma_Spt_Card','Spectrum Plasma Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Ghost,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Ghost,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Ghost,10;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300010,'Plasma_Arch_Card','Arch Plasma Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Wind,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Wind,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Wind,10;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300011,'Holy_Frus_Card','Holy Frus Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Holy,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Holy,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Holy,10;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300012,'Holy_Skogul_Card','Holy Skogul Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nbonus bHealPower,5;\nif (.@r>=7) {\n   bonus bHealPower,3;\n}\nif (.@r>=9) {\n   bonus bHealPower,2;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300013,'Reginleif_Card','Reginleif Card','Card',10,true,true,'CLIENT','bonus bUnbreakableArmor;\nbonus2 bAddClass,Class_All,30;\nbonus bMaxHPrate,-15;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`,`unequip_script`) VALUES (300014,'Ingrid_Card','Ingrid Card','Card',10,true,true,'CLIENT','bonus bUnbreakableArmor;\nbonus2 bAddClass,Class_All,-15;\nbonus bMaxHPrate,40;\nbonus2 bHPLossRate,1000,4000;','heal -10000,0;');
@@ -4234,21 +4234,21 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`loc
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300079,'Red_Pepper_Card','Red Pepper Card','Card',10,true,true,'CLIENT','bonus2 bMagicAddRace,RC_Fish,30;\nbonus2 bMagicAddRace,RC_Formless,30;\nbonus2 bMagicAddEle,Ele_Holy,30;\nbonus2 bMagicAddEle,Ele_Water,30;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_armor`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300080,'Red_Pepper_H_Card','Greater Red Pepper Card','Card',10,true,true,'CLIENT','bonus2 bMagicAddRace,RC_Fish,50;\nbonus2 bMagicAddRace,RC_Formless,50;\nbonus2 bMagicAddEle,Ele_Holy,50;\nbonus2 bMagicAddEle,Ele_Water,50;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300081,'Assistant_Card','Research Assistant Bot Card','Card',10,true,true,'CLIENT','bonus bInt,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"MG_FIREBALL",25;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300082,'Assistant_H_Card','Greater Research Assistant Bot Card','Card',10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R),11) == W_1HSPEAR || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSPEAR) {\n   bonus bLongAtkRate,10;\n}\nbonus bLongAtkRate,2*(getrefine()/2);');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300082,'Assistant_H_Card','Greater Research Assistant Bot Card','Card',10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_1HSPEAR || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSPEAR) {\n   bonus bLongAtkRate,10;\n}\nbonus bLongAtkRate,2*(getrefine()/2);');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300083,'Dry_Rafflesia_Card','Dried Rafflesia Card','Card',10,true,true,'CLIENT','bonus bAgi,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"NJ_KUNAI",15;\nbonus2 bSkillAtk,"NJ_HYOUSENSOU",15;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300084,'Dry_Rafflesia_H_Card','Greater Dried Rafflesia Card','Card',10,true,true,'CLIENT','bonus2 bSubEle,Ele_Holy,30;\nbonus bFlee,5;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300085,'Alnoldi_Ex_Card','Special Alnoldi Card','Card',10,true,true,'CLIENT','bonus bStr,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus bBaseAtk,getskilllv("TK_POWER");');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300086,'Alnoldi_Ex_H_Card','Greater Special Alnoldi Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {\n   bonus bShortAtkRate,10;\n}\nbonus bShortAtkRate,.@r;\nif (.@r>=11) {\n   bonus bUnbreakableWeapon;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300086,'Alnoldi_Ex_H_Card','Greater Special Alnoldi Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {\n   bonus bShortAtkRate,10;\n}\nbonus bShortAtkRate,.@r;\nif (.@r>=11) {\n   bonus bUnbreakableWeapon;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300087,'Beta_Basic_Card','Broken Gardener Beta Card','Card',10,true,true,'CLIENT','bonus bLuk,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"SU_SV_STEMSPEAR",10;\nbonus2 bSkillAtk,"SU_SCAROFTAROU",10;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300088,'Beta_Basic_H_Card','Greater_Broken Gardener Beta Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK) {\n   bonus2 bAddClass,Class_All,5;\n   bonus bHit,20;\n}\nbonus bShortAtkRate,.@r;\nbonus2 bSkillAtk,"SJ_FALLINGSTAR_ATK",15*.@r;\nbonus2 bSkillAtk,"SJ_FULLMOONKICK",15*.@r;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300088,'Beta_Basic_H_Card','Greater_Broken Gardener Beta Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOOK) {\n   bonus2 bAddClass,Class_All,5;\n   bonus bHit,20;\n}\nbonus bShortAtkRate,.@r;\nbonus2 bSkillAtk,"SJ_FALLINGSTAR_ATK",15*.@r;\nbonus2 bSkillAtk,"SJ_FULLMOONKICK",15*.@r;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300089,'Verporta_Card','Verporta Card','Card',10,true,true,'CLIENT','bonus bStr,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"MS_MAGNUM",25;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300090,'Verporte_Card','Verporte Card','Card',10,true,true,'CLIENT','bonus2 bMagicAtkEle,Ele_Earth,10;\nbonus bUseSPrate,5;\nif (getrefine()>=9) {\n   bonus2 bMagicAtkEle,Ele_Earth,10;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300091,'MD_Papila_Card','Papila Card','Card',10,true,true,'CLIENT','bonus bDex,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"GS_SPREADATTACK",10;\nbonus2 bSkillAtk,"GS_DESPERADO",10;\nbonus2 bSkillAtk,"GS_FULLBUSTER",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300092,'MD_Papila_H_Card','Greater Papila Card','Card',10,true,true,'CLIENT','bonus bLuk,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"MC_CARTREVOLUTION",50;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300093,'MD_Papila_Ruba_Card','Papila Ruba Card','Card',10,true,true,'CLIENT','bonus bInt,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"AL_HOLYLIGHT",50;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300094,'MD_Papila_Ruba_H_Card','Greater Papila Ruba Card','Card',10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSWORD) {\n   bonus bCritAtkRate,20;\n}\nbonus bCritAtkRate,2*(getrefine()/2);');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300094,'MD_Papila_Ruba_H_Card','Greater Papila Ruba Card','Card',10,true,true,'CLIENT','if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSWORD) {\n   bonus bCritAtkRate,20;\n}\nbonus bCritAtkRate,2*(getrefine()/2);');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300095,'MD_Papila_Cae_Card','Papila Cae Card','Card',10,true,true,'CLIENT','bonus bDex,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"AC_SHOWER",25;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300096,'MD_Papila_Cae_H_Card','Greater Papila Cae Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R),11) == W_WHIP) {\n   bonus bMatk,20;\n}\nif (.@r>=10) {\n   bonus bVariableCastrate,-10;\n   bonus bMatk,20;\n}\nif (.@r>=13) {\n   bonus bMatk,20;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300096,'MD_Papila_Cae_H_Card','Greater Papila Cae Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_MUSICAL || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_WHIP) {\n   bonus bMatk,20;\n}\nif (.@r>=10) {\n   bonus bVariableCastrate,-10;\n   bonus bMatk,20;\n}\nif (.@r>=13) {\n   bonus bMatk,20;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300097,'Aries_Card','Aries Card','Card',10,true,true,'CLIENT','bonus bAgi,2;\nbonus bMaxHPrate,10;\nbonus bMaxSPrate,10;\nbonus2 bSkillAtk,"TF_POISON",25;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300098,'Aries_H_Card','Greater Aries Card','Card',10,true,true,'CLIENT','bonus bMatk,5;\nbonus2 bSkillAtk,"NJ_KOUENKA",10;\nbonus2 bSkillAtk,"NJ_HYOUSENSOU",10;\nbonus2 bSkillAtk,"NJ_HUUJIN",10;\nif (getrefine()>=7) {\n   bonus bVariableCastrate,-5;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_left_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300099,'Silva_Papilia_Card','Silva Papilia Card','Card',10,true,true,'CLIENT','bonus2 bSubClass,Class_Normal,20;\nbonus bHealPower2,15;');
@@ -4258,7 +4258,7 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`loc
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300103,'Bath_Mermaid_Card','Azure Princess Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nbonus bMatk,15;\nif (.@r>=9) {\n   bonus2 bMagicAddRace,RC_Fish,10;\n   bonus2 bMagicAddRace,RC_DemiHuman,10;\n}\nif (.@r>=11) {\n   bonus bDelayrate,-3;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300104,'Bookworm_Card','Bookworm Card','Card',10,true,true,true,'CLIENT','bonus bVit,1;\nbonus bInt,2;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"SO_DIAMONDDUST",10;\nbonus2 bSkillAtk,"SO_PSYCHIC_WAVE",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300105,'Roaming_Spellbook_Card','Roaming Spellbook Card','Card',10,true,true,true,'CLIENT','bonus bInt,3;\nbonus bMaxHPrate,5;\nbonus bMaxSPrate,5;\nbonus2 bSkillAtk,"WL_CRIMSONROCK",10;\nbonus2 bSkillAtk,"WL_COMET",10;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300106,'Red_Pitaya_Card','Red Pitaya Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Fire,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Fire,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Fire,10;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300106,'Red_Pitaya_Card','Red Pitaya Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Fire,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Fire,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Fire,10;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300107,'Meow_Card','Meow Card','Card',10,true,true,true,'CLIENT','bonus2 bAddItemHealRate,513,500;\nbonus2 bAddItemHealRate,512,500;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300108,'Sewage_Venenum_Card','Sewage Venenum Card','Card',10,true,true,true,'CLIENT','bonus bAgi,2;\nbonus bDex,1;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"SC_FATALMENACE",10;\nbonus2 bSkillAtk,"SC_TRIANGLESHOT",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300109,'Sewage_Cramp_Card','Sewage Cramp Card','Card',10,true,true,true,'CLIENT','bonus bStr,1;\nbonus bDex,2;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"GC_COUNTERSLASH",10;\nbonus2 bSkillAtk,"GC_ROLLINGCUTTER",10;');
@@ -4266,7 +4266,7 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`loc
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300111,'Bellare3_Card','Elite Bellare Card','Card',10,true,true,true,'CLIENT','bonus bAgi,2;\nbonus bInt,1;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"NJ_KOUENKA",10;\nbonus2 bSkillAtk,"NJ_HYOUSENSOU",10;\nbonus2 bSkillAtk,"NJ_HUUJIN",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300112,'Dolor3_Card','Magic-poisoned Dolor Card','Card',10,true,true,true,'CLIENT','bonus bVit,1;\nbonus bInt,2;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"SP_CURSEEXPLOSION",10;\nbonus2 bSkillAtk,"SP_SWHOO",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300113,'Unleashed_Magic_Card','Unleashed Magic Card','Card',10,true,true,true,'CLIENT','bonus bVit,1;\nbonus bInt,2;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",10;\nbonus2 bSkillAtk,"WM_REVERBERATION",10;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300114,'Plaga3_Card','Magic-poisoned Plaga Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Neutral,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Neutral,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Neutral,10;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300114,'Plaga3_Card','Magic-poisoned Plaga Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Neutral,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Neutral,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Neutral,10;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300115,'Sanare3_Card','Magic-poisoned Sanare Card','Card',10,true,true,true,'CLIENT','bonus bInt,2;\nbonus bDex,1;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"AB_ADORAMUS",10;\nbonus2 bSkillAtk,"AB_JUDEX",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300116,'Powerful_Magic_Card','Powerful Magic Card','Card',10,true,true,true,'CLIENT','bonus bStr,2;\nbonus bInt,1;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"SR_RAMPAGEBLASTER",10;\nbonus2 bSkillAtk,"SR_TIGERCANNON",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300117,'Sharp_Magic_Card','Sharp Magic Card','Card',10,true,true,true,'CLIENT','bonus bAgi,1;\nbonus bDex,2;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"RA_ARROWSTORM",10;\nbonus2 bSkillAtk,"RA_CLUSTERBOMB",10;');
@@ -4276,7 +4276,7 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`loc
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300121,'Boiling_Marc_Card','Boiling Marc Card','Card',10,true,true,'CLIENT','.@r = getrefine();\nbonus2 bMagicAtkEle,Ele_Holy,5;\nbonus2 bMagicAtkEle,Ele_Water,5;\nbonus2 bMagicAtkEle,Ele_Holy,(.@r/2);\nbonus2 bMagicAtkEle,Ele_Water,(.@r/2);');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300122,'Yellow_Pitaya_Card','Yellow Pitaya Card','Card',10,true,true,'CLIENT','bonus2 bSubEle,Ele_Neutral,15;\nbonus2 bMagicAtkEle,Ele_Holy,3*getrefine();');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_garment`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300123,'Purple_Pitaya_Card','Purple Pitaya Card','Card',10,true,true,'CLIENT','bonus2 bSubEle,Ele_Neutral,15;\nbonus2 bMagicAtkEle,Ele_Neutral,3*getrefine();');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300124,'Blue_Pitaya_Card','Blue Pitaya Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R),11) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Water,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Water,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Water,10;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300124,'Blue_Pitaya_Card','Blue Pitaya Card','Card',10,true,true,'CLIENT','.@r = getequiprefinerycnt(EQI_HAND_R);\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_STAFF || getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_2HSTAFF) {\n   bonus2 bMagicAtkEle,Ele_Water,10;\n}\nif (.@r>=10) {\n   bonus2 bMagicAtkEle,Ele_Water,10;\n}\nif (.@r>=14) {\n   bonus2 bMagicAtkEle,Ele_Water,10;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_buyingstore`,`flag_dropeffect`,`script`) VALUES (300125,'Green_Pitaya_Card','Green Pitaya Card','Card',10,true,true,true,'CLIENT','bonus bInt,1;\nbonus bLuk,2;\nbonus bMaxHPrate,10;\nbonus2 bSkillAtk,"SU_CN_METEOR",10;\nbonus2 bSkillAtk,"SU_PICKYPECK",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`) VALUES (300127,'Wolf_Card_E','Wolf Card','Card',10,true);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (300128,'S_Wolf_Card','Wolf Lugenburg Card','Card',10,true,'CLIENT','bonus2 bAddRace,RC_Insect,15;\nbonus2 bMagicAddRace,RC_Insect,15;');
@@ -4306,7 +4306,7 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`loc
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (300186,'MD_Geffen_Hyper_Card','Arena Ifodes Card','Card',10,true,'CLIENT','bonus bAspdRate,7;\nbonus bShortAtkRate,7;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (300187,'MD_Geffen_Odorico_Card','Arena Odoric Card','Card',10,true,'CLIENT','bonus bAspdRate,7;\nbonus bLongAtkRate,7;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (300188,'MD_Geffen_Reche_Card','Arena Licheniyes Card','Card',10,true,'CLIENT','bonus2 bMagicAtkEle,Ele_Holy,10;\nbonus bHealPower,20;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (300189,'MD_Geffen_Jew_Card','Arena Ju Card','Card',10,true,'CLIENT','.@val = 15;\nif (getiteminfo(getequipid(EQI_HAND_R),11) == W_BOOK) {\n   .@val += 20;\n}\nif (getrefine()>=14) {\n   .@val += 30;\n}\nbonus2 bSkillAtk,"MG_LIGHTNINGBOLT",.@val;\nbonus2 bSkillAtk,"MG_FIREBOLT",.@val;\nbonus2 bSkillAtk,"MG_COLDBOLT",.@val;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_hand`,`flag_dropeffect`,`script`) VALUES (300189,'MD_Geffen_Jew_Card','Arena Ju Card','Card',10,true,'CLIENT','.@val = 15;\nif (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW) == W_BOOK) {\n   .@val += 20;\n}\nif (getrefine()>=14) {\n   .@val += 30;\n}\nbonus2 bSkillAtk,"MG_LIGHTNINGBOLT",.@val;\nbonus2 bSkillAtk,"MG_FIREBOLT",.@val;\nbonus2 bSkillAtk,"MG_COLDBOLT",.@val;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_shoes`,`flag_dropeffect`,`script`) VALUES (300190,'MD_Geffen_Fei_Card','Arena Fay Kanavian Card','Card',10,true,'CLIENT','bonus2 bMagicAtkEle,Ele_Neutral,10;\nbonus2 bMagicAtkEle,Ele_Earth,10;\nautobonus "{ bonus bDef,500; }",1,5000,BF_WEAPON,"{ active_transform 1040,5000; /*GOLEM*/ }";');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`location_right_accessory`,`location_left_accessory`,`flag_dropeffect`,`script`) VALUES (300191,'MD_Geffen_Dy_Card','Arena Dwigh Card','Card',10,true,true,'CLIENT','bonus2 bMagicAtkEle,Ele_Neutral,20;\nbonus2 bMagicAtkEle,Ele_Undead,20;\nbonus2 bMagicAtkEle,Ele_Dark,20;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`script`) VALUES (310000,'Ranger_Top2','Sniper Stone II (Top)','Card','bonus bAspdRate,getskilllv("SN_WINDWALK")/2;');

+ 2 - 2
sql-files/item_db_re_usable.sql

@@ -527,7 +527,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`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12217,'Aspersio_5_Scroll','LV5 Aspersio Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'if (countitem(523)>0) {\n   skilleffect "PR_ASPERSIO",0;\n   sc_start SC_ASPERSIO,180000,5;\n   delitem 523,1;\n}');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12218,'Assumptio_5_Scroll','LV5 Assumptio Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'sc_start SC_ASSUMPTIO,100000,5;\nskilleffect "HP_ASSUMPTIO",0;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12219,'Wind_Walk_10_Scroll','LV10 Wind Walker Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'skilleffect "SN_WINDWALK",0;\nsc_start SC_WINDWALK,250000,10;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'.@type = getiteminfo(getequipid(EQI_HAND_R),11);\nif (.@type == W_1HAXE || .@type == W_2HAXE || .@type == W_MACE) {\n   skilleffect "BS_ADRENALINE",0;\n   sc_start SC_ADRENALINE,150000,5;\n}');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'.@type = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);\nif (.@type == W_1HAXE || .@type == W_2HAXE || .@type == W_MACE) {\n   skilleffect "BS_ADRENALINE",0;\n   sc_start SC_ADRENALINE,150000,5;\n}');
 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 (12221,'Megaphone_','Megaphone','Usable',2,10,100,true,true,true,true,true,true,true,'input .@megaphone$;\nannounce strcharinfo(0) + ": " + .@megaphone$,bc_all,0xFF0000;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`script`) VALUES (12225,'Sweet_Candy_Striper','Sweet Candy Cane','Usable',20,50,100,true,'pet 1245;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12226,'Examination1','Examination 1','Healing',20,50,'sc_start SC_SPEEDUP0,5400000,25;\npercentheal 100,100;\nsc_start SC_STRFOOD,5400000,10;\nsc_start SC_DEXFOOD,5400000,5;\nsc_start SC_ATKPOTION,5400000,22;\nsc_start SC_MATKFOOD,5400000,15;');
@@ -772,7 +772,7 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`scr
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12466,'F_Blessing_10_Scroll','F Blessing 10 Scroll','Delayconsume',2,10,'itemskill "AL_BLESSING",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12467,'F_Inc_Agi_10_Scroll','F Inc Agi 10 Scroll','Delayconsume',2,10,'itemskill "AL_INCAGI",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12468,'F_Aspersio_5_Scroll','F Aspersio 5 Scroll','Delayconsume',2,10,'itemskill "PR_ASPERSIO",5;');
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12470,'F_Wind_Walk_10_Scroll','F Wind Walk 10 Delayconsume','Usable',2,10,'itemskill "SN_WINDWALK",10;');
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12470,'F_Wind_Walk_10_Scroll','F Wind Walk 10 Scroll','Delayconsume',2,10,'itemskill "SN_WINDWALK",10;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12471,'F_Adrenaline_Scroll','F Adrenaline Scroll','Delayconsume',2,10,'itemskill "BS_ADRENALINE",5;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12472,'F_Convex_Mirror','F Convex Mirror','Usable',2,10,'sc_start SC_BOSSMAPINFO,600000,0;');
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`flag_container`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12473,'RWC_Parti_Box','RWC Parti Box','Usable',20,10,true,100,true,100,true,true,true,true,true,true,'getgroupitem(IG_RWC_Parti_Box);');

+ 1 - 1
sql-files/item_db_usable.sql

@@ -445,7 +445,7 @@ REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`wei
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12217,'Aspersio_5_Scroll','LV5 Aspersio Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'if (countitem(523)>0) {\n   skilleffect "PR_ASPERSIO",0;\n   sc_start SC_ASPERSIO,180000,5;\n   delitem 523,1;\n}');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12218,'Assumptio_5_Scroll','LV5 Assumptio Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'sc_start SC_ASSUMPTIO,100000,5;\nskilleffect "HP_ASSUMPTIO",0;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12219,'Wind_Walk_10_Scroll','LV10 Wind Walker Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'skilleffect "SN_WINDWALK",0;\nsc_start SC_WINDWALK,250000,5;');
-REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'set .@type,getiteminfo(getequipid(EQI_HAND_R),11);\nif (.@type == W_1HAXE || .@type == W_2HAXE || .@type == W_MACE) {\n   skilleffect "BS_ADRENALINE",0;\n   sc_start SC_ADRENALINE,150000,5;\n}');
+REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`,`script`) VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll','Usable',2,10,100,true,100,true,true,true,true,true,true,true,'set .@type,getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);\nif (.@type == W_1HAXE || .@type == W_2HAXE || .@type == W_MACE) {\n   skilleffect "BS_ADRENALINE",0;\n   sc_start SC_ADRENALINE,150000,5;\n}');
 REPLACE INTO `item_db` (`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 (12221,'Megaphone_','Megaphone','Usable',2,10,100,true,true,true,true,true,true,true,'input @megaphone$;\nannounce strcharinfo(0) + ": " + @megaphone$,bc_all,0xFF0000;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`nouse_override`,`nouse_sitting`,`script`) VALUES (12225,'Sweet_Candy_Striper','Sweet Candy Cane','Usable',20,50,100,true,'pet 1245;');
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`price_buy`,`weight`,`script`) VALUES (12226,'Examination1','Examination 1','Healing',20,50,'sc_start SC_SPEEDUP0,5400000,25;\npercentheal 100,100;\nsc_start SC_STRFOOD,5400000,10;\nsc_start SC_DEXFOOD,5400000,5;\nsc_start SC_ATKPOTION,5400000,22;\nsc_start SC_MATKFOOD,5400000,15;');

+ 0 - 1
src/map/itemdb.hpp

@@ -852,7 +852,6 @@ struct item_data
 	t_itemid nameid;
 	std::string name, ename;
 
-	//Do not add stuff between value_buy and view_id (see how getiteminfo works)
 	uint32 value_buy;
 	uint32 value_sell;
 	item_types type;

+ 56 - 83
src/map/script.cpp

@@ -13965,60 +13965,48 @@ BUILDIN_FUNC(getitemslots)
 /*==========================================
  * Returns some values of an item [Lupus]
  * Price, Weight, etc...
-	getiteminfo(itemID,n), where n
-		0 value_buy;
-		1 value_sell;
-		2 type;
-		3 maxchance = Max drop chance of this item e.g. 1 = 0.01% , etc..
-				if = 0, then monsters don't drop it at all (rare or a quest item)
-				if = -1, then this item is sold in NPC shops only
-		4 sex;
-		5 equip;
-		6 weight;
-		7 atk;
-		8 def;
-		9 range;
-		10 slot;
-		11 look;
-		12 elv;
-		13 wlv;
-		14 view id
-		15 eLvmax
-		16 matk (renewal)
  *------------------------------------------*/
 BUILDIN_FUNC(getiteminfo)
 {
-	t_itemid item_id = script_getnum(st,2);
-	item_data *i_data = itemdb_exists(item_id);
+	item_data *i_data;
+	int type = script_getnum(st, 3);
+
+	if (script_isstring(st, 2))
+		i_data = itemdb_searchname(script_getstr(st, 2));
+	else
+		i_data = itemdb_exists(script_getnum(st, 2));
 
 	if (i_data == nullptr) {
-		script_pushint(st, -1);
+		if (type != ITEMINFO_AEGISNAME)
+			script_pushint(st, -1);
+		else
+			script_pushstrcopy(st, "");
 		return SCRIPT_CMD_SUCCESS;
 	}
-	switch( script_getnum(st, 3) ) {
-		case 0: script_pushint(st, i_data->value_buy); break;
-		case 1: script_pushint(st, i_data->value_sell); break;
-		case 2: script_pushint(st, i_data->type); break;
-		case 3: script_pushint(st, i_data->maxchance); break;
-		case 4: script_pushint(st, i_data->sex); break;
-		case 5: script_pushint(st, i_data->equip); break;
-		case 6: script_pushint(st, i_data->weight); break;
-		case 7: script_pushint(st, i_data->atk); break;
-		case 8: script_pushint(st, i_data->def); break;
-		case 9: script_pushint(st, i_data->range); break;
-		case 10: script_pushint(st, i_data->slots); break;
-		case 11:
+	switch( type ) {
+		case ITEMINFO_BUY: script_pushint(st, i_data->value_buy); break;
+		case ITEMINFO_SELL: script_pushint(st, i_data->value_sell); break;
+		case ITEMINFO_TYPE: script_pushint(st, i_data->type); break;
+		case ITEMINFO_MAXCHANCE: script_pushint(st, i_data->maxchance); break;
+		case ITEMINFO_GENDER: script_pushint(st, i_data->sex); break;
+		case ITEMINFO_LOCATIONS: script_pushint(st, i_data->equip); break;
+		case ITEMINFO_WEIGHT: script_pushint(st, i_data->weight); break;
+		case ITEMINFO_ATTACK: script_pushint(st, i_data->atk); break;
+		case ITEMINFO_DEFENSE: script_pushint(st, i_data->def); break;
+		case ITEMINFO_RANGE: script_pushint(st, i_data->range); break;
+		case ITEMINFO_SLOT: script_pushint(st, i_data->slots); break;
+		case ITEMINFO_VIEW:
 			if (i_data->type == IT_WEAPON || i_data->type == IT_AMMO) {	// keep old compatibility
 				script_pushint(st, i_data->subtype);
 			} else {
 				script_pushint(st, i_data->look);
 			}
 			break;
-		case 12: script_pushint(st, i_data->elv); break;
-		case 13: script_pushint(st, i_data->wlv); break;
-		case 14: script_pushint(st, i_data->view_id); break;
-		case 15: script_pushint(st, i_data->elvmax); break;
-		case 16: {
+		case ITEMINFO_EQUIPLEVELMIN: script_pushint(st, i_data->elv); break;
+		case ITEMINFO_WEAPONLEVEL: script_pushint(st, i_data->wlv); break;
+		case ITEMINFO_ALIASNAME: script_pushint(st, i_data->view_id); break;
+		case ITEMINFO_EQUIPLEVELMAX: script_pushint(st, i_data->elvmax); break;
+		case ITEMINFO_MAGICATTACK: {
 #ifdef RENEWAL
 			script_pushint(st, i_data->matk);
 #else
@@ -14026,6 +14014,8 @@ BUILDIN_FUNC(getiteminfo)
 #endif
 			break;
 		}
+		case ITEMINFO_ID: script_pushint(st, i_data->nameid); break;
+		case ITEMINFO_AEGISNAME: script_pushstrcopy(st, i_data->name.c_str()); break;
 		default:
 			script_pushint(st, -1);
 			break;
@@ -14036,32 +14026,15 @@ BUILDIN_FUNC(getiteminfo)
 /*==========================================
  * Set some values of an item [Lupus]
  * Price, Weight, etc...
-	setiteminfo(itemID,n,Value), where n
-		0 value_buy;
-		1 value_sell;
-		2 type;
-		3 maxchance = Max drop chance of this item e.g. 1 = 0.01% , etc..
-				if = 0, then monsters don't drop it at all (rare or a quest item)
-				if = -1, then this item is sold in NPC shops only
-		4 sex;
-		5 equip;
-		6 weight;
-		7 atk;
-		8 def;
-		9 range;
-		10 slot;
-		11 look;
-		12 elv;
-		13 wlv;
-		14 view id
-		15 eLvmax
-		16 matk (renewal)
-  * Returns Value or -1 if the wrong field's been set
  *------------------------------------------*/
 BUILDIN_FUNC(setiteminfo)
 {
-	t_itemid item_id = script_getnum(st,2);
-	item_data *i_data = itemdb_exists(item_id);
+	item_data *i_data;
+
+	if (script_isstring(st, 2))
+		i_data = itemdb_search_aegisname(script_getstr(st, 2));
+	else
+		i_data = itemdb_exists(script_getnum(st, 2));
 
 	if (i_data == nullptr) {
 		script_pushint(st, -1);
@@ -14070,29 +14043,29 @@ BUILDIN_FUNC(setiteminfo)
 	int value = script_getnum(st,4);
 
 	switch( script_getnum(st, 3) ) {
-		case 0: i_data->value_buy = static_cast<uint32>(value); break;
-		case 1: i_data->value_sell = static_cast<uint32>(value); break;
-		case 2: i_data->type = static_cast<item_types>(value); break;
-		case 3: i_data->maxchance = static_cast<int>(value); break;
-		case 4: i_data->sex = static_cast<uint8>(value); break;
-		case 5: i_data->equip = static_cast<uint32>(value); break;
-		case 6: i_data->weight = static_cast<uint32>(value); break;
-		case 7: i_data->atk = static_cast<uint32>(value); break;
-		case 8: i_data->def = static_cast<uint32>(value); break;
-		case 9: i_data->range = static_cast<uint16>(value); break;
-		case 10: i_data->slots = static_cast<uint16>(value); break;
-		case 11:
+		case ITEMINFO_BUY: i_data->value_buy = static_cast<uint32>(value); break;
+		case ITEMINFO_SELL: i_data->value_sell = static_cast<uint32>(value); break;
+		case ITEMINFO_TYPE: i_data->type = static_cast<item_types>(value); break;
+		case ITEMINFO_MAXCHANCE: i_data->maxchance = static_cast<int>(value); break;
+		case ITEMINFO_GENDER: i_data->sex = static_cast<uint8>(value); break;
+		case ITEMINFO_LOCATIONS: i_data->equip = static_cast<uint32>(value); break;
+		case ITEMINFO_WEIGHT: i_data->weight = static_cast<uint32>(value); break;
+		case ITEMINFO_ATTACK: i_data->atk = static_cast<uint32>(value); break;
+		case ITEMINFO_DEFENSE: i_data->def = static_cast<uint32>(value); break;
+		case ITEMINFO_RANGE: i_data->range = static_cast<uint16>(value); break;
+		case ITEMINFO_SLOT: i_data->slots = static_cast<uint16>(value); break;
+		case ITEMINFO_VIEW:
 			if (i_data->type == IT_WEAPON || i_data->type == IT_AMMO) {	// keep old compatibility
 				i_data->subtype = static_cast<uint8>(value);
 			} else {
 				i_data->look = static_cast<uint32>(value);
 			}
 			break;
-		case 12: i_data->elv = static_cast<uint16>(value); break;
-		case 13: i_data->wlv = static_cast<uint16>(value); break;
-		case 14: i_data->view_id = static_cast<t_itemid>(value); break;
-		case 15: i_data->elvmax = static_cast<uint16>(value); break;
-		case 16: {
+		case ITEMINFO_EQUIPLEVELMIN: i_data->elv = static_cast<uint16>(value); break;
+		case ITEMINFO_WEAPONLEVEL: i_data->wlv = static_cast<uint16>(value); break;
+		case ITEMINFO_ALIASNAME: i_data->view_id = static_cast<t_itemid>(value); break;
+		case ITEMINFO_EQUIPLEVELMAX: i_data->elvmax = static_cast<uint16>(value); break;
+		case ITEMINFO_MAGICATTACK: {
 #ifdef RENEWAL
 			i_data->matk = static_cast<uint32>(value);
 #else
@@ -25402,8 +25375,8 @@ struct script_function buildin_func[] = {
 	BUILDIN_DEF(setnpcdisplay,"sv??"),
 	BUILDIN_DEF(compare,"ss"), // Lordalfa - To bring strstr to scripting Engine.
 	BUILDIN_DEF(strcmp,"ss"),
-	BUILDIN_DEF(getiteminfo,"ii"), //[Lupus] returns Items Buy / sell Price, etc info
-	BUILDIN_DEF(setiteminfo,"iii"), //[Lupus] set Items Buy / sell Price, etc info
+	BUILDIN_DEF(getiteminfo,"vi"), //[Lupus] returns Items Buy / sell Price, etc info
+	BUILDIN_DEF(setiteminfo,"vii"), //[Lupus] set Items Buy / sell Price, etc info
 	BUILDIN_DEF(getequipcardid,"ii"), //[Lupus] returns CARD ID or other info from CARD slot N of equipped item
 	// [zBuffer] List of mathematics commands --->
 	BUILDIN_DEF(sqrt,"i"),

+ 23 - 0
src/map/script.hpp

@@ -2019,6 +2019,29 @@ enum e_pcblock_action_flag : uint16 {
 	PCBLOCK_ALL      = 0x3FF,
 };
 
+/* getiteminfo/setiteminfo script commands */
+enum e_iteminfo : uint8 {
+	ITEMINFO_BUY = 0,
+	ITEMINFO_SELL,
+	ITEMINFO_TYPE,
+	ITEMINFO_MAXCHANCE,
+	ITEMINFO_GENDER,
+	ITEMINFO_LOCATIONS,
+	ITEMINFO_WEIGHT,
+	ITEMINFO_ATTACK,
+	ITEMINFO_DEFENSE,
+	ITEMINFO_RANGE,
+	ITEMINFO_SLOT,
+	ITEMINFO_VIEW,
+	ITEMINFO_EQUIPLEVELMIN,
+	ITEMINFO_WEAPONLEVEL,
+	ITEMINFO_ALIASNAME,
+	ITEMINFO_EQUIPLEVELMAX,
+	ITEMINFO_MAGICATTACK,
+	ITEMINFO_ID,
+	ITEMINFO_AEGISNAME	// 18
+};
+
 /**
  * used to generate quick script_array entries
  **/

+ 21 - 0
src/map/script_constants.hpp

@@ -8072,6 +8072,27 @@
 	export_constant(MADO_ROBOT);
 	export_constant(MADO_SUIT);
 
+	/* getiteminfo/setiteminfo script commands */
+	export_constant(ITEMINFO_BUY);
+	export_constant(ITEMINFO_SELL);
+	export_constant(ITEMINFO_TYPE);
+	export_constant(ITEMINFO_MAXCHANCE);
+	export_constant(ITEMINFO_GENDER);
+	export_constant(ITEMINFO_LOCATIONS);
+	export_constant(ITEMINFO_WEIGHT);
+	export_constant(ITEMINFO_ATTACK);
+	export_constant(ITEMINFO_DEFENSE);
+	export_constant(ITEMINFO_RANGE);
+	export_constant(ITEMINFO_SLOT);
+	export_constant(ITEMINFO_VIEW);
+	export_constant(ITEMINFO_EQUIPLEVELMIN);
+	export_constant(ITEMINFO_WEAPONLEVEL);
+	export_constant(ITEMINFO_ALIASNAME);
+	export_constant(ITEMINFO_EQUIPLEVELMAX);
+	export_constant(ITEMINFO_MAGICATTACK);
+	export_constant(ITEMINFO_ID);
+	export_constant(ITEMINFO_AEGISNAME);
+
 	#undef export_constant
 	#undef export_constant2
 	#undef export_parameter