diff options
-rw-r--r-- | db/pre-re/item_db.conf | 2 | ||||
-rw-r--r-- | db/re/item_db.conf | 130 | ||||
-rw-r--r-- | doc/script_commands.txt | 36 | ||||
-rw-r--r-- | npc/custom/quests/thq/THQS_TTShop.txt | 4 | ||||
-rw-r--r-- | npc/dev/test.txt | 13 | ||||
-rw-r--r-- | npc/other/Global_Functions.txt | 8 | ||||
-rw-r--r-- | sql-files/item_db.sql | 2 | ||||
-rw-r--r-- | sql-files/item_db_re.sql | 112 | ||||
-rw-r--r-- | src/char/char.c | 4 | ||||
-rw-r--r-- | src/char/int_storage.c | 92 | ||||
-rw-r--r-- | src/char/int_storage.h | 8 | ||||
-rw-r--r-- | src/map/script.c | 8 | ||||
-rw-r--r-- | src/map/script.h | 1 | ||||
-rw-r--r-- | src/map/storage.c | 4 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking.Defs.inc | 8 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc | 8 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc | 2 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_char.Hooks.inc | 78 |
18 files changed, 213 insertions, 307 deletions
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index b17e57252..82168a1ca 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -78970,7 +78970,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(getrefine()-4,2); + bonus2 bAddRace,RC_DemiPlayer,((getrefine()-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { diff --git a/db/re/item_db.conf b/db/re/item_db.conf index 514337801..f10e29289 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -6419,7 +6419,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(), 14)-3,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(), 14)-3) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -9130,7 +9130,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) autobonus "{ bonus bAspdRate,100; }",70,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; @@ -9165,7 +9165,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bCriticalAddRace,RC_DemiPlayer,5; } if(getrefine()>8) autobonus "{ bonus bAspdRate,100; }",70,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; @@ -9847,7 +9847,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,5; } @@ -11018,7 +11018,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-3,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-3) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; } @@ -11558,7 +11558,7 @@ item_db: ( EquipLv: 160 View: 4 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); "> }, { @@ -12177,7 +12177,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,10; } @@ -12580,7 +12580,7 @@ item_db: ( EquipLv: 70 View: 4 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -12606,7 +12606,7 @@ item_db: ( EquipLv: 160 View: 5 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); "> }, { @@ -13434,7 +13434,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -13759,7 +13759,7 @@ item_db: ( EquipLv: 70 View: 5 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -15011,7 +15011,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,5; } @@ -15770,7 +15770,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) autobonus "{ bonus bBaseAtk,200; }",30,3000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; @@ -16314,7 +16314,7 @@ item_db: ( View: 10 Script: <" bonus bInt,5; - bonus bMatk,pow(min(getrefine(),15),2); + bonus bMatk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0; "> }, @@ -18462,7 +18462,7 @@ item_db: ( View: 10 Script: <" bonus bInt,5; - bonus bMatk,pow(min(getrefine(),15),2); + bonus bMatk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bMatk,(((BaseLevel-70)/10)*5); } "> }, @@ -19838,7 +19838,7 @@ item_db: ( bonus bCritAtkRate,getrefine() * 2; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus2 bSkillAtk,AC_DOUBLE,20; @@ -20580,7 +20580,7 @@ item_db: ( EquipLv: 160 View: 12 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); "> }, { @@ -21161,7 +21161,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -21200,7 +21200,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -21476,7 +21476,7 @@ item_db: ( EquipLv: 70 View: 12 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -21502,8 +21502,8 @@ item_db: ( EquipLv: 160 View: 13 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2)/2; + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2))/2; "> }, { @@ -22108,7 +22108,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100; @@ -22436,7 +22436,7 @@ item_db: ( EquipLv: 70 View: 13 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -23150,7 +23150,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100; @@ -23482,7 +23482,7 @@ item_db: ( EquipLv: 70 View: 14 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -23505,8 +23505,8 @@ item_db: ( EquipLv: 160 View: 14 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2)/2; + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2))/2; "> }, @@ -24270,7 +24270,7 @@ item_db: ( Script: <" bonus bUnbreakableWeapon,0; bonus bInt,5; - bonus bMatk,pow(min(getrefine(),15),2); + bonus bMatk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bMatk,(((BaseLevel-70)/10)*5); } "> }, @@ -24297,7 +24297,7 @@ item_db: ( View: 23 Script: <" bonus bInt,6; - bonus bMatk,pow(min(getrefine(),15),2); + bonus bMatk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0; "> }, @@ -98898,7 +98898,7 @@ item_db: ( bonus3 bAutoSpell,PR_LEXDIVINA,1,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,RG_RAID,NPC_WIDEBLEEDING,1,250; @@ -100558,7 +100558,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -100833,7 +100833,7 @@ item_db: ( EquipLv: 70 View: 17 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -100854,7 +100854,7 @@ item_db: ( WeaponLv: 4 EquipLv: 160 View: 17 - Script: <" bonus bAtk,pow(min(getrefine(),15),2); "> + Script: <" bonus bAtk,((min(getrefine(),15)) ** (2)); "> }, //== Guns ================================================== @@ -101516,7 +101516,7 @@ item_db: ( bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -101556,7 +101556,7 @@ item_db: ( bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),10)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),10)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if (getrefine() > 8) { @@ -101596,7 +101596,7 @@ item_db: ( bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),10)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),10)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -101636,7 +101636,7 @@ item_db: ( bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),10)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),10)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -103482,7 +103482,7 @@ item_db: ( autobonus "{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }",50,10000; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-3,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-3) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { @@ -103780,8 +103780,8 @@ item_db: ( View: 22 Script: <" bonus bUnbreakableWeapon,0; - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2)/2; + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -103805,8 +103805,8 @@ item_db: ( EquipLv: 160 View: 22 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2)/2; + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2))/2; bonus bUnbreakableWeapon,0; "> }, @@ -104421,7 +104421,7 @@ item_db: ( bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { - bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); + bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>6) { @@ -105160,7 +105160,7 @@ item_db: ( EquipLv: 70 View: 2 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -105190,7 +105190,7 @@ item_db: ( WeaponLv: 4 EquipLv: 160 View: 2 - Script: <" bonus bAtk,pow(min(getrefine(),15),2); "> + Script: <" bonus bAtk,((min(getrefine(),15)) ** (2)); "> }, //== More Cash Shop Items ================================== @@ -125681,7 +125681,7 @@ item_db: ( View: 8 Script: <" bonus bUnbreakableWeapon,0; - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -125712,7 +125712,7 @@ item_db: ( EquipLv: 160 View: 8 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0; "> }, @@ -130705,7 +130705,7 @@ item_db: ( WeaponLv: 4 EquipLv: 160 View: 11 - Script: <" bonus bAtk,pow(min(getrefine(),15),2); "> + Script: <" bonus bAtk,((min(getrefine(),15)) ** (2)); "> }, { Id: 18122 @@ -130855,7 +130855,7 @@ item_db: ( EquipLv: 7 View: 11 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -145978,8 +145978,8 @@ item_db: ( EquipLv: 70 View: 3 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2)/2; + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -146002,7 +146002,7 @@ item_db: ( WeaponLv: 4 EquipLv: 160 View: 3 - Script: <" bonus bAtk,pow(min(getrefine(),15),2); "> + Script: <" bonus bAtk,((min(getrefine(),15)) ** (2)); "> }, { Id: 21018 @@ -150177,7 +150177,7 @@ item_db: ( EquipLv: 70 View: 16 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,5*((BaseLevel-70)/10); } "> }, @@ -150199,7 +150199,7 @@ item_db: ( EquipLv: 160 View: 16 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); "> }, { @@ -150346,7 +150346,7 @@ item_db: ( View: 7 Script: <" bonus bUnbreakableWeapon,0; - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -150373,7 +150373,7 @@ item_db: ( EquipLv: 160 View: 7 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0; "> }, @@ -151053,8 +151053,8 @@ item_db: ( View: 15 Script: <" bonus bUnbreakableWeapon,0; - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2)/2; + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -151078,8 +151078,8 @@ item_db: ( EquipLv: 160 View: 15 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2); + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0; "> }, @@ -151185,8 +151185,8 @@ item_db: ( EquipLv: 70 View: 1 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2)/2; + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); } "> }, @@ -151227,8 +151227,8 @@ item_db: ( EquipLv: 160 View: 1 Script: <" - bonus bAtk,pow(min(getrefine(),15),2); - bonus bMatk,pow(min(getrefine(),15),2)/2; + bonus bAtk,((min(getrefine(),15)) ** (2)); + bonus bMatk,((min(getrefine(),15)) ** (2))/2; "> }, diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 3b01d8977..f1b7f14dc 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -730,6 +730,7 @@ the common mathematical operations or conditional operators: strings. - - will subtract two numbers. * - will multiply two numbers. +** - will raise the first number to the power of the second number. / - will divide two numbers. Note that this is an integer division, i.e. 7/2 is not equal 3.5, it's equal 3. % - will give you the remainder of the division. 7%2 is equal to 1. @@ -930,42 +931,45 @@ Precedence | Description | Associativity | ! Logical NOT | | ~ Bitwise NOT (One's Complement) | --------------------------------------------------------------------------- -3 | * Multiplication | Left to right +3 | ** Exponentiation | Left to right +--------------------------------------------------------------------------- +4 | * Multiplication | Left to right | / Division | | % Modulo (remainder) | --------------------------------------------------------------------------- -4 | + Addition | Left to right +5 | + Addition | Left to right | - Subtraction | --------------------------------------------------------------------------- -5 | << Bitwise left shift | Left to right +6 | << Bitwise left shift | Left to right | >> Bitwise right shift | --------------------------------------------------------------------------- -6 | < Less than | Left to right +7 | < Less than | Left to right | <= Less than or equal to | | > Greater than | | >= Greater than or equal to | --------------------------------------------------------------------------- -7 | == Equal to | Left to right +8 | == Equal to | Left to right | != Not equal to | | ~= Regexp match | | ~! Regexp non-match | --------------------------------------------------------------------------- -8 | & Bitwise AND | Left to right +9 | & Bitwise AND | Left to right --------------------------------------------------------------------------- -9 | ^ Bitwise XOR (exclusive or) | Left to right +10 | ^ Bitwise XOR (exclusive or) | Left to right --------------------------------------------------------------------------- -10 | | Bitwise OR (inclusive or) | Left to right +11 | | Bitwise OR (inclusive or) | Left to right --------------------------------------------------------------------------- -11 | && Logical AND | Left to right +12 | && Logical AND | Left to right --------------------------------------------------------------------------- -12 | || Logical OR | Left to right +13 | || Logical OR | Left to right --------------------------------------------------------------------------- -13 | ?: Ternary conditional | Right to left +14 | ?: Ternary conditional | Right to left --------------------------------------------------------------------------- -14 | = Direct assignment | Right to left +15 | = Direct assignment | Right to left (lowest) | += Assignment by sum | | -= Assignment by difference | | *= Assignment by product | + | **= Assignment by power | | /= Assignment by quotient | | %= Assignment by remainder | | <<= Assignment by bitwise left shift | @@ -8044,11 +8048,19 @@ instead if they want it so much. *pow(<number>, <power>) + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + @ /!\ This command is deprecated @ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + Returns the result of the calculation. Example: .@i = pow(2, 3); // .@i will be 8 +This command is deprecated and it should not be used in new scripts, as it is +likely to be removed at a later time. Please use the exponentiation operator, +ie: (2 ** 3) instead of pow(2, 3) + --------------------------------------- *log10(<number>) diff --git a/npc/custom/quests/thq/THQS_TTShop.txt b/npc/custom/quests/thq/THQS_TTShop.txt index c85a9c9fe..96e7346d3 100644 --- a/npc/custom/quests/thq/THQS_TTShop.txt +++ b/npc/custom/quests/thq/THQS_TTShop.txt @@ -67,11 +67,11 @@ function script thqs_trade_token { // 10^0, 10^1, 10^2 @type -= 1; - @price = pow(10, @type); + @price = (10 ** @type); // 10^3, 10^4, 10^5 @type += 3; // So we can use pow later to determine the qt of Zeny - @prize = pow(10, @type); + @prize = (10 ** @type); if( #Treasure_Token < @price ) { mes "You don't have enough tokens!"; diff --git a/npc/dev/test.txt b/npc/dev/test.txt index b711a0a28..b35beb8ed 100644 --- a/npc/dev/test.txt +++ b/npc/dev/test.txt @@ -268,6 +268,19 @@ function script HerculesSelfTestHelper { callsub(OnCheck, "Order of + and *", .@x, 7); + // Binary ** operator + .@x = 2 ** 3; // .@x = 8; + callsub(OnCheck, "Binary ** operator", .@x, 8); + + // Associativity of ** + .@x = 2 ** 3 ** 2; // .@x = (2 ** 3) ** 2; + callsub(OnCheck, "Associativity of **", .@x, 64); + + // Order of ** and * + .@x = 5 * 2 ** 3 * 2; // .@x = 5 * (2 ** 3) * 2; + callsub(OnCheck, "Order of ** and *", .@x, 80); + + // << and >> operators .@x = 1<<3; // .@x = 1*2*2*2; callsub(OnCheck, "Left shift << operator", .@x, 8); diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt index 544e3a672..bc19ff048 100644 --- a/npc/other/Global_Functions.txt +++ b/npc/other/Global_Functions.txt @@ -203,11 +203,11 @@ function script F_SaveQuestSkills { ADV_QSK = 0; ADV_QSK2 = 0; //1st classes quest skills for (.@i = 0; .@i < 14; ++.@i) { - if(getskilllv(144+.@i)) ADV_QSK |= pow(2,.@i); + if(getskilllv(144+.@i)) ADV_QSK |= (2 ** .@i); } //2nd classes quest skills for (.@i = 0; .@i < 19; ++.@i) { - if(getskilllv(1001+.@i)) ADV_QSK2 |= pow(2,.@i); + if(getskilllv(1001+.@i)) ADV_QSK2 |= (2 ** .@i); } return; } @@ -217,7 +217,7 @@ function script F_SaveQuestSkills { function script F_Load1Skills { //1st classes quest skills for(.@i = 0; .@i < 14; ++.@i) { - if(ADV_QSK|pow(2,.@i) == ADV_QSK) skill 144+.@i,1,0; + if(ADV_QSK|(2 ** .@i) == ADV_QSK) skill 144+.@i,1,0; } ADV_QSK = 0; //Clear var return; @@ -228,7 +228,7 @@ function script F_Load1Skills { function script F_Load2Skills { //2nd classes quest skills for (.@i = 0; .@i < 19; ++.@i) { - if(ADV_QSK2|pow(2,.@i) == ADV_QSK2) skill 1001+.@i,1,0; + if(ADV_QSK2|(2 ** .@i) == ADV_QSK2) skill 1001+.@i,1,0; } ADV_QSK2 = 0; //Clear var return; diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index 113176fdb..a075dfb68 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -5157,7 +5157,7 @@ REPLACE INTO `item_db` VALUES ('13106','Gold_Lux','Gold Lux','4','100000','50000 REPLACE INTO `item_db` VALUES ('13107','Wasteland_Outlaw','Wasteland\'s Outlaw','4','20','10','580','68','0','0','7','2','16777216','63','2','34','3','70',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14;','',''); REPLACE INTO `item_db` VALUES ('13108','BF_Pistol1','Soldier Revolver','4','0','0','0','70','0','0','7','0','16777216','63','2','34','3','80',NULL,'1','0','17','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; autobonus \"{ bonus bAspdRate,100; }\",10,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('13109','Wasteland_Outlaw_C','Wasteland Outlaw','4','20','10','0','100','0','0','7','0','16777216','63','2','34','3','0',NULL,'0','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace, RC_All, 10; bonus bMatkRate,10;','',''); -REPLACE INTO `item_db` VALUES ('13110','Krieger_Pistol1','Glorious Pistol','4','0','0','0','80','0','0','7','0','16777216','63','2','34','4','80',NULL,'1','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(getrefine()-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,GS_RAPIDSHOWER,GS_GLITTERING,1,1000; bonus2 bSkillAtk,GS_RAPIDSHOWER,getrefine()*2; }','',''); +REPLACE INTO `item_db` VALUES ('13110','Krieger_Pistol1','Glorious Pistol','4','0','0','0','80','0','0','7','0','16777216','63','2','34','4','80',NULL,'1','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((getrefine()-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,GS_RAPIDSHOWER,GS_GLITTERING,1,1000; bonus2 bSkillAtk,GS_RAPIDSHOWER,getrefine()*2; }','',''); REPLACE INTO `item_db` VALUES ('13112','P_Revolver1','Eden Revlover I','4','0','0','0','4','0','0','7','0','16777216','63','2','34','1','26',NULL,'0','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','',''); REPLACE INTO `item_db` VALUES ('13113','P_Revolver2','Eden Revlover II','4','0','0','0','60','0','0','7','0','16777216','63','2','34','1','40',NULL,'0','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','',''); REPLACE INTO `item_db` VALUES ('13150','Branch','Branch','4','3000','1500','500','50','0','0','9','3','16777216','63','2','34','1','1',NULL,'1','0','18','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index f6ca7678f..8712b77d4 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -592,7 +592,7 @@ REPLACE INTO `item_db` VALUES ('1183','BF_Two_Handed_Sword1','Brave Assaulter\'s REPLACE INTO `item_db` VALUES ('1184','BF_Two_Handed_Sword2','Valorous Assaulter\'s Katzbalger','4','20','10','0','200','0','0','1','0','16514','63','2','34','3','80',NULL,'1','0','3','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,20; bonus2 bAddRace,RC_DemiPlayer,55; bonus bCritAtkRate,20; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1185','Violet_Fear','Violet Fear','4','20','10','2200','275','0','0','1','2','16514','58','2','34','4','80',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,WZ_METEOR,3,30; bonus3 bAutoSpell,WZ_FROSTNOVA,5,50; autobonus \"{ bonus bIgnoreDefRace,RC_NonBoss; }\",50,5000;','',''); REPLACE INTO `item_db` VALUES ('1186','Death_Guidance','Death Guidance','4','20','10','2000','200','0','0','1','2','16514','58','2','34','4','70',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,5; bonus bAgi,2; bonus bFlee2,20; bonus3 bAutoSpell,NPC_HELLPOWER,1,10; bonus4 bAutoSpell,NPC_HELLPOWER,1,10,0; if( getrefine()>8 ) bonus3 bAutoSpell,NPC_VAMPIRE_GIFT,2,20; else bonus3 bAutoSpell,NPC_VAMPIRE_GIFT,1,20;','',''); -REPLACE INTO `item_db` VALUES ('1187','Krieger_Twohand_Sword1','Glorious Claymore','4','20','10','0','220','0','0','1','0','16514','63','2','34','4','80',NULL,'1','0','3','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(), 14)-3,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus3 bAutoSpell,LK_CONCENTRATION,max(getskilllv(LK_CONCENTRATION),1),30; bonus3 bAutoSpell,LK_AURABLADE,max(getskilllv(LK_AURABLADE),1),30; }','',''); +REPLACE INTO `item_db` VALUES ('1187','Krieger_Twohand_Sword1','Glorious Claymore','4','20','10','0','220','0','0','1','0','16514','63','2','34','4','80',NULL,'1','0','3','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(), 14)-3) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus3 bAutoSpell,LK_CONCENTRATION,max(getskilllv(LK_CONCENTRATION),1),30; bonus3 bAutoSpell,LK_AURABLADE,max(getskilllv(LK_AURABLADE),1),30; }','',''); REPLACE INTO `item_db` VALUES ('1188','Veteran_Sword','Veteran Sword','4','10000','5000','2000','180','0','0','1','1','16514','63','2','34','4','80',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(SM_BASH)==10) { bonus2 bSkillAtk,SM_BASH,50; } if(getskilllv(KN_BOWLINGBASH)==10) { bonus2 bSkillAtk,KN_BOWLINGBASH,50; } bonus bStr,1; bonus bDex,1;','',''); REPLACE INTO `item_db` VALUES ('1189','Krasnaya','Krasnaya','4','20','10','3800','200','0','0','2','3','16514','58','2','34','2','50',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(readparam(bStr)>=95) { bonus bBaseAtk,20; }','',''); REPLACE INTO `item_db` VALUES ('1190','Claymore_C','Claymore','4','0','0','0','220','0','0','1','0','16512','63','2','34','3','0',NULL,'0','0','3','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','',''); @@ -685,8 +685,8 @@ REPLACE INTO `item_db` VALUES ('1277','Katar_Of_Raging_Blaze_','Katar of Raging REPLACE INTO `item_db` VALUES ('1278','Katar_Of_Piercing_Wind_','Katar of Piercing Wind','4','45000','22500','1200','105','0','0','1','3','4096','63','2','34','3','55',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Sleep,500;','',''); REPLACE INTO `item_db` VALUES ('1279','BF_Katar1','Brave Carnage Katar','4','20','10','0','130','0','0','1','0','4096','63','2','34','3','80',NULL,'1','0','16','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus bLuk,1; bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1280','BF_Katar2','Valorous Carnage Katar','4','20','10','0','130','0','0','1','0','4096','63','2','34','3','80',NULL,'1','0','16','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus bLuk,1; bonus2 bAddRace,RC_DemiPlayer,70; bonus bCritAtkRate,20; bonus bAspdRate,5; bonus bUnbreakableWeapon,0;','',''); -REPLACE INTO `item_db` VALUES ('1281','Krieger_Katar1','Glorious Bloody Roar','4','20','10','0','140','0','0','1','0','4096','63','2','34','4','80',NULL,'1','0','16','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','',''); -REPLACE INTO `item_db` VALUES ('1282','Krieger_Katar2','Glorious Jamadhar','4','20','10','0','140','0','0','1','0','4096','63','2','34','4','80',NULL,'1','0','16','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bCriticalAddRace,RC_DemiPlayer,5; } if(getrefine()>8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','',''); +REPLACE INTO `item_db` VALUES ('1281','Krieger_Katar1','Glorious Bloody Roar','4','20','10','0','140','0','0','1','0','4096','63','2','34','4','80',NULL,'1','0','16','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','',''); +REPLACE INTO `item_db` VALUES ('1282','Krieger_Katar2','Glorious Jamadhar','4','20','10','0','140','0','0','1','0','4096','63','2','34','4','80',NULL,'1','0','16','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bCriticalAddRace,RC_DemiPlayer,5; } if(getrefine()>8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','',''); REPLACE INTO `item_db` VALUES ('1283','Katar_Of_Speed','Katar Of Speed','4','20','10','0','175','0','0','1','0','4096','63','2','34','4','0',NULL,'0','0','16','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AS_SONICBLOW,25; bonus bAspdRate,3;','',''); REPLACE INTO `item_db` VALUES ('1284','Krishna','Krishna','4','20','10','1200','120','0','0','1','2','4096','58','2','34','3','50',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AS_GRIMTOOTH,10; if(getskilllv(AS_SONICBLOW)) { bonus3 bAutoSpell,AS_SONICBLOW,getskilllv(AS_SONICBLOW),5; } else { bonus3 bAutoSpell,AS_SONICBLOW,1,5; }','',''); REPLACE INTO `item_db` VALUES ('1285','Cakram','Chakram','4','20','10','1000','130','0','0','1','2','4096','58','2','34','3','50',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(AS_KATAR)==10) { bonus bHit,10; } bonus2 bSkillAtk,ASC_METEORASSAULT,20;','',''); @@ -713,7 +713,7 @@ REPLACE INTO `item_db` VALUES ('1306','War_Axe','War Axe','4','20','10','4200',' REPLACE INTO `item_db` VALUES ('1307','Windhawk','Windhawk','4','18000','9000','1500','115','0','0','1','0','414946','63','2','2','2','14',NULL,'1','0','6','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Wind; bonus bAspdRate,5;','',''); REPLACE INTO `item_db` VALUES ('1308','Golden_Axe','Golden Axe','4','20','10','3000','170','0','0','1','0','1','47','2','2','4','45',NULL,'1','0','6','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1309','Orcish_Axe_','Orcish Axe','4','20','10','1500','75','0','0','1','4','283811','63','2','2','3','3',NULL,'1','0','6','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('1310','Krieger_Onehand_Axe1','Glorious Cleaver','4','20','10','0','130','0','0','1','0','279714','63','2','2','4','80',NULL,'1','0','6','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,5; } if(getrefine()>8) { bonus bAspdRate,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200; }','',''); +REPLACE INTO `item_db` VALUES ('1310','Krieger_Onehand_Axe1','Glorious Cleaver','4','20','10','0','130','0','0','1','0','279714','63','2','2','4','80',NULL,'1','0','6','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,5; } if(getrefine()>8) { bonus bAspdRate,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200; }','',''); REPLACE INTO `item_db` VALUES ('1311','Vecer_Axe','Vecer Axe','4','20','10','1500','140','0','0','1','2','279714','58','2','2','3','50',NULL,'1','0','6','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(readparam(bLuk)>=90) { bonus bBaseAtk,20; } if(readparam(bDex)>=90) { bonus bCritical,5; } if(readparam(bDex)>=90||readparam(bLuk)>=90) { bonus2 bSkillAtk,MC_MAMMONITE,15; }','',''); REPLACE INTO `item_db` VALUES ('1312','Orcish_Axe_C','Orcish Axe','4','0','0','0','110','0','0','1','0','283811','63','2','2','3','0',NULL,'0','0','6','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddSize,Size_Small,70; bonus2 bAddSize,Size_Medium,70; bonus2 bAddSize,Size_Large,70;','',''); REPLACE INTO `item_db` VALUES ('1313','Tourist_Axe','Traveler\'s Axe','4','0','0','500','77','0','0','1','0','283811','63','2','2','1','0',NULL,'0','0','6','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2;','',''); @@ -755,7 +755,7 @@ REPLACE INTO `item_db` VALUES ('1378','Great_Axe_C','Refined Great Axe','4','1', REPLACE INTO `item_db` VALUES ('1379','BF_Two_Handed_Axe1','Valorous Insane Battle Axe','4','20','10','0','200','0','0','1','0','279714','63','2','34','3','80',NULL,'1','0','7','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3; bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1380','BF_Two_Handed_Axe2','Brave Insane Battle Axe','4','20','10','0','200','0','0','1','0','279714','63','2','34','3','80',NULL,'1','0','7','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3; bonus2 bAddRace,RC_DemiPlayer,55; autobonus \"{ bonus bBreakArmorRate,10000; }\",20,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1381','N_Battle_Axe','Novice Battle Axe','4','0','0','0','100','0','0','1','3','279714','63','2','34','1','3',NULL,'0','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('1382','Krieger_Twohand_Axe1','Glorious Twohanded Axe','4','20','10','0','220','0','0','1','0','279714','63','2','34','4','80',NULL,'1','0','7','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-3,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; } if(getrefine()>8) { bonus3 bAutoSpell,NPC_CRITICALWOUND,1,100; bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200; bonus4 bAutoSpellOnSkill,WS_CARTTERMINATION,NPC_CRITICALWOUND,2,200; }','',''); +REPLACE INTO `item_db` VALUES ('1382','Krieger_Twohand_Axe1','Glorious Twohanded Axe','4','20','10','0','220','0','0','1','0','279714','63','2','34','4','80',NULL,'1','0','7','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-3) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; } if(getrefine()>8) { bonus3 bAutoSpell,NPC_CRITICALWOUND,1,100; bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200; bonus4 bAutoSpellOnSkill,WS_CARTTERMINATION,NPC_CRITICALWOUND,2,200; }','',''); REPLACE INTO `item_db` VALUES ('1383','Holy_Celestial_Axe','Holy Celestial Axe','4','20','10','1500','200','0','0','1','0','263200','63','2','34','4','60',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bVit,10; bonus2 bAddRace,RC_Undead,10; bonus3 bAutoSpell,AL_BLESSING,5,50;','',''); REPLACE INTO `item_db` VALUES ('1384','Veteran_Axe','Veteran Axe','4','10000','5000','3000','250','0','0','1','2','263200','63','2','34','3','80',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(BS_DAGGER)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_SWORD)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_TWOHANDSWORD)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_KNUCKLE)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_SPEAR)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_AXE)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_MACE)==3) { bonus bBaseAtk,10; } bonus bVit,2; bonus4 bAutoSpellOnSkill,BS_HAMMERFALL,SM_MAGNUM,3,500;','',''); REPLACE INTO `item_db` VALUES ('1385','Bradium_Stonehammer','Bradium Stonehammer','4','20','10','2700','210','0','0','1','0','1024','58','2','34','4','75',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAddEffOnSkill,BS_HAMMERFALL,Eff_Stun,500+(200*getrefine());','',''); @@ -773,7 +773,7 @@ REPLACE INTO `item_db` VALUES ('1396','Velum_Guillotine','Vellum Guillotine','4' REPLACE INTO `item_db` VALUES ('1397','Bradium_Stonehammer_','Bradium Stone Hammer','4','20','10','2700','210','0','0','1','2','1024','58','2','34','4','75',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1398','Metal_Two_Handed_Axe','Metal Two-Handed Axe','4','20','10','0','105','0','0','1','1','279714','63','2','34','3','0',NULL,'1','0','7','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bBaseAtk,(getrefine()*7); .@val = min(BaseLevel/10, 12); if (.@val > 2) { bonus bBaseAtk,((.@val-2)*5); }','',''); REPLACE INTO `item_db` VALUES ('1399','TE_Woe_Two_Handed_Axe','TE WoE Two-Handed Axe','4','20','10','0','150','0','0','1','0','279714','63','2','34','3','40',NULL,'0','0','7','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Stun,1000;','',''); -REPLACE INTO `item_db` VALUES ('1400','Spear_of_Vicious_Mind','Spear of Vicious Mind','4','20','10','1400','140','0','0','3','1','16514','63','2','2','4','160',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2);','',''); +REPLACE INTO `item_db` VALUES ('1400','Spear_of_Vicious_Mind','Spear of Vicious Mind','4','20','10','1400','140','0','0','3','1','16514','63','2','2','4','160',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','',''); REPLACE INTO `item_db` VALUES ('1401','Javelin','Javelin','4','150','75','700','28','0','0','3','3','16514','63','2','2','1','4',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1402','Javelin_','Javelin','4','150','75','700','28','0','0','3','4','16514','63','2','2','1','4',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1403','Javelin__','Javelin','4','150','75','700','28','0','0','3','0','16514','63','2','2','1','4',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -799,7 +799,7 @@ REPLACE INTO `item_db` VALUES ('1422','Hunting_Spear','Hunting Spear','4','20',' REPLACE INTO `item_db` VALUES ('1423','Pole_XO','Pole XO','4','20','10','0','120','0','0','3','0','16514','63','2','2','1','0',NULL,'0','0','4','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace, RC_All, 50;','',''); REPLACE INTO `item_db` VALUES ('1424','Skewer_C','Refined Brocca','4','1','0','0','149','0','0','3','0','16514','63','2','2','4','0',NULL,'0','0','4','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bIgnoreDefRace,RC_NonBoss; bonus2 bAddSize,Size_Medium,20;','',''); REPLACE INTO `item_db` VALUES ('1425','BF_Spear1','Assaulter Spear','4','20','10','0','60','0','0','3','0','16514','63','2','2','3','80',NULL,'1','0','4','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(BaseJob==Job_Crusader) bonus bAspdRate,20;','',''); -REPLACE INTO `item_db` VALUES ('1426','Krieger_Onehand_Spear1','Glorious Spear','4','20','10','0','130','0','0','3','0','16514','63','2','2','4','80',NULL,'1','0','4','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,10; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,100; }','',''); +REPLACE INTO `item_db` VALUES ('1426','Krieger_Onehand_Spear1','Glorious Spear','4','20','10','0','130','0','0','3','0','16514','63','2','2','4','80',NULL,'1','0','4','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,10; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,100; }','',''); REPLACE INTO `item_db` VALUES ('1427','Spear_Of_Excellent','Spear Of Excellent','4','20','10','0','160','0','0','3','0','16514','63','2','2','3','0',NULL,'0','0','4','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SM_MAGNUM,25; bonus bStr,2;','',''); REPLACE INTO `item_db` VALUES ('1428','Long_Horn_M','Long Horn','4','20','10','1000','150','0','0','3','1','16514','58','2','2','4','65',NULL,'1','0','4','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus2 bAddEff,Eff_Bleeding,500; skill TF_DETOXIFY,1; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1429','Hunting_Spear_M','Hunting Spear','4','20','10','4200','180','0','0','3','1','16514','58','2','2','4','60',NULL,'1','0','4','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bIgnoreDefRace,RC_Brute; bonus3 bAddMonsterDropItem,517,RC_Brute,1000; bonus3 bAutoSpell,LK_JOINTBEAT,3,500;','',''); @@ -813,8 +813,8 @@ REPLACE INTO `item_db` VALUES ('1436','Velum_Spear','Vellum Spear','4','20','10' REPLACE INTO `item_db` VALUES ('1437','TE_Woe_Pike','TE WoE Pike','4','20','10','0','100','0','0','3','0','16514','63','2','2','3','40',NULL,'0','0','4','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Curse,1000;','',''); REPLACE INTO `item_db` VALUES ('1438','Thanos_Spear','Thanatos Spear','4','20','10','3000','150','100','0','3','1','16514','56','2','2','4','120',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;'); REPLACE INTO `item_db` VALUES ('1441','Ru_Blue_Spear','Ru Blue Spear','4','20','10','1200','200','0','0','3','1','16384','63','2','2','3','100',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,5; bonus bAgi,5;','',''); -REPLACE INTO `item_db` VALUES ('1443','Scarlet_Spear','Crimson Spear','4','20','10','900','90','0','0','3','2','16514','63','2','2','3','70',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('1450','Lance_of_Vicious_Mind','Lance of Vicious Mind','4','20','10','2250','225','0','0','3','1','16514','63','2','34','4','160',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2);','',''); +REPLACE INTO `item_db` VALUES ('1443','Scarlet_Spear','Crimson Spear','4','20','10','900','90','0','0','3','2','16514','63','2','2','3','70',NULL,'1','0','4','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('1450','Lance_of_Vicious_Mind','Lance of Vicious Mind','4','20','10','2250','225','0','0','3','1','16514','63','2','34','4','160',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','',''); REPLACE INTO `item_db` VALUES ('1451','Guisarme','Guisarme','4','13000','6500','1000','84','0','0','3','2','16514','63','2','34','2','18',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1452','Guisarme_','Guisarme','4','13000','6500','1000','84','0','0','3','3','16514','63','2','34','2','18',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1453','Guisarme__','Guisarme','4','13000','6500','1000','84','0','0','3','0','16514','63','2','34','2','18',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -850,7 +850,7 @@ REPLACE INTO `item_db` VALUES ('1482','BF_Lance1','Assaulter Lance','4','20','10 REPLACE INTO `item_db` VALUES ('1483','Ivory_Lance','Ivory Lance','4','20','10','1000','160','0','0','3','1','16514','58','2','34','3','50',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,30; skill KN_SPEARSTAB,5;','',''); REPLACE INTO `item_db` VALUES ('1484','Cardo','Cardo','4','20','10','5600','150','0','0','3','1','128','58','2','34','4','70',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,-10; bonus bDef,getrefine()/2;','',''); REPLACE INTO `item_db` VALUES ('1485','Battle_Fork','Battle Fork','4','20','10','700','112','0','0','3','4','16514','58','2','34','2','50',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('1486','Krieger_Twohand_Spear1','Glorious Lance','4','20','10','0','220','0','0','3','0','16514','63','2','34','4','80',NULL,'1','0','5','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,200; }','',''); +REPLACE INTO `item_db` VALUES ('1486','Krieger_Twohand_Spear1','Glorious Lance','4','20','10','0','220','0','0','3','0','16514','63','2','34','4','80',NULL,'1','0','5','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,70; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,200; }','',''); REPLACE INTO `item_db` VALUES ('1487','Lance_C','Lance','4','0','0','0','220','0','0','3','0','16514','63','2','34','3','0',NULL,'0','0','5','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,50; bonus2 bAddSize,Size_Medium,50; bonus2 bAddSize,Size_Large,50;','',''); REPLACE INTO `item_db` VALUES ('1488','Ahlspiess_C','Ahlspiess','4','20','10','0','135','0','0','3','0','16512','63','2','34','4','0',NULL,'1','0','5','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bIgnoreDefRace, RC_All; bonus2 bAddRace,RC_DemiPlayer,10; bonus3 bAutoSpell,KN_PIERCE,5,30;','',''); REPLACE INTO `item_db` VALUES ('1489','Spearfish_','Marlin','4','0','0','0','220','0','0','3','0','16514','63','2','34','1','50',NULL,'0','0','5','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus3 bAddEffOnSkill,KN_PIERCE,Eff_Bleeding,1000; bonus3 bAddEffOnSkill,LK_SPIRALPIERCE,Eff_Bleeding,1000; bonus2 bSkillAtk,LK_SPIRALPIERCE,100; bonus2 bSkillAtk,LG_INSPIRATION,50; //bonus4 bAddEff,Eff_FrosMisty,100,ATF_SHORT,3000; //Need to be Frost Misty if(BaseLevel>99) { bonus bBaseAtk,30; }','',''); @@ -861,7 +861,7 @@ REPLACE INTO `item_db` VALUES ('1493','Metal_Lance','Metal Lance','4','20','10', REPLACE INTO `item_db` VALUES ('1494','Undine_Spear','Spear Of Odin','4','50000','25000','3800','190','0','0','3','3','16514','63','2','34','4','105',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Water;','',''); REPLACE INTO `item_db` VALUES ('1495','TE_Woe_Lance','TE WoE Lance','4','0','0','0','150','0','0','3','0','16514','63','2','34','3','40',NULL,'0','0','5','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Blind,1000;','',''); REPLACE INTO `item_db` VALUES ('1496','Thanos_Long_Spear','Thanatos Long Spear','4','20','10','3750','250','50','0','3','1','16514','56','2','34','4','120',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;'); -REPLACE INTO `item_db` VALUES ('1498','Scarlet_Lance','Crimson Lance','4','20','10','1750','175','0','0','3','2','16514','63','2','34','3','70',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('1498','Scarlet_Lance','Crimson Lance','4','20','10','1750','175','0','0','3','2','16514','63','2','34','3','70',NULL,'1','0','5','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); REPLACE INTO `item_db` VALUES ('1501','Club','Club','4','120','60','700','23','0','0','1','3','312755','63','2','2','1','2',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1502','Club_','Club','4','120','60','700','23','0','0','1','4','312755','63','2','2','1','2',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1503','Club__','Club','4','120','60','700','23','0','0','1','0','312755','63','2','2','1','2',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -907,7 +907,7 @@ REPLACE INTO `item_db` VALUES ('1542','BF_Morning_Star1','Valorous Battlefield M REPLACE INTO `item_db` VALUES ('1543','BF_Morning_Star2','Brave Battlefield Morning Star','4','20','10','0','105','0','0','1','0','312755','63','2','2','3','80',NULL,'1','0','8','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiPlayer,75; bonus bUnbreakableWeapon,0; autobonus \"{ bonus2 bAddEff,Eff_Stun,5000; }\",10,6000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','',''); REPLACE INTO `item_db` VALUES ('1544','Lunakaligo','Lunakaligo','4','20','10','700','110','0','0','1','3','33040','58','2','2','3','50',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(readparam(bStr)>=77) { bonus bAspdRate,4; bonus2 bAddEff,Eff_Stun,1500; bonus3 bAddMonsterDropItem,12065,RC_Plant,500; bonus3 bAddMonsterDropItem,12043,RC_Brute,500; bonus3 bAddMonsterDropItem,12069,RC_Fish,500; }','',''); REPLACE INTO `item_db` VALUES ('1545','N_Mace','Novice Mace','4','0','0','0','57','0','0','1','3','312755','63','2','2','1','2',NULL,'0','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('1546','Krieger_Onehand_Mace1','Glorious Morning Star','4','20','10','0','130','0','0','1','0','312755','63','2','2','4','80',NULL,'1','0','8','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,5; } if(getrefine()>8) { bonus2 bAddEff,Eff_Stun,2000; bonus bAspdRate,5; }','',''); +REPLACE INTO `item_db` VALUES ('1546','Krieger_Onehand_Mace1','Glorious Morning Star','4','20','10','0','130','0','0','1','0','312755','63','2','2','4','80',NULL,'1','0','8','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; bonus bAspdRate,5; } if(getrefine()>8) { bonus2 bAddEff,Eff_Stun,2000; bonus bAspdRate,5; }','',''); REPLACE INTO `item_db` VALUES ('1547','Mace_Of_Madness','Mace Of Madness','4','20','10','0','150','0','0','1','0','6571170','63','2','2','3','0',NULL,'0','0','8','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,MC_CARTREVOLUTION,25; bonus bStr,2;','',''); REPLACE INTO `item_db` VALUES ('1548','Veteran_Hammer','Veteran Hammer','4','10000','5000','1800','160','0','0','1','2','33040','63','2','2','3','80',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHealPower,getskilllv(AL_DP); bonus bCritical,getskilllv(PR_MACEMASTERY)*2; bonus bInt,1; bonus bLuk,1;','',''); REPLACE INTO `item_db` VALUES ('1549','Pilebuncker','Pile Bunker','4','10000','5000','3500','450','0','0','1','0','1024','56','2','2','3','99',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -937,7 +937,7 @@ REPLACE INTO `item_db` VALUES ('1572','Principles_Of_Magic','Principles of Magic REPLACE INTO `item_db` VALUES ('1573','Ancient_Magic','Ancient Magic','4','20','10','700','30','140','0','1','2','4260096','63','2','2','3','70',NULL,'1','0','15','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1574','BF_Book1','Brave Battle Strategy Book','4','20','10','0','90','125','0','1','0','4260096','63','2','2','3','80',NULL,'1','0','15','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1575','BF_Book2','Valorous Battle Strategy Book','4','20','10','0','90','125','0','1','0','4260096','63','2','2','3','80',NULL,'1','0','15','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bInt,2; bonus2 bIgnoreMdefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0;','',''); -REPLACE INTO `item_db` VALUES ('1576','Krieger_Book1','Glorious Tablet','4','20','10','0','90','115','0','1','0','4260096','63','2','2','4','80',NULL,'1','0','15','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,80; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) autobonus \"{ bonus bBaseAtk,200; }\",30,3000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\";','',''); +REPLACE INTO `item_db` VALUES ('1576','Krieger_Book1','Glorious Tablet','4','20','10','0','90','115','0','1','0','4260096','63','2','2','4','80',NULL,'1','0','15','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,80; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) autobonus \"{ bonus bBaseAtk,200; }\",30,3000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\";','',''); REPLACE INTO `item_db` VALUES ('1577','Krieger_Book2','Glorious Apocalypse','4','20','10','0','90','115','0','1','0','4260096','63','2','2','4','80',NULL,'1','0','15','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,80; bonus2 bIgnoreDefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) bonus2 bIgnoreDefRate,RC_DemiPlayer,5; if(getrefine()>8) { bonus bMatkRate,5; bonus bVariableCastrate,-5; bonus bDelayrate,-5; }','',''); REPLACE INTO `item_db` VALUES ('1578','Book_Of_Prayer','Book Of Prayer','4','20','10','0','140','0','0','1','0','4260096','63','2','2','3','0',NULL,'0','0','15','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bVit,2; bonus bMdef,2; bonus bMaxSPrate,10;','',''); REPLACE INTO `item_db` VALUES ('1579','Death_Note_M','Book of the Dead','4','20','10','1000','137','0','0','1','2','4260096','63','2','2','4','85',NULL,'1','0','15','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,15; bonus bStr,3; bonus bInt,3; bonus bLuk,-20; bonus2 bWeaponComaRace,RC_DemiPlayer,10; bonus bAspdRate,getrefine(); if(BaseJob==Job_Sage) bonus3 bAutoSpell,NPC_HELLJUDGEMENT,5,20;','',''); @@ -955,7 +955,7 @@ REPLACE INTO `item_db` VALUES ('1590','Snake_Encyclopedia','Snake Encyclopedia', REPLACE INTO `item_db` VALUES ('1591','TE_Woe_Book','TE WoE Book','4','20','10','0','120','0','0','1','0','4260096','63','2','2','3','40',NULL,'0','0','15','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Player,40; bonus2 bMagicAddRace,RC_Player,5; bonus bHealPower,5; bonus2 bAddEff,Eff_Blind,1000;','',''); REPLACE INTO `item_db` VALUES ('1598','Snake_Encyclopedia_','Snake Encyclopedia','4','60000','30000','1500','10','110','0','1','3','4260096','63','2','2','4','105',NULL,'1','0','15','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,getrefine()*3; bonus bMatk,getrefine()*3;','',''); REPLACE INTO `item_db` VALUES ('1599','Angra_Manyu','Angra manyu','4','1','0','10','10000','10000','0','2','0','18446744073709551615','63','2','2','1','0',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,50; bonus bBaseAtk,3300; bonus bMatkRate,200; bonus2 bHPDrainRate,1000,100; bonus2 bSPDrainRate,1000,20; bonus bHealPower,200; bonus2 bAddRace, RC_All, 100; skill WZ_STORMGUST,10; skill WZ_METEOR,10; skill WZ_VERMILION,10; skill GM_SANDMAN,1; bonus bVariableCastrate,-100; bonus bFixedCastrate,-100;','',''); -REPLACE INTO `item_db` VALUES ('1600','Rod_of_Vicious_Mind','Rod of Vicious Mind','4','20','10','600','60','120','0','1','1','8487701','63','2','2','4','160',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,5; bonus bMatk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon,0;','',''); +REPLACE INTO `item_db` VALUES ('1600','Rod_of_Vicious_Mind','Rod of Vicious Mind','4','20','10','600','60','120','0','1','1','8487701','63','2','2','4','160',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,5; bonus bMatk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1601','Rod','Rod','4','50','25','400','15','30','0','1','3','8487701','63','2','2','1','0',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1602','Rod_','Rod','4','50','25','400','15','30','0','1','4','8487701','63','2','2','1','0',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1603','Rod__','Rod','4','50','25','400','15','30','0','1','0','8487701','63','2','2','1','0',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -1027,7 +1027,7 @@ REPLACE INTO `item_db` VALUES ('1668','Sword_Stick','Sword Stick','4','20','10', REPLACE INTO `item_db` VALUES ('1669','Thanos_Staff','Thanatos Staff','4','20','10','1000','100','200','0','1','1','99092','56','2','2','4','120',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000; bonus bHealPower,15;','','heal -1000,0;'); REPLACE INTO `item_db` VALUES ('1670','RWC_Memory_Staff','RWC Memory Staff','4','20','10','500','25','30','0','1','1','8487700','63','2','2','3','0',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bMatk,30*(getrefine()/3); if (getrefine()>=7) { .@val = 1; bonus4 bAutoSpell,HW_MAGICPOWER,1,10,0; } if (getrefine() >= 4) { bonus2 bMagicAddRace, RC_All, 5*(.@val+1); }','',''); REPLACE INTO `item_db` VALUES ('1671','Staff_Of_Evil_Slayer','Evil Slayer Vanquisher Staff','4','20','10','800','30','155','0','1','1','8487700','56','2','2','3','0',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Demon,10; bonus2 bAddRace,RC_Undead,10; bonus2 bMagicAddRace,RC_Demon,10; bonus2 bMagicAddRace,RC_Undead,10; if(getrefine()>=9){ bonus bMatkRate,5; } if(getrefine()>=12){ bonus bMatkRate,7; }','',''); -REPLACE INTO `item_db` VALUES ('1680','Scarlet_Rod','Crimson Rod','4','20','10','600','60','70','0','1','2','8487701','63','2','2','3','70',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,5; bonus bMatk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bMatk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('1680','Scarlet_Rod','Crimson Rod','4','20','10','600','60','70','0','1','2','8487701','63','2','2','3','70',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,5; bonus bMatk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bMatk,(((BaseLevel-70)/10)*5); }','',''); REPLACE INTO `item_db` VALUES ('1681','Short_Foxtail_Staff','Short Foxtail Staff','4','20','10','0','30','0','0','1','0','0','63','2','2','1','1',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1683','Enriched_Foxtail_Staff','Enriched Foxtail Staff','4','20','10','200','50','70','0','1','1','0','7','2','2','2','12',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP, 50;','',''); REPLACE INTO `item_db` VALUES ('1684','Long_Foxtail_Staff','Long Foxtail Staff','4','20','10','200','50','0','0','2','1','0','63','2','2','2','12',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLongAtkRate, 5; bonus bMaxHP, 200;','',''); @@ -1084,7 +1084,7 @@ REPLACE INTO `item_db` VALUES ('1739','BF_Bow2','Brave Battle CrossBow','4','20' REPLACE INTO `item_db` VALUES ('1740','Nepenthes_Bow','Nepenthes Bow','4','20','10','1000','105','0','0','5','2','2048','58','2','34','4','60',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus4 bAutoSpellOnSkill,AC_DOUBLE,AC_CHARGEARROW,1,20;','',''); REPLACE INTO `item_db` VALUES ('1741','Cursed_Lyre','Cursed Lyre','4','20','10','1250','125','0','0','5','1','526344','58','2','34','4','80',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,-2; bonus2 bAddEff,Eff_Curse,400;','',''); REPLACE INTO `item_db` VALUES ('1742','N_Composite_Bow','Novice Composite Bow','4','0','0','0','49','0','0','5','3','657480','63','2','34','1','4',NULL,'0','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('1743','Krieger_Bow1','Glorious Hunter Bow','4','20','10','0','100','0','0','5','0','657480','63','2','34','4','80',NULL,'1','0','11','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bCritAtkRate,getrefine() * 2; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus2 bSkillAtk,AC_DOUBLE,20;','',''); +REPLACE INTO `item_db` VALUES ('1743','Krieger_Bow1','Glorious Hunter Bow','4','20','10','0','100','0','0','5','0','657480','63','2','34','4','80',NULL,'1','0','11','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bCritAtkRate,getrefine() * 2; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus2 bSkillAtk,AC_DOUBLE,20;','',''); REPLACE INTO `item_db` VALUES ('1744','Bow_Of_Evil','Bow Of Evil','4','20','10','0','170','0','0','5','0','657480','63','2','34','4','0',NULL,'0','0','11','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AC_DOUBLE,25; bonus bDex,2;','',''); REPLACE INTO `item_db` VALUES ('1745','Falken_Blitz','Falken Blitz','4','20','10','1000','100','0','0','5','2','2048','58','2','34','3','50',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SN_SHARPSHOOTING,10; bonus2 bSkillAtk,AC_DOUBLE,10; bonus2 bSkillAtk,AC_CHARGEARROW,10;','',''); REPLACE INTO `item_db` VALUES ('1746','Elven_Bow','Elven Bow','4','20','10','1500','160','0','0','5','1','526336','56','2','34','3','100',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2;','',''); @@ -1118,7 +1118,7 @@ REPLACE INTO `item_db` VALUES ('1773','Arrow_Of_Elf','Elven Arrow','10','5','2', REPLACE INTO `item_db` VALUES ('1774','Hunting_Arrow','Hunting Arrow','10','5','2','1','35','0','0','0','0','661576','63','2','32768','0','0',NULL,'0','1','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1775','Siege_Arrow_S','WoE Arrow S','10','10','5','1','45','0','0','0','0','661576','63','2','32768','0','130',NULL,'0','1','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1776','Siege_Arrow_A','WoE Arrow A','10','10','5','1','30','0','0','0','0','661576','63','2','32768','0','95',NULL,'0','1','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('1800','Fist_of_Vicious_Mind','Fist of Vicious Mind','4','20','10','1500','150','0','0','1','1','33024','63','2','2','4','160',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2);','',''); +REPLACE INTO `item_db` VALUES ('1800','Fist_of_Vicious_Mind','Fist of Vicious Mind','4','20','10','1500','150','0','0','1','1','33024','63','2','2','4','160',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','',''); REPLACE INTO `item_db` VALUES ('1801','Waghnakh','Waghnak','4','8000','4000','400','30','0','0','1','3','33024','63','2','2','1','0',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1802','Waghnakh_','Waghnak','4','8000','4000','400','30','0','0','1','4','33024','63','2','2','1','0',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1803','Knuckle_Duster','Knuckle Dusters','4','25000','12500','450','50','0','0','1','2','33024','63','2','2','2','12',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -1144,8 +1144,8 @@ REPLACE INTO `item_db` VALUES ('1822','Combo_Battle_Glove','Combo Battle Glove', REPLACE INTO `item_db` VALUES ('1823','BF_Knuckle1','Valorous Battle Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','3','80',NULL,'1','0','12','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bAgi,1; bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus4 bAutoSpell,CH_SOULCOLLECT,1,5,0; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1824','BF_Knuckle2','Brave Battle Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','3','80',NULL,'1','0','12','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bVariableCastrate,MO_EXTREMITYFIST,-25; autobonus \"{ bonus2 bVariableCastrate,MO_EXTREMITYFIST,-100; }\",50,6000,BF_WEAPON,\"{ specialeffect2 EF_SUFFRAGIUM; }\"; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1825','Horn_Of_Hilthrion','Horn of Hillslion','4','20','10','600','95','0','0','1','3','32768','58','2','2','3','60',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,NPC_CRITICALWOUND,1,100; bonus4 bAutoSpellOnSkill,CH_PALMSTRIKE,MO_INVESTIGATE,1,100; bonus3 bAutoSpell,MO_CALLSPIRITS,5,100;','',''); -REPLACE INTO `item_db` VALUES ('1826','Krieger_Knuckle1','Glorious Claw','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','0','12','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus3 bAutoSpell,MO_INVESTIGATE,5,(getrefine()*10-50); bonus3 bAutoSpell,AL_DECAGI,1,(getrefine()*10-50); }','',''); -REPLACE INTO `item_db` VALUES ('1827','Krieger_Knuckle2','Glorious Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','0','12','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bVariableCastrate,MO_EXTREMITYFIST,-100; bonus4 bAutoSpellOnSkill,MO_EXPLOSIONSPIRITS,CH_SOULCOLLECT,1,1000; }','',''); +REPLACE INTO `item_db` VALUES ('1826','Krieger_Knuckle1','Glorious Claw','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','0','12','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus3 bAutoSpell,MO_INVESTIGATE,5,(getrefine()*10-50); bonus3 bAutoSpell,AL_DECAGI,1,(getrefine()*10-50); }','',''); +REPLACE INTO `item_db` VALUES ('1827','Krieger_Knuckle2','Glorious Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','0','12','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bVariableCastrate,MO_EXTREMITYFIST,-100; bonus4 bAutoSpellOnSkill,MO_EXPLOSIONSPIRITS,CH_SOULCOLLECT,1,1000; }','',''); REPLACE INTO `item_db` VALUES ('1828','Monk_Knuckle','Monk Knuckle','4','20','10','0','150','0','0','1','0','33024','63','2','2','4','0',NULL,'0','0','12','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus2 bSkillAtk,MO_FINGEROFFENSIVE,25;','',''); REPLACE INTO `item_db` VALUES ('1829','Fist_C','Fist','4','0','0','0','150','0','0','1','0','33024','63','2','2','3','0',NULL,'0','0','12','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','',''); REPLACE INTO `item_db` VALUES ('1830','Sura_Rampage','Sura\'s Rampage','4','20','10','500','142','0','0','1','1','32768','56','2','2','3','102',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SR_EARTHSHAKER,20; bonus2 bSkillAtk,SR_SKYNETBLOW,20; bonus bUseSPrate,5; if(getrefine()>6) { bonus bUseSPrate,-1*(getrefine()-6); }','',''); @@ -1155,8 +1155,8 @@ REPLACE INTO `item_db` VALUES ('1833','Claw_Of_Flash','Claw of Flash','4','60000 REPLACE INTO `item_db` VALUES ('1834','TE_Woe_Fist','TE WoE Fist','4','20','10','0','150','0','0','1','0','33024','63','2','2','3','40',NULL,'0','0','12','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Freeze,1000;','',''); REPLACE INTO `item_db` VALUES ('1835','Spartacus','Spartacus','4','20','10','600','100','0','0','1','2','33024','63','2','2','4','50',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkRate,getrefine(); if(getrefine()>9) bonus bNoSizeFix,0;','',''); REPLACE INTO `item_db` VALUES ('1836','Thanos_Knuckle','Thanatos Knuckles','4','20','10','1600','60','100','0','1','1','32768','56','2','2','4','120',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;'); -REPLACE INTO `item_db` VALUES ('1839','Scarlet_Knuckle','Crimson Knuckle','4','20','10','1000','100','0','0','1','2','33024','63','2','2','3','70',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('1900','Violin_of_Vicious_Mind','Violin of Vicious Mind','4','20','10','1300','130','50','0','1','1','524288','63','1','2','4','160',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2;','',''); +REPLACE INTO `item_db` VALUES ('1839','Scarlet_Knuckle','Crimson Knuckle','4','20','10','1000','100','0','0','1','2','33024','63','2','2','3','70',NULL,'1','0','12','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('1900','Violin_of_Vicious_Mind','Violin of Vicious Mind','4','20','10','1300','130','50','0','1','1','524288','63','1','2','4','160',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2;','',''); REPLACE INTO `item_db` VALUES ('1901','Violin','Violin','4','4000','2000','700','50','0','0','1','3','524288','63','1','2','1','2',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1902','Violin_','Violin','4','4000','2000','700','50','0','0','1','4','524288','63','1','2','1','2',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1903','Mandolin','Mandolin','4','18000','9000','400','90','0','0','1','2','524288','63','1','2','2','14',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -1183,7 +1183,7 @@ REPLACE INTO `item_db` VALUES ('1923','BF_Instrument1','Valorous Battlefield Gui REPLACE INTO `item_db` VALUES ('1924','BF_Instrument2','Brave Battlefield Guitar','4','20','10','0','50','0','0','1','0','524288','63','1','2','3','80',NULL,'1','0','13','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bSkillAtk,CG_ARROWVULCAN,20; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1925','Cello','Cello','4','20','10','700','110','0','0','1','3','524288','58','1','2','3','70',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bDex,3; bonus2 bAddSkillBlow,BA_MUSICALSTRIKE,2; bonus2 bAddSkillBlow,CG_ARROWVULCAN,3;','',''); REPLACE INTO `item_db` VALUES ('1926','Harp_Of_Nepenthes','Harp of Nepenthes','4','20','10','1000','120','0','0','1','2','524288','58','1','2','4','60',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; if( getrefine()>9 ) { bonus3 bAddEffOnSkill,BA_MUSICALSTRIKE,Eff_Stun,2000; } else { bonus3 bAddEffOnSkill,BA_MUSICALSTRIKE,Eff_Stun,1000; }','',''); -REPLACE INTO `item_db` VALUES ('1927','Krieger_Instrument1','Glorious Guitar','4','20','10','0','50','0','0','1','0','524288','63','1','2','4','80',NULL,'1','0','13','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;','',''); +REPLACE INTO `item_db` VALUES ('1927','Krieger_Instrument1','Glorious Guitar','4','20','10','0','50','0','0','1','0','524288','63','1','2','4','80',NULL,'1','0','13','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;','',''); REPLACE INTO `item_db` VALUES ('1928','Berserk_Guitar_I','Spirited Guitar','4','0','0','0','40','0','0','1','0','524288','58','1','2','4','0',NULL,'0','0','13','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,100; bonus bHPrecovRate,-100; bonus2 bHPLossRate,50,5000; bonus bDex,-readparam(bDex);','',''); REPLACE INTO `item_db` VALUES ('1929','Guitar_C','Guitar','4','0','0','0','177','0','0','1','0','524288','63','1','2','3','0',NULL,'0','0','13','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','',''); REPLACE INTO `item_db` VALUES ('1930','Green_Whistle','Green Whistle','4','20','10','800','170','50','0','1','1','524288','56','1','2','3','102',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getrefine()>5) { bonus2 bSkillUseSP,MI_RUSH_WINDMILL,(getrefine()-5)*4; bonus2 bSkillUseSP,WM_LULLABY_DEEPSLEEP,(getrefine()-5)*4; } bonus2 bSkillVariableCast,MI_RUSH_WINDMILL,-2000; bonus2 bSkillVariableCast,WM_LULLABY_DEEPSLEEP,-2000;','',''); @@ -1195,7 +1195,7 @@ REPLACE INTO `item_db` VALUES ('1935','Ukulele_Of_Newoz','Oz\'s New Ukulele','4' REPLACE INTO `item_db` VALUES ('1936','Ru_Blue_Violin','Blue Violin','4','20','10','1500','180','0','0','1','1','524288','56','1','2','3','100',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,5; bonus bVit,5;','',''); REPLACE INTO `item_db` VALUES ('1937','Ru_Gold_Violin','Ru Gold Violin','4','20','10','1500','180','0','0','1','2','524288','56','1','2','3','120',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,8; bonus bVit,8;','',''); REPLACE INTO `item_db` VALUES ('1938','Infinity_Violin','Infinity Violin','4','20','10','500','150','0','0','1','1','524288','56','1','2','4','100',NULL,'1','0','13','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('1939','Scarlet_Viollin','Crimson Violin','4','20','10','800','80','0','0','1','2','524288','63','1','2','3','70',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('1939','Scarlet_Viollin','Crimson Violin','4','20','10','800','80','0','0','1','2','524288','63','1','2','3','70',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); REPLACE INTO `item_db` VALUES ('1940','Conch_','Conch','4','0','0','600','120','0','0','1','1','524288','63','1','2','4','130',NULL,'1','0','13','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt, getrefine(); bonus bDex, getrefine(); if(getrefine() > 4) { bonus2 bSkillAtk, WM_REVERBERATION_MELEE, 10; bonus2 bSkillAtk, WM_REVERBERATION_MAGIC, 10; bonus2 bVariableCastrate, WM_REVERBERATION, -10; } if(getrefine() > 6) { bonus2 bSkillAtk, WM_REVERBERATION_MELEE, 10; bonus2 bSkillAtk, WM_REVERBERATION_MAGIC, 10; bonus2 bVariableCastrate, WM_REVERBERATION, -10; } if(getrefine() > 8) { bonus2 bSkillAtk, WM_REVERBERATION_MELEE, 20; bonus2 bSkillAtk, WM_REVERBERATION_MAGIC, 20; bonus2 bVariableCastrate, WM_REVERBERATION, -20; }','',''); REPLACE INTO `item_db` VALUES ('1950','Rope','Rope','4','2500','1250','400','45','0','0','2','3','524288','63','0','2','1','3',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('1951','Rope_','Rope','4','2500','1250','400','45','0','0','2','4','524288','63','0','2','1','3',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -1228,7 +1228,7 @@ REPLACE INTO `item_db` VALUES ('1977','BF_Whip1','Valorous Battle Lariat','4','2 REPLACE INTO `item_db` VALUES ('1978','BF_Whip2','Brave Battle Lariat','4','20','10','0','50','0','0','2','0','524288','63','0','2','3','80',NULL,'1','0','14','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bSkillAtk,CG_ARROWVULCAN,20; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('1979','Stem_Of_Nepenthes','Stem of Nepenthes','4','20','10','1000','120','0','0','2','2','524288','58','0','2','4','60',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; if( getrefine()>=9 ) { bonus3 bAddEffOnSkill,DC_THROWARROW,Eff_Freeze,2000; } else { bonus3 bAddEffOnSkill,DC_THROWARROW,Eff_Freeze,1000; }','',''); REPLACE INTO `item_db` VALUES ('1980','Whip_Of_Balance','Whip of Balance','4','20','10','700','110','0','0','2','3','524288','58','0','2','3','70',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bDex,3; bonus2 bAddSkillBlow,DC_THROWARROW,2; bonus2 bAddSkillBlow,CG_ARROWVULCAN,3;','',''); -REPLACE INTO `item_db` VALUES ('1981','Krieger_Whip1','Glorious Lariat','4','20','10','0','50','0','0','2','0','524288','63','0','2','4','80',NULL,'1','0','14','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;','',''); +REPLACE INTO `item_db` VALUES ('1981','Krieger_Whip1','Glorious Lariat','4','20','10','0','50','0','0','2','0','524288','63','0','2','4','80',NULL,'1','0','14','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;','',''); REPLACE INTO `item_db` VALUES ('1982','Phenomena_Whip','Phenomena Whip','4','20','10','0','160','0','0','2','0','524288','63','0','2','4','0',NULL,'0','0','14','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus2 bSkillAtk,DC_THROWARROW,25;','',''); REPLACE INTO `item_db` VALUES ('1983','Rante_C','Rante Whip','4','0','0','0','170','0','0','2','0','524288','63','0','2','3','0',NULL,'0','0','14','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','',''); REPLACE INTO `item_db` VALUES ('1984','Stem_Whip','Stem Whip','4','20','10','800','170','50','0','1','1','524288','56','0','2','3','102',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getrefine()>5) { bonus2 bSkillUseSP,WA_SWING_DANCE,(getrefine()-5)*4; bonus2 bSkillUseSP,WM_LULLABY_DEEPSLEEP,(getrefine()-5)*4; } bonus2 bSkillVariableCast,WA_SWING_DANCE,-2000; bonus2 bSkillVariableCast,WM_LULLABY_DEEPSLEEP,-2000;','',''); @@ -1241,8 +1241,8 @@ REPLACE INTO `item_db` VALUES ('1990','Floral_Mic_Of_Igu','Bloody Floral Decorat REPLACE INTO `item_db` VALUES ('1991','Ru_Blue_Whip','Blue Whip','4','20','10','1500','180','0','0','2','1','524288','56','0','2','3','100',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,5; bonus bVit,5;','',''); REPLACE INTO `item_db` VALUES ('1992','Ru_Gold_Whip','Ru Gold Whip','4','20','10','1500','180','0','0','2','2','524288','56','0','2','3','120',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,8; bonus bVit,8;','',''); REPLACE INTO `item_db` VALUES ('1994','Infinity_Wire','Infinity Wire','4','20','10','0','100','0','0','2','1','524288','56','0','2','4','100',NULL,'1','0','14','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('1995','Scarlet_Wire','Crimson Wire','4','20','10','800','80','0','0','2','2','524288','63','0','2','3','70',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('1996','Wire_of_Vicious_Mind','Wire of Vicious Mind','4','20','10','1300','130','50','0','2','1','524288','63','0','2','4','160',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2;','',''); +REPLACE INTO `item_db` VALUES ('1995','Scarlet_Wire','Crimson Wire','4','20','10','800','80','0','0','2','2','524288','63','0','2','3','70',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('1996','Wire_of_Vicious_Mind','Wire of Vicious Mind','4','20','10','1300','130','50','0','2','1','524288','63','0','2','4','160',NULL,'1','0','14','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2;','',''); REPLACE INTO `item_db` VALUES ('2000','Destruction_Rod','Staff of Destruction','4','20','10','2500','130','280','0','1','1','512','58','2','34','4','80',NULL,'1','0','23','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,getrefine()/2; bonus bInt,3; bonus bAgi,10; bonus bUseSPrate,(getrefine()*2); bonus3 bAutoSpellWhenHit,WZ_JUPITEL,5,(getrefine()*20); bonus2 bVariableCastrate,HW_MAGICPOWER,-50;','',''); REPLACE INTO `item_db` VALUES ('2001','Divine_Cross','Divine Cross','4','20','10','1500','120','210','0','1','0','33024','63','2','34','4','70',NULL,'1','0','23','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bDex,4; bonus2 bAddRaceTolerance,RC_Demon,15; bonus2 bAddRaceTolerance,RC_Undead,15;','',''); REPLACE INTO `item_db` VALUES ('2002','Krieger_Twohand_Staff1','Glorious Destruction Staff','4','20','10','0','70','210','0','1','0','8487700','63','2','34','4','80',NULL,'1','0','23','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,getrefine(); bonus2 bMagicAddRace,RC_DemiPlayer,15; bonus2 bIgnoreMdefRate,RC_DemiPlayer,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bMagicAddRace,RC_DemiPlayer,(min(getrefine(),14)-5)*2; bonus2 bIgnoreMdefRate,RC_DemiPlayer,5+(min(getrefine(),14)-5)*2; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,WZ_STORMGUST,MG_SAFETYWALL,10,200,1; bonus5 bAutoSpellOnSkill,WZ_METEOR,MG_SAFETYWALL,10,200,1; bonus5 bAutoSpellOnSkill,WZ_VERMILION,MG_SAFETYWALL,10,200,1; }','',''); @@ -1268,8 +1268,8 @@ REPLACE INTO `item_db` VALUES ('2021','Ganbantein','Ganbantein','4','20','10','2 REPLACE INTO `item_db` VALUES ('2022','Staff_Of_Geffen','Staff Of Geffen','4','20','10','1000','100','300','0','0','1','512','56','2','34','1','150',NULL,'1','0','10','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,20;','',''); REPLACE INTO `item_db` VALUES ('2023','Thanos_Rod','Thanatos Two-Handed Staff','4','20','10','1400','120','250','0','1','1','99092','56','2','34','4','120',NULL,'1','0','23','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000; bonus bHealPower,18;','','heal -1000,0;'); REPLACE INTO `item_db` VALUES ('2024','Infinity_Staff','Infinity Staff','4','20','10','500','30','170','0','0','1','8454656','56','2','34','4','100',NULL,'1','0','23','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('2025','Scarlet_Staff','Staff of Crimson','4','20','10','1000','100','150','0','1','2','8454660','63','2','34','3','70',NULL,'1','0','23','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bInt,5; bonus bMatk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bMatk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('2026','Staff_of_Vicious_Mind','Staff of Vicious Mind','4','20','10','1000','100','200','0','1','1','8454660','63','2','34','4','160',NULL,'1','0','23','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bMatk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon,0;','',''); +REPLACE INTO `item_db` VALUES ('2025','Scarlet_Staff','Staff of Crimson','4','20','10','1000','100','150','0','1','2','8454660','63','2','34','3','70',NULL,'1','0','23','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bInt,5; bonus bMatk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bMatk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('2026','Staff_of_Vicious_Mind','Staff of Vicious Mind','4','20','10','1000','100','200','0','1','1','8454660','63','2','34','4','160',NULL,'1','0','23','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bMatk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('2101','Guard','Guard','5','500','250','300','0','0','20','0','0','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('2102','Guard_','Guard','5','500','250','300','0','0','20','0','1','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('2103','Buckler','Buckler','5','14000','7000','600','0','0','40','0','0','972274','63','2','32','0','0',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -6751,7 +6751,7 @@ REPLACE INTO `item_db` VALUES ('13038','Dagger_Of_Hunter','Dagger of Hunter','4' REPLACE INTO `item_db` VALUES ('13039','Ivory_Knife','Ivory Knife','4','20','10','700','130','0','0','1','2','1007342','58','2','2','3','50',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,30;','',''); REPLACE INTO `item_db` VALUES ('13040','N_Cutter','Novice Cutter','4','0','0','0','50','0','0','1','3','579821295','63','2','2','1','0',NULL,'0','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('13041','N_Main_Gauche','Novice Main Gauche','4','0','0','0','63','0','0','1','3','579821295','63','2','2','1','0',NULL,'0','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('13042','Krieger_Dagger1','Glorious Gladius','4','20','10','0','120','0','0','1','0','579821295','63','2','2','4','80',NULL,'1','0','1','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus3 bAutoSpell,PR_LEXDIVINA,1,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,RG_RAID,NPC_WIDEBLEEDING,1,250;','',''); +REPLACE INTO `item_db` VALUES ('13042','Krieger_Dagger1','Glorious Gladius','4','20','10','0','120','0','0','1','0','579821295','63','2','2','4','80',NULL,'1','0','1','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus3 bAutoSpell,PR_LEXDIVINA,1,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,RG_RAID,NPC_WIDEBLEEDING,1,250;','',''); REPLACE INTO `item_db` VALUES ('13043','Fortune_Sword_I','Fortune Sword','4','0','0','0','120','0','0','1','0','579821294','63','2','2','4','0',NULL,'0','0','1','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,5;','',''); REPLACE INTO `item_db` VALUES ('13044','House_Auger_I','Ice Pick','4','0','0','0','105','0','0','1','0','579821294','63','2','2','4','0',NULL,'0','0','1','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('13045','Kamaitachi_I','Kamaitachi','4','0','0','0','155','0','0','2','0','570425344','1','2','2','4','0',NULL,'0','0','1','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -6805,7 +6805,7 @@ REPLACE INTO `item_db` VALUES ('13106','Gold_Lux','Gold Lux','4','100000','50000 REPLACE INTO `item_db` VALUES ('13107','Wasteland_Outlaw','Wasteland\'s Outlaw','4','20','10','580','68','0','0','7','2','16777216','1','2','34','3','70',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14;','',''); REPLACE INTO `item_db` VALUES ('13108','BF_Pistol1','Soldier Revolver','4','20','10','0','70','0','0','7','0','16777216','1','2','34','3','80',NULL,'1','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; autobonus \"{ bonus bAspdRate,100; }\",10,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('13109','Wasteland_Outlaw_C','Western Outlaw','4','20','10','0','100','0','0','7','0','16777216','1','2','34','3','0',NULL,'0','0','17','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace, RC_All, 10; bonus bMatkRate,10;','',''); -REPLACE INTO `item_db` VALUES ('13110','Krieger_Pistol1','Glorious Pistol','4','20','10','0','80','0','0','7','0','16777216','1','2','34','4','80',NULL,'1','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,GS_RAPIDSHOWER,GS_GLITTERING,1,1000; bonus2 bSkillAtk,GS_RAPIDSHOWER,getrefine()*2; }','',''); +REPLACE INTO `item_db` VALUES ('13110','Krieger_Pistol1','Glorious Pistol','4','20','10','0','80','0','0','7','0','16777216','1','2','34','4','80',NULL,'1','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,GS_RAPIDSHOWER,GS_GLITTERING,1,1000; bonus2 bSkillAtk,GS_RAPIDSHOWER,getrefine()*2; }','',''); REPLACE INTO `item_db` VALUES ('13111','Sharpshooter_Revolver','Sharpshooter Revolver','4','20','10','0','105','0','0','7','0','16777216','1','2','34','4','0',NULL,'0','0','17','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2;','',''); REPLACE INTO `item_db` VALUES ('13112','P_Revolver1','Eden Revolver I','4','0','0','0','44','0','0','7','0','16777216','1','2','34','2','26',NULL,'0','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','',''); REPLACE INTO `item_db` VALUES ('13113','P_Revolver2','Eden Revolver II','4','0','0','0','60','0','0','7','0','16777216','1','2','34','2','40',NULL,'0','0','17','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','',''); @@ -6816,8 +6816,8 @@ REPLACE INTO `item_db` VALUES ('13117','TE_Woe_Pistol','TE Woe Pistol','4','0',' REPLACE INTO `item_db` VALUES ('13120','H_FEATHER_H_FIRE','Heaven\'s_Feather_&_Hell\'s_Fire','4','1250000','625000','800','150','0','0','9','1','1090519040','63','2','34','3','99',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,GS_DESPERADO,20; bonus2 bSkillAtk,RL_FALLEN_ANGEL,20;','',''); REPLACE INTO `item_db` VALUES ('13122','ALTAIR_ARES','Altea & Ares','4','1450000','725000','1000','200','0','0','9','0','1073741824','63','2','34','3','140',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30;','',''); REPLACE INTO `item_db` VALUES ('13124','ALTAIR_ARES_','Altea & Ares','4','1450000','725000','1000','200','0','0','9','1','1073741824','63','2','34','3','140',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30;','',''); -REPLACE INTO `item_db` VALUES ('13127','Scarlet_Revolver','Crimson Revolver','4','20','10','1000','100','0','0','7','2','16777216','63','2','34','3','70',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('13128','Revolver_of_Vicious_Mind','Revolver of Vicious Mind','4','20','10','1500','150','0','0','7','1','16777216','63','2','34','4','160',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2);','',''); +REPLACE INTO `item_db` VALUES ('13127','Scarlet_Revolver','Crimson Revolver','4','20','10','1000','100','0','0','7','2','16777216','63','2','34','3','70',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('13128','Revolver_of_Vicious_Mind','Revolver of Vicious Mind','4','20','10','1500','150','0','0','7','1','16777216','63','2','34','4','160',NULL,'1','0','17','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','',''); REPLACE INTO `item_db` VALUES ('13150','Branch','Branch','4','3000','1500','500','50','0','0','9','3','16777216','1','2','34','1','0',NULL,'1','0','18','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('13151','The_Cyclone','Cyclone','4','17500','8750','700','120','0','0','9','1','16777216','1','2','34','2','24',NULL,'1','0','18','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCritical,10;','',''); REPLACE INTO `item_db` VALUES ('13152','The_Cyclone_','Cyclone','4','17500','8750','700','120','0','0','9','2','16777216','1','2','34','2','24',NULL,'1','0','18','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCritical,10;','',''); @@ -6844,10 +6844,10 @@ REPLACE INTO `item_db` VALUES ('13172','BF_Gatling_Gun1','Soldier GatlingGun','4 REPLACE INTO `item_db` VALUES ('13173','BF_Shotgun1','Soldier Shotgun','4','20','10','0','100','0','0','9','0','16777216','1','2','34','3','80',NULL,'1','0','20','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; autobonus \"{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }\",30,6000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('13174','BF_Launcher1','Soldier Grenade Launcher','4','20','10','0','300','0','0','9','0','16777216','1','2','34','3','80',NULL,'1','0','21','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; autobonus \"{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }\",30,9000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('13175','Lever_Action_Rifle_C','Lever Action Rifle','4','20','10','0','170','0','0','9','0','16777216','1','2','34','3','0',NULL,'0','0','18','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;','',''); -REPLACE INTO `item_db` VALUES ('13176','Krieger_Rifle1','Glorious Rifle','4','20','10','0','90','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','0','18','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bVariableCastrate,GS_TRACKING,25; bonus2 bSkillAtk,GS_TRACKING,getrefine() * 3; }','',''); -REPLACE INTO `item_db` VALUES ('13177','Krieger_Gatling1','Glorious Gatling gun','4','20','10','0','90','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','0','19','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,35; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),10)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if (getrefine() > 8) { bonus2 bAddRace, RC_All, getrefine(); }','',''); -REPLACE INTO `item_db` VALUES ('13178','Krieger_Shotgun1','Glorious Shotgun','4','20','10','0','110','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','0','20','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bSplashRange,1; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),10)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bSkillAtk,GS_SPREADATTACK,getrefine() * 2; bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000; }','',''); -REPLACE INTO `item_db` VALUES ('13179','Krieger_Launcher1','Glorious Grenade Launcher','4','20','10','0','330','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','0','21','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,35; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),10)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bSkillAtk,GS_GROUNDDRIFT,getrefine() * 2; bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000; autobonus \"{ bonus bAspdRate,20; }\",200,20000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; }','',''); +REPLACE INTO `item_db` VALUES ('13176','Krieger_Rifle1','Glorious Rifle','4','20','10','0','90','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','0','18','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bVariableCastrate,GS_TRACKING,25; bonus2 bSkillAtk,GS_TRACKING,getrefine() * 3; }','',''); +REPLACE INTO `item_db` VALUES ('13177','Krieger_Gatling1','Glorious Gatling gun','4','20','10','0','90','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','0','19','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,35; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),10)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if (getrefine() > 8) { bonus2 bAddRace, RC_All, getrefine(); }','',''); +REPLACE INTO `item_db` VALUES ('13178','Krieger_Shotgun1','Glorious Shotgun','4','20','10','0','110','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','0','20','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,55; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bSplashRange,1; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),10)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bSkillAtk,GS_SPREADATTACK,getrefine() * 2; bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000; }','',''); +REPLACE INTO `item_db` VALUES ('13179','Krieger_Launcher1','Glorious Grenade Launcher','4','20','10','0','330','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','0','21','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,35; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),10)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus2 bSkillAtk,GS_GROUNDDRIFT,getrefine() * 2; bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000; autobonus \"{ bonus bAspdRate,20; }\",200,20000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; }','',''); REPLACE INTO `item_db` VALUES ('13180','Novice_Rifle','Starter Branch','4','0','0','500','50','0','0','9','3','16777216','1','2','34','1','0',NULL,'0','0','18','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('13181','Novice_Shotgun','Beginner Shotgun','4','0','0','1000','80','0','0','9','0','16777216','1','2','34','1','0',NULL,'0','0','20','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('13182','Novice_Gatling','Beginner GatlingGun','4','0','0','1500','40','0','0','9','0','16777216','1','2','34','1','0',NULL,'0','0','19','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -6946,7 +6946,7 @@ REPLACE INTO `item_db` VALUES ('13303','Huuma_Blaze','Huuma Blaze Shuriken','4', REPLACE INTO `item_db` VALUES ('13304','Huuma_Calm_Mind','Huuma Calm Mind','4','20','10','1550','112','0','0','1','2','570425344','1','2','34','3','70',NULL,'1','0','22','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bSkillAtk,NJ_HUUMA,30; bonus bNoCastCancel,0;','',''); REPLACE INTO `item_db` VALUES ('13305','BF_Huuma_Shuriken1','Brave Huuma Front Shuriken','4','20','10','0','55','0','0','1','0','570425344','1','2','34','3','80',NULL,'1','0','22','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bDex,1; bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('13306','BF_Huuma_Shuriken2','Valorous Huuma Front Shuriken','4','20','10','0','55','0','0','1','0','570425344','1','2','34','3','80',NULL,'1','0','22','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bDex,1; bonus2 bAddRace,RC_DemiPlayer,95; autobonus \"{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }\",50,10000,BF_WEAPON,\"{specialeffect2 EF_POTION_BERSERK; }\"; bonus bUnbreakableWeapon,0;','',''); -REPLACE INTO `item_db` VALUES ('13307','Krieger_Huuma_Shuriken1','Glorious Shuriken','4','20','10','0','55','90','0','1','0','570425344','1','2','34','4','80',NULL,'1','0','22','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bMatkRate,15; autobonus \"{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }\",50,10000; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-3,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,NJ_ISSEN,AL_HEAL,10,1000,1; bonus4 bAutoSpellOnSkill,NJ_HUUMA,NPC_CRITICALWOUND,2,200; }','',''); +REPLACE INTO `item_db` VALUES ('13307','Krieger_Huuma_Shuriken1','Glorious Shuriken','4','20','10','0','55','90','0','1','0','570425344','1','2','34','4','80',NULL,'1','0','22','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,95; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bMatkRate,15; autobonus \"{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }\",50,10000; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-3) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,NJ_ISSEN,AL_HEAL,10,1000,1; bonus4 bAutoSpellOnSkill,NJ_HUUMA,NPC_CRITICALWOUND,2,200; }','',''); REPLACE INTO `item_db` VALUES ('13308','Huuma_Blaze_I','Huuma Blaze Shuriken','4','0','0','0','230','0','0','1','0','570425344','1','2','34','4','0',NULL,'0','0','22','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkEle,Ele_Fire; bonus bDex,2;','',''); REPLACE INTO `item_db` VALUES ('13309','Huuma_Giant_Wheel_C','Huuma Giant Wheel Shuriken','4','0','0','0','99','0','0','1','0','570425344','1','2','34','4','0',NULL,'0','0','22','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('13310','P_Huuma_Shuriken1','Eden Group Huuma Shuriken I','4','0','0','0','150','50','0','1','0','570425344','1','2','34','3','60',NULL,'0','0','22','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50;','',''); @@ -6957,8 +6957,8 @@ REPLACE INTO `item_db` VALUES ('13314','Huuma_Fluttering_Snow','Huuma Fluttering REPLACE INTO `item_db` VALUES ('13315','Huuma_Thunderstorm','Huuma Thunderstorm','4','100000','50000','1500','200','50','0','1','0','570425344','1','2','34','4','110',NULL,'1','0','22','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50; bonus bAtkEle,Ele_Wind; bonus3 bAutoSpell,NJ_RAIGEKISAI,max(getskilllv(NJ_RAIGEKISAI),1),30;','',''); REPLACE INTO `item_db` VALUES ('13316','Upg_Huuma_Shuriken','Upg Huuma Shuriken','4','20','10','1500','55','0','0','1','1','570425344','1','2','34','3','0',NULL,'1','0','22','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,10*getrefine(); bonus bMatk,5*getrefine(); bonus bLongAtkRate,getrefine(); if(BaseLevel>=70) { bonus bBaseAtk,5*((BaseLevel-60)/10); }','',''); REPLACE INTO `item_db` VALUES ('13317','TE_Woe_Huuma','TE Woe Huuma','4','0','0','0','80','100','0','1','0','570425344','1','2','34','3','40',NULL,'0','0','22','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Bleeding,1000;','',''); -REPLACE INTO `item_db` VALUES ('13327','Scarlet_Huuma','Crimson Huuma Shuriken','4','20','10','1000','100','0','0','1','2','570425344','63','2','34','3','70',NULL,'1','0','22','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('13328','Huuma_Shuriken_of_Vicious_Mind','Huuma Shuriken of Vicious Mind','4','20','10','1500','150','50','0','1','1','570425344','63','2','34','4','160',NULL,'1','0','22','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; bonus bUnbreakableWeapon,0;','',''); +REPLACE INTO `item_db` VALUES ('13327','Scarlet_Huuma','Crimson Huuma Shuriken','4','20','10','1000','100','0','0','1','2','570425344','63','2','34','3','70',NULL,'1','0','22','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('13328','Huuma_Shuriken_of_Vicious_Mind','Huuma Shuriken of Vicious Mind','4','20','10','1500','150','50','0','1','1','570425344','63','2','34','4','160',NULL,'1','0','22','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('13400','Cutlas_','Cutlus','4','20','10','900','150','0','0','1','1','414946','63','2','2','4','40',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill SM_BASH,5; bonus bStr,2; bonus bDef,1;','',''); REPLACE INTO `item_db` VALUES ('13401','Excalibur_C','Excalibur','4','1','0','0','199','0','0','1','0','414946','63','2','2','4','0',NULL,'0','0','2','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,10; bonus bLuk,10; bonus bAtkEle,Ele_Holy;','',''); REPLACE INTO `item_db` VALUES ('13402','Cutlas_C','Cutlas','4','2','1','0','185','0','0','1','0','414946','63','2','2','4','0',NULL,'0','0','2','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','skill SM_BASH,5; bonus bStr,2; bonus bDef,1;','',''); @@ -6975,7 +6975,7 @@ REPLACE INTO `item_db` VALUES ('13412','Twin_Edge_B','Twin Edge of Naght Sieger' REPLACE INTO `item_db` VALUES ('13413','Twin_Edge_R','Twin Edge of Naght Sieger','4','20','10','1500','160','0','0','1','3','414946','58','2','2','4','75',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Fire; skill WZ_METEOR,3; autobonus \"{ bonus bIgnoreDefRace,RC_NonBoss; }\",50,5000;','',''); REPLACE INTO `item_db` VALUES ('13414','Elemental_Sword','Elemental Sword','4','20','10','1200','105','95','0','1','3','414946','58','2','2','3','70',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,4; bonus bDex,1; bonus2 bAddEle,Ele_Neutral,10; bonus3 bAutoSpell,MG_COLDBOLT,3,50; bonus4 bAutoSpellOnSkill,MG_COLDBOLT,MG_FIREBOLT,3,1000; bonus4 bAutoSpellOnSkill,MG_FIREBOLT,MG_LIGHTNINGBOLT,3,1000; bonus4 bAutoSpellOnSkill,MG_LIGHTNINGBOLT,WZ_EARTHSPIKE,3,1000;','',''); REPLACE INTO `item_db` VALUES ('13415','N_Falchion','Novice Falchion','4','0','0','0','59','0','0','1','3','414947','63','2','2','1','2',NULL,'0','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('13416','Krieger_Onehand_Sword1','Glorious Flamberge','4','20','10','0','130','0','0','1','0','414947','63','2','2','4','80',NULL,'1','0','2','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>6) { bonus bAspdRate,5; } if(getrefine()>8) { bonus bAspdRate,5; bonus4 bAutoSpellOnSkill,SM_BASH,NPC_CRITICALWOUND,2,200; }','',''); +REPLACE INTO `item_db` VALUES ('13416','Krieger_Onehand_Sword1','Glorious Flamberge','4','20','10','0','130','0','0','1','0','414947','63','2','2','4','80',NULL,'1','0','2','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiPlayer,75; bonus2 bIgnoreDefRate,RC_DemiPlayer,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiPlayer,((min(getrefine(),14)-4) ** (2)); bonus2 bIgnoreDefRate,RC_DemiPlayer,5; } if(getrefine()>6) { bonus bAspdRate,5; } if(getrefine()>8) { bonus bAspdRate,5; bonus4 bAutoSpellOnSkill,SM_BASH,NPC_CRITICALWOUND,2,200; }','',''); REPLACE INTO `item_db` VALUES ('13417','Krieger_Onehand_Sword2','Glorious Rapier','4','20','10','0','130','80','0','1','0','414947','63','2','2','4','80',NULL,'1','0','2','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus bUseSPrate,-10; } if(getrefine()>8) { bonus bInt,5; }','',''); REPLACE INTO `item_db` VALUES ('13418','Krieger_Onehand_Sword3','Glorious Holy Avenger','4','20','10','0','130','80','0','1','0','279714','63','2','2','4','80',NULL,'1','0','2','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus bUseSPrate,-10; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,PA_PRESSURE,PR_LEXAETERNA,1,1000; } if(getrefine()>9) { bonus bInt,5; }','',''); REPLACE INTO `item_db` VALUES ('13419','Holy_Saber','Holy Saber','4','20','10','0','160','0','0','1','0','414946','63','2','2','3','0',NULL,'0','0','2','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','',''); @@ -7000,8 +7000,8 @@ REPLACE INTO `item_db` VALUES ('13440','Ceremonial_Sword','Ceremonial Sword','4' REPLACE INTO `item_db` VALUES ('13441','Thanos_Sword','Thanatos Sword','4','10','5','700','150','100','0','1','1','16514','63','2','2','4','120',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt, 6; bonus bVit, 6; bonus bLuk, -6; bonus2 bHPDrainRate, 50, 5; bonus2 bSPDrainRate, 10, 5; bonus2 bHPLossRate, 100, 10000;','','heal -1000,0;'); REPLACE INTO `item_db` VALUES ('13442','Old_Parasol','Old Parasol','4','20','10','500','120','80','0','0','3','414946','63','2','2','3','80',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,getrefine(); skill MG_SOULSTRIKE,10;','',''); REPLACE INTO `item_db` VALUES ('13444','Pala','Pala','4','20','10','700','190','0','0','0','1','414946','63','2','2','3','0',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,8;','',''); -REPLACE INTO `item_db` VALUES ('13454','Scarlet_Saber','Crimson Saber','4','20','10','850','85','0','0','1','2','414947','63','2','2','3','70',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('13455','Saber_of_Vicious_Mind','Saber of Vicious Mind','4','20','10','1350','135','0','0','1','1','414947','63','2','2','4','160',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2);','',''); +REPLACE INTO `item_db` VALUES ('13454','Scarlet_Saber','Crimson Saber','4','20','10','850','85','0','0','1','2','414947','63','2','2','3','70',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('13455','Saber_of_Vicious_Mind','Saber of Vicious Mind','4','20','10','1350','135','0','0','1','1','414947','63','2','2','4','160',NULL,'1','0','2','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','',''); REPLACE INTO `item_db` VALUES ('13500','Insurance60_Package','Life Insurrance Box','18','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14500,10;','',''); REPLACE INTO `item_db` VALUES ('13501','Assorted_Scroll_Box','Experience Scroll Box','18','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('13502','Drooping_Kitty_Box','Refined Drooping Cat Box','18','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 5279,604800;','',''); @@ -8085,8 +8085,8 @@ REPLACE INTO `item_db` VALUES ('16030','Pilebuncker_S','Pile Bunker S','4','0',' REPLACE INTO `item_db` VALUES ('16031','Pilebuncker_P','Pile Bunker P','4','0','0','4000','450','0','0','1','0','1024','56','2','2','4','130',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk, (getrefine() * 5);','',''); REPLACE INTO `item_db` VALUES ('16032','Pilebuncker_T','Pile Bunker T','4','0','0','3500','400','0','0','1','1','1024','56','2','2','4','130',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUseSPrate, - getrefine();','',''); REPLACE INTO `item_db` VALUES ('16039','Spoon','Spoon','4','20','10','100','80','0','0','1','1','312755','63','2','2','3','40',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspd,10; bonus2 bAddEff,Eff_Curse,1000;','',''); -REPLACE INTO `item_db` VALUES ('16040','Scarlet_Mace','Crimson Mace','4','20','10','800','80','0','0','1','2','312755','63','2','2','3','70',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('16041','Mace_of_Vicious_Mind','Mace of Vicious Mind','4','20','10','1300','130','0','0','1','1','312755','63','2','2','4','160',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon,0;','',''); +REPLACE INTO `item_db` VALUES ('16040','Scarlet_Mace','Crimson Mace','4','20','10','800','80','0','0','1','2','312755','63','2','2','3','70',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('16041','Mace_of_Vicious_Mind','Mace of Vicious Mind','4','20','10','1300','130','0','0','1','1','312755','63','2','2','4','160',NULL,'1','0','8','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('16131','Lady_Tanee_Doll_Box','Tanigumi Girl Doll Box','18','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5526,1;','',''); REPLACE INTO `item_db` VALUES ('16132','Lunatic_Hat_Box','Lunatic Hat Box','18','20','10','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5527,1;','',''); REPLACE INTO `item_db` VALUES ('16134','King_Frog_Hat_Box','Frog King Hat Box','18','20','10','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5528,1;','',''); @@ -8466,13 +8466,13 @@ REPLACE INTO `item_db` VALUES ('18117','Royal_Bow','Royal Bow','4','200000','100 REPLACE INTO `item_db` VALUES ('18118','TE_Woe_Bow','TE Woe Bow','4','200000','100000','1500','120','0','0','5','0','657416','63','2','34','3','40',NULL,'0','0','11','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Player,40; bonus2 bAddEff,Eff_Curse,1000;','',''); REPLACE INTO `item_db` VALUES ('18119','Thanos_Bow','Thanatos Bow','4','20','10','1300','180','110','0','5','1','657416','56','2','34','4','120',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;'); REPLACE INTO `item_db` VALUES ('18120','Bow_Of_Evil_Slayer','Evil Slayer Piercer Bow','4','20','10','1350','115','0','0','5','1','657416','56','2','34','3','100',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Demon,10; bonus2 bAddRace,RC_Undead,10; if(getrefine()>=9) { bonus bAtkRate,5; } if(getrefine()>=12) { bonus bAtkRate,7; }','',''); -REPLACE INTO `item_db` VALUES ('18121','Bow_of_Vicious_Mind','Bow of Vicious Mind','4','20','10','1700','170','0','0','5','1','657416','63','2','34','4','160',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2);','',''); +REPLACE INTO `item_db` VALUES ('18121','Bow_of_Vicious_Mind','Bow of Vicious Mind','4','20','10','1700','170','0','0','5','1','657416','63','2','34','4','160',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','',''); REPLACE INTO `item_db` VALUES ('18122','Gigantic_Bow','Giant Bow','4','20','10','3000','195','0','0','5','1','2048','56','2','34','4','130',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLongAtkRate,40; bonus bAspdRate,-15; bonus bHit,-50;','',''); REPLACE INTO `item_db` VALUES ('18123','Bow_Of_Storm','Bow of Storms','4','12400','6200','1500','160','0','0','5','1','526344','56','2','34','4','130',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLongAtkRate,30; bonus2 bSkillCooldown,WM_SEVERE_RAINSTORM,-20; bonus2 bSkillUseSP,WM_SEVERE_RAINSTORM,15;','',''); REPLACE INTO `item_db` VALUES ('18124','Half_BF_Bow1','Half BF Bow1','4','0','0','0','100','0','0','5','0','657480','63','2','34','3','0',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus2 bAddRace,RC_DemiPlayer,30; bonus2 bIgnoreDefRate,RC_DemiPlayer,10; bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('18126','Ru_Blue_Bow','Blue Bow','4','20','10','1200','170','0','0','5','1','2048','56','2','34','3','100',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,5; bonus bDex,5;','',''); REPLACE INTO `item_db` VALUES ('18128','Infinity_Bow','Infinity Bow','4','0','0','500','160','0','0','5','1','657480','56','2','34','4','100',NULL,'1','0','11','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('18130','Scarlet_Bow','Crimson Bow','4','20','10','1200','120','0','0','5','2','657416','63','2','34','3','7',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('18130','Scarlet_Bow','Crimson Bow','4','20','10','1200','120','0','0','5','2','657416','63','2','34','3','7',NULL,'1','0','11','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); REPLACE INTO `item_db` VALUES ('18500','Cheer_Scarf6','Cheering scarf VI','5','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','0',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace, RC_All, 60;','',''); REPLACE INTO `item_db` VALUES ('18501','Cheer_Scarf8','Cheering scarf VIII','5','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','0',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace, RC_All, 80;','',''); REPLACE INTO `item_db` VALUES ('18502','Cheer_Scarf10','Cheering scarf X','5','0','0','0','0','0','0','0','0','18446744073709551615','63','2','1','0','0',NULL,'0','0','369','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace, RC_All, 100;','',''); @@ -9725,8 +9725,8 @@ REPLACE INTO `item_db` VALUES ('21011','Giant_Blade','Gigantic Blade','4','20',' REPLACE INTO `item_db` VALUES ('21012','Mashirubeken','Mashirubeken','4','20','10','2200','200','150','0','1','2','128','56','2','34','4','110',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('21013','Companion_Cavalry_Sword','Companion Cavalry Sword','4','20','10','2200','210','0','0','1','2','128','56','2','34','4','110',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillUseSP,KN_AUTOCOUNTER,-2; bonus2 bSkillUseSP,LK_PARRYING,-25;','',''); REPLACE INTO `item_db` VALUES ('21014','Infinity_Two_Hand_Sword','Infinity Two-Handed Sword','4','20','10','500','230','0','0','1','1','16514','56','2','34','4','100',NULL,'1','0','3','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('21015','Scarlet_Twohand_Sword','Crimson Two-Handed Sword','4','20','10','1700','170','0','0','1','2','16514','63','2','34','3','70',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('21016','Two_Handed_Sword_of_Vicious_Mind','Two-Handed Sword of Vicious Mind','4','20','10','2200','220','0','0','1','1','16514','63','2','34','4','160',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2);','',''); +REPLACE INTO `item_db` VALUES ('21015','Scarlet_Twohand_Sword','Crimson Two-Handed Sword','4','20','10','1700','170','0','0','1','2','16514','63','2','34','3','70',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('21016','Two_Handed_Sword_of_Vicious_Mind','Two-Handed Sword of Vicious Mind','4','20','10','2200','220','0','0','1','1','16514','63','2','34','4','160',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','',''); REPLACE INTO `item_db` VALUES ('21018','Lindy_Hop','Lindy Hop','4','20','10','3400','340','0','0','1','2','16514','56','2','34','4','170',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkRate,getrefine()/2; bonus bAspdRate,getrefine();','',''); REPLACE INTO `item_db` VALUES ('21019','Onimaru','Onimaru','4','0','0','4200','75','0','0','1','2','128','56','2','34','4','130',NULL,'1','0','3','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,min(readparam(bStr),120); if(readparam(bStr)>=95) { bonus bAtk,40; } if(readparam(bStr)>=108) { bonus bAtk,40; } if(readparam(bStr)>=120) { bonus bAtk,40; } if(getrefine()>=7) { bonus3 bAutoSpell,NPC_WIDECURSE,5,10; } /* Custom - JRO */ if(getrefine()>=9) { skill LK_BERSERK,1; }','',''); REPLACE INTO `item_db` VALUES ('22000','Temporal_Str_Boots','Temporal STR Boots','5','20','10','600','0','0','25','0','0','18446744073709551615','56','2','64','0','99',NULL,'1','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,300+((getrefine()/3)*100); bonus bMaxSP,30+((getrefine()/3)*10); bonus bAtk,(getrefine()/3)*7; if(readparam(bStr)>=120) { bonus bAtk,50; }','',''); @@ -10046,14 +10046,14 @@ REPLACE INTO `item_db` VALUES ('26101','Paradise_Foxtail_Staff_III','Eden Group REPLACE INTO `item_db` VALUES ('28000','Thanos_Katar','Thanatos Katar','4','20','10','1800','220','80','0','1','1','4096','56','2','34','4','120',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;'); REPLACE INTO `item_db` VALUES ('28001','Katar_Of_Evil_Slayer','Evil Slayer Ripper Katar','4','20','10','1200','120','0','0','1','1','4096','56','2','34','3','100',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Demon,10; bonus2 bAddRace,RC_Undead,10; if(getrefine()>8) { bonus bAtkRate,5; } if(getrefine()>11) { bonus bAtkRate,7; }','',''); REPLACE INTO `item_db` VALUES ('28002','Half_BF_Katar2','Half BF Katar2','4','20','10','0','130','0','0','1','0','4096','63','2','34','3','80',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus bLuk,1; bonus2 bAddRace,RC_DemiPlayer,35; bonus bCritAtkRate,10; bonus bAspdRate,3; bonus bUnbreakableWeapon,0;','',''); -REPLACE INTO `item_db` VALUES ('28007','Scarlet_Katar','Crimson Katar','4','20','10','1300','130','0','0','1','2','4096','63','2','34','3','70',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,5*((BaseLevel-70)/10); }','',''); -REPLACE INTO `item_db` VALUES ('28008','Katar_of_Vicious_Mind','Katar of Vicious Mind','4','20','10','1800','180','0','0','1','1','4096','63','2','34','4','160',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2);','',''); +REPLACE INTO `item_db` VALUES ('28007','Scarlet_Katar','Crimson Katar','4','20','10','1300','130','0','0','1','2','4096','63','2','34','3','70',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,5*((BaseLevel-70)/10); }','',''); +REPLACE INTO `item_db` VALUES ('28008','Katar_of_Vicious_Mind','Katar of Vicious Mind','4','20','10','1800','180','0','0','1','1','4096','63','2','34','4','160',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2));','',''); REPLACE INTO `item_db` VALUES ('28010','Juliette_de_Rachel','Juliette de Rachel','4','20','10','2500','300','0','0','1','2','4096','56','2','34','4','170',NULL,'1','0','16','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkRate,getrefine()/2; bonus bAspdRate,getrefine(); bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('28100','Thanos_Axe','Thanatos Axe','4','20','10','4000','300','80','0','1','1','279714','56','2','34','4','120',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus2 bSPDrainRate,10,5; bonus2 bHPDrainRate,10,5; bonus2 bHPLossRate,100,10000;','','heal -1000,0;'); REPLACE INTO `item_db` VALUES ('28101','Tornado_Axe','Axe Tornado','4','500','250','4000','320','0','0','1','1','279714','56','2','34','4','100',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Wind; bonus2 bSkillCooldown,NC_AXETORNADO,-1000;','',''); REPLACE INTO `item_db` VALUES ('28105','Infinity_Two_handed_Axe','Infinity Two-handed Axe','4','20','10','500','265','0','0','1','1','279714','56','2','34','4','100',NULL,'1','0','7','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('28106','Scarlet_Twohand_Axe','Crimson Two-handed Axe','4','20','10','2000','200','0','0','1','2','279714','63','2','34','3','70',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,pow(min(getrefine(),15),2); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('28107','Two_Handed_Axe_of_Vicious_Mind','Two-Handed Axe of Vicious Mind','4','20','10','2500','250','0','0','1','1','279714','63','2','34','4','160',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon,0;','',''); +REPLACE INTO `item_db` VALUES ('28106','Scarlet_Twohand_Axe','Crimson Two-handed Axe','4','20','10','2000','200','0','0','1','2','279714','63','2','34','3','70',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,((min(getrefine(),15)) ** (2)); if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('28107','Two_Handed_Axe_of_Vicious_Mind','Two-Handed Axe of Vicious Mind','4','20','10','2500','250','0','0','1','1','279714','63','2','34','4','160',NULL,'1','0','7','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('28200','END_OF_HORIZON','End Of The Horizon','4','2700000','1350000','2400','410','0','0','9','1','1073741824','63','2','34','4','110',NULL,'1','0','21','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('28201','Southern_Cross_R','Southern Cross','4','2800000','1400000','2000','480','0','0','9','0','1073741824','63','2','34','4','141',NULL,'1','0','21','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,GC_CROSSIMPACT,1,50;','',''); REPLACE INTO `item_db` VALUES ('28202','Southern_Cross_R_','Southern Cross','4','2800000','1400000','2000','480','0','0','9','1','1073741824','63','2','34','4','141',NULL,'1','0','21','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,GC_CROSSIMPACT,1,50;','',''); @@ -10090,12 +10090,12 @@ REPLACE INTO `item_db` VALUES ('28421','Greater_Rabbit_Talisman','Greater Rabbit REPLACE INTO `item_db` VALUES ('28422','Shiny_Branch_Talisman','Shiny Branch Talisman','4','0','0','100','0','0','1','0','1','0','63','2','136','0','100',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bVariableCastrate,SU_SV_STEMSPEAR,-50; bonus2 bSkillAtk,SU_SV_STEMSPEAR,(readparam(bInt)/2)+(20 * getskilllv(SU_SV_STEMSPEAR)); //Need to confirm damage formula','',''); REPLACE INTO `item_db` VALUES ('28423','Fresh_Tuna_Talisman','Fresh Tuna Talisman','4','0','0','100','0','0','1','0','1','0','63','2','136','0','100',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillCooldown,SU_TUNAPARTY,-5000; bonus3 bAutoSpellWhenHit,SU_TUNAPARTY,max(1,getskilllv(SU_TUNAPARTY)),10;','',''); REPLACE INTO `item_db` VALUES ('28424','Chubby_Worm_Talisman','Chubby Worm Talisman','4','0','0','100','0','0','1','0','1','0','63','2','136','0','100',NULL,'0','0','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bVariableCastrate,SU_PICKYPECK,-50; bonus2 bSkillAtk,SU_PICKYPECK,(readparam(bDex)/2)+(20 * getskilllv(SU_PICKYPECK)); //Need to confirm damage formula','',''); -REPLACE INTO `item_db` VALUES ('28604','Scarlet_Bible','Crimson Bible','4','20','10','450','45','0','0','1','2','4260096','63','2','2','3','70',NULL,'1','0','15','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('28605','Book_of_Vicious_Mind','Book of Vicious Mind','4','20','10','950','95','0','0','1','1','4260096','63','2','2','4','160',NULL,'1','0','15','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon,0;','',''); +REPLACE INTO `item_db` VALUES ('28604','Scarlet_Bible','Crimson Bible','4','20','10','450','45','0','0','1','2','4260096','63','2','2','3','70',NULL,'1','0','15','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('28605','Book_of_Vicious_Mind','Book of Vicious Mind','4','20','10','950','95','0','0','1','1','4260096','63','2','2','4','160',NULL,'1','0','15','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2)); bonus bUnbreakableWeapon,0;','',''); REPLACE INTO `item_db` VALUES ('28703','Infinity_Dagger','Infinity Dagger','4','20','10','500','125','100','0','1','1','579821295','63','2','2','4','100',NULL,'1','0','1','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','','',''); REPLACE INTO `item_db` VALUES ('28704','Twilight_Desert_','Desert Twilight','4','20','10','600','130','0','0','1','4','4096','58','2','2','2','70',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','',''); -REPLACE INTO `item_db` VALUES ('28705','Scarlet_Dagger','Crimson Dagger','4','20','10','550','55','0','0','1','2','579821295','63','2','2','3','70',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); -REPLACE INTO `item_db` VALUES ('28706','Dagger_of_Vicious_Mind','Dagger of Vicious Mind','4','20','10','1050','105','50','0','1','1','579821295','63','2','2','4','160',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2;','',''); +REPLACE INTO `item_db` VALUES ('28705','Scarlet_Dagger','Crimson Dagger','4','20','10','550','55','0','0','1','2','579821295','63','2','2','3','70',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2; if(BaseLevel>70) { bonus bAtk,(((BaseLevel-70)/10)*5); }','',''); +REPLACE INTO `item_db` VALUES ('28706','Dagger_of_Vicious_Mind','Dagger of Vicious Mind','4','20','10','1050','105','50','0','1','1','579821295','63','2','2','4','160',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtk,((min(getrefine(),15)) ** (2)); bonus bMatk,((min(getrefine(),15)) ** (2))/2;','',''); REPLACE INTO `item_db` VALUES ('28900','Praetorian_Shield','Praetorian Shield','5','20','10','3000','0','0','30','0','1','18446744073709551615','63','2','32','0','100',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill LG_SHIELDSPELL,1; bonus3 bAutoSpellWhenHit,HP_ASSUMPTIO,3,20+(getrefine()); bonus bDef,getrefine()*10; bonus bMdef,getrefine();','',''); REPLACE INTO `item_db` VALUES ('28901','Cursed_Mad_Bunny','Cursed Mad Bunny','5','0','0','100','0','0','0','0','0','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspd,3; bonus bAtkRate,5; bonus bMatkRate,5; bonus bShortWeaponDamageReturn,10; autobonus \"{ bonus bMagicDamageReturn,60; }\",100,2000,BF_MAGIC,\"{ specialeffect2 EF_NONE; }\"; if(getrefine()>6) { bonus bAtk,5; bonus bMatk,5; } if(getrefine()>8) { bonus bAtk,10; bonus bMatk,10; } if(getrefine()>11) { bonus bNoCastCancel,0; bonus bCritical,10; }','',''); REPLACE INTO `item_db` VALUES ('28902','Mad_Bunny_','Mad Bunny','5','0','0','100','0','0','0','0','1','18446744073709551615','63','2','32','0','0',NULL,'1','0','1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkRate,5; bonus bMatkRate,5; bonus bShortWeaponDamageReturn,10; autobonus \"{ bonus bMagicDamageReturn,60; }\",100,2000,BF_MAGIC,\"{ specialeffect2 EF_NONE; }\"; if(getrefine()>6) { bonus bAtk,5; bonus bMatk,5; } if(getrefine()>8) { bonus bAtk,10; bonus bMatk,10; } if(getrefine()>11) { bonus bNoCastCancel,0; bonus bCritical,10; }','',''); diff --git a/src/char/char.c b/src/char/char.c index 487bec763..f6556073e 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -288,16 +288,12 @@ void char_set_char_offline(int char_id, int account_id) else { struct mmo_charstatus* cp = (struct mmo_charstatus*) idb_get(chr->char_db_,char_id); - struct storage_data *stor = (struct storage_data *) idb_get(inter_storage->account_storage, account_id); inter_guild->CharOffline(char_id, cp?cp->guild_id:-1); if (cp) idb_remove(chr->char_db_,char_id); - if (stor) /* Remove inter-storage data. */ - idb_remove(inter_storage->account_storage, account_id); - if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online`='0' WHERE `char_id`='%d' LIMIT 1", char_db, char_id) ) Sql_ShowDebug(inter->sql_handle); } diff --git a/src/char/int_storage.c b/src/char/int_storage.c index 5f005005e..65301127f 100644 --- a/src/char/int_storage.c +++ b/src/char/int_storage.c @@ -41,31 +41,33 @@ struct inter_storage_interface inter_storage_s; struct inter_storage_interface *inter_storage; /// Save storage data to sql -int inter_storage_tosql(int account_id, struct storage_data *cp, const struct storage_data *p) +int inter_storage_tosql(int account_id, const struct storage_data *p) { int i = 0, j = 0; - bool updated_p[MAX_STORAGE] = { false }; + bool matched_p[MAX_STORAGE] = { false }; int delete[MAX_STORAGE] = { 0 }; int total_deletes = 0, total_updates = 0, total_inserts = 0; int total_changes = 0; + struct storage_data cp = { 0 }; StringBuf buf; - nullpo_ret(cp); nullpo_ret(p); + VECTOR_INIT(cp.item); + inter_storage->fromsql(account_id, &cp); + StrBuf->Init(&buf); - - if (VECTOR_LENGTH(cp->item) > 0) { + if (VECTOR_LENGTH(cp.item) > 0) { /** * Compare and update items, if any. */ - for (i = 0; i < VECTOR_LENGTH(cp->item); i++) { - struct item *cp_it = &VECTOR_INDEX(cp->item, i); + for (i = 0; i < VECTOR_LENGTH(cp.item); i++) { + struct item *cp_it = &VECTOR_INDEX(cp.item, i); struct item *p_it = NULL; ARR_FIND(0, VECTOR_LENGTH(p->item), j, - updated_p[j] != true + matched_p[j] != true && (p_it = &VECTOR_INDEX(p->item, j)) != NULL && cp_it->nameid == p_it->nameid && cp_it->unique_id == p_it->unique_id @@ -84,17 +86,17 @@ int inter_storage_tosql(int account_id, struct storage_data *cp, const struct st StrBuf->AppendStr(&buf, ", `expire_time`, `bound`, `unique_id`) VALUES"); } - StrBuf->Printf(&buf, "('%d', '%d', '%d', '%d', '%u', '%d', '%d', '%d'", - cp_it->id, account_id, p_it->nameid, p_it->amount, p_it->equip, p_it->identify, p_it->refine, p_it->attribute); + StrBuf->Printf(&buf, "%s('%d', '%d', '%d', '%d', '%u', '%d', '%d', '%d'", + total_updates > 0 ? ", " : "", cp_it->id, account_id, p_it->nameid, p_it->amount, p_it->equip, p_it->identify, p_it->refine, p_it->attribute); for (k = 0; k < MAX_SLOTS; k++) StrBuf->Printf(&buf, ", '%d'", p_it->card[k]); for (k = 0; k < MAX_ITEM_OPTIONS; ++k) StrBuf->Printf(&buf, ", '%d', '%d'", p_it->option[k].index, p_it->option[k].value); - StrBuf->Printf(&buf, ", '%u', '%d', '%"PRIu64"')%s", p_it->expire_time, p_it->bound, p_it->unique_id, total_updates > 0 ? ", " : ""); + StrBuf->Printf(&buf, ", '%u', '%d', '%"PRIu64"')", p_it->expire_time, p_it->bound, p_it->unique_id); total_updates++; - updated_p[j] = true; } + matched_p[j] = true; } else { // Does not exist, so set for deletion. delete[total_deletes++] = cp_it->id; } @@ -125,7 +127,7 @@ int inter_storage_tosql(int account_id, struct storage_data *cp, const struct st for (i = 0; i < VECTOR_LENGTH(p->item); i++) { struct item *p_it = &VECTOR_INDEX(p->item, i); - if (p_it->id != 0) + if (matched_p[i]) continue; // Item is not a new entry, so lets continue. // Store the remaining items. @@ -140,8 +142,8 @@ int inter_storage_tosql(int account_id, struct storage_data *cp, const struct st } StrBuf->Printf(&buf, "%s('%d', '%d', '%d', '%u', '%d', '%d', '%d', '%u', '%d', '%"PRIu64"'", - total_inserts > 0 ? ", " : "", account_id, p_it->nameid, p_it->amount, p_it->equip, p_it->identify, p_it->refine, - p_it->attribute, p_it->expire_time, p_it->bound, p_it->unique_id); + total_inserts > 0 ? ", " : "", account_id, p_it->nameid, p_it->amount, p_it->equip, p_it->identify, p_it->refine, + p_it->attribute, p_it->expire_time, p_it->bound, p_it->unique_id); for (j = 0; j < MAX_SLOTS; ++j) StrBuf->Printf(&buf, ", '%d'", p_it->card[j]); for (j = 0; j < MAX_ITEM_OPTIONS; ++j) @@ -155,15 +157,10 @@ int inter_storage_tosql(int account_id, struct storage_data *cp, const struct st Sql_ShowDebug(inter->sql_handle); StrBuf->Destroy(&buf); - - /* re-sync loaded data with current table data. */ - VECTOR_CLEAR(cp->item); - inter_storage->fromsql(account_id, cp); + VECTOR_CLEAR(cp.item); total_changes = total_inserts + total_updates + total_deletes; - ShowInfo("storage save complete - id: %d (total: %d)\n", account_id, total_changes); - return total_changes; } @@ -305,49 +302,15 @@ int inter_storage_guild_storage_fromsql(int guild_id, struct guild_storage* p) return 0; } -/** - * Ensures storage data entity for a character. - * @see DBCreateData - */ -static struct DBData inter_storage_ensure_account_storage(union DBKey key, va_list args) -{ - struct storage_data *stor = NULL; - - CREATE(stor, struct storage_data, 1); - - stor->save = false; - stor->aggregate = 0; - - VECTOR_INIT(stor->item); - - return DB->ptr2data(stor); -} - -/** - * Cleaning function called through db_destroy() for vectors in storage_data. - */ -int inter_storage_clear_account_storage(union DBKey key, struct DBData *data, va_list args) -{ - struct storage_data *stor = DB->data2ptr(data); - - VECTOR_CLEAR(stor->item); - - return 0; -} - //--------------------------------------------------------- // storage data initialize int inter_storage_sql_init(void) { - inter_storage->account_storage = idb_alloc(DB_OPT_RELEASE_DATA); - return 1; } // storage data finalize void inter_storage_sql_final(void) { - inter_storage->account_storage->destroy(inter_storage->account_storage, inter_storage->clear_account_storage); - return; } @@ -435,14 +398,13 @@ int mapif_parse_AccountStorageLoad(int fd) */ int mapif_account_storage_load(int fd, int account_id) { - struct storage_data *stor = NULL; + struct storage_data stor = { 0 }; int count = 0, i = 0, len = 0; Assert_ret(account_id > 0); - stor = (struct storage_data *) idb_ensure(inter_storage->account_storage, account_id, inter_storage->ensure_account_storage); - - count = inter_storage->fromsql(account_id, stor); + VECTOR_INIT(stor.item); + count = inter_storage->fromsql(account_id, &stor); len = 8 + count * sizeof(struct item); @@ -451,9 +413,11 @@ int mapif_account_storage_load(int fd, int account_id) WFIFOW(fd, 2) = (uint16) len; WFIFOL(fd, 4) = account_id; for (i = 0; i < count; i++) - memcpy(WFIFOP(fd, 8 + i * sizeof(struct item)), &VECTOR_INDEX(stor->item, i), sizeof(struct item)); + memcpy(WFIFOP(fd, 8 + i * sizeof(struct item)), &VECTOR_INDEX(stor.item, i), sizeof(struct item)); WFIFOSET(fd, len); + VECTOR_CLEAR(stor.item); + return 1; } @@ -467,13 +431,11 @@ int mapif_parse_AccountStorageSave(int fd) { int payload_size = RFIFOW(fd, 2) - 8, account_id = RFIFOL(fd, 4); int i = 0, count = 0; - struct storage_data *cp_stor = NULL, p_stor = { 0 }; + struct storage_data p_stor = { 0 }; Assert_ret(fd > 0); Assert_ret(account_id > 0); - cp_stor = (struct storage_data *) idb_ensure(inter_storage->account_storage, account_id, inter_storage->ensure_account_storage); - count = payload_size/sizeof(struct item); VECTOR_INIT(p_stor.item); @@ -490,7 +452,7 @@ int mapif_parse_AccountStorageSave(int fd) p_stor.aggregate = count; } - inter_storage->tosql(account_id, cp_stor, &p_stor); + inter_storage->tosql(account_id, &p_stor); VECTOR_CLEAR(p_stor.item); @@ -783,8 +745,6 @@ void inter_storage_defaults(void) { inter_storage = &inter_storage_s; - inter_storage->ensure_account_storage = inter_storage_ensure_account_storage; - inter_storage->clear_account_storage = inter_storage_clear_account_storage; inter_storage->tosql = inter_storage_tosql; inter_storage->fromsql = inter_storage_fromsql; inter_storage->guild_storage_tosql = inter_storage_guild_storage_tosql; diff --git a/src/char/int_storage.h b/src/char/int_storage.h index 1f6c03f13..46bb6910f 100644 --- a/src/char/int_storage.h +++ b/src/char/int_storage.h @@ -31,13 +31,7 @@ struct guild_storage; * inter_storage interface **/ struct inter_storage_interface { - /* */ - struct DBMap *account_storage; - /* */ - /* */ - struct DBData (*ensure_account_storage) (union DBKey key, va_list args); - int (*clear_account_storage) (union DBKey key, struct DBData *data, va_list args); - int (*tosql) (int account_id, struct storage_data *cp, const struct storage_data *p); + int (*tosql) (int account_id, const struct storage_data *p); int (*fromsql) (int account_id, struct storage_data *p); int (*guild_storage_tosql) (int guild_id, const struct guild_storage *p); int (*guild_storage_fromsql) (int guild_id, struct guild_storage* p); diff --git a/src/map/script.c b/src/map/script.c index 1f3c2801f..ecb053fdc 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -136,6 +136,7 @@ const char* script_op2name(int op) { RETURN_OP_NAME(C_ADD); RETURN_OP_NAME(C_SUB); RETURN_OP_NAME(C_MUL); + RETURN_OP_NAME(C_POW); RETURN_OP_NAME(C_DIV); RETURN_OP_NAME(C_MOD); RETURN_OP_NAME(C_NEG); @@ -1035,6 +1036,7 @@ const char* parse_variable(const char* p) || ( p[0] == '|' && p[1] == '=' && (type = C_OR, true) ) // |= || ( p[0] == '&' && p[1] == '=' && (type = C_AND, true) ) // &= || ( p[0] == '*' && p[1] == '=' && (type = C_MUL, true) ) // *= + || ( p[0] == '*' && p[1] == '*' && p[2] == '=' && (type = C_POW, true) ) // **= || ( p[0] == '/' && p[1] == '=' && (type = C_DIV, true) ) // /= || ( p[0] == '%' && p[1] == '=' && (type = C_MOD, true) ) // %= || ( p[0] == '+' && p[1] == '+' && (type = C_ADD_POST, true) ) // post ++ @@ -1058,6 +1060,7 @@ const char* parse_variable(const char* p) case C_L_SHIFT: // <<= case C_R_SHIFT: // >>= + case C_POW: // **= p = script->skip_space( &p[3] ); break; @@ -1424,6 +1427,7 @@ const char* script_parse_subexpr(const char* p,int limit) (op=C_OP3, opl=0, len=1,*p=='?') // ?: || (op=C_ADD, opl=9, len=1,*p=='+') // + || (op=C_SUB, opl=9, len=1,*p=='-') // - + || (op=C_POW, opl=11,len=2,*p=='*' && p[1]=='*') // ** || (op=C_MUL, opl=10,len=1,*p=='*') // * || (op=C_DIV, opl=10,len=1,*p=='/') // / || (op=C_MOD, opl=10,len=1,*p=='%') // % @@ -4146,6 +4150,7 @@ void op_2num(struct script_state* st, int op, int i1, int i2) case C_ADD: ret = i1 + i2; ret64 = (int64)i1 + i2; break; case C_SUB: ret = i1 - i2; ret64 = (int64)i1 - i2; break; case C_MUL: ret = i1 * i2; ret64 = (int64)i1 * i2; break; + case C_POW: ret = (int)pow((double)i1, (double)i2); ret64 = (int64)pow((double)i1, (double)i2); break; default: ShowError("script:op_2num: unexpected number operator %s i1=%d i2=%d\n", script->op2name(op), i1, i2); script->reportsrc(st); @@ -4683,6 +4688,7 @@ void run_script_main(struct script_state *st) { case C_ADD: case C_SUB: case C_MUL: + case C_POW: case C_DIV: case C_MOD: case C_EQ: @@ -23598,7 +23604,7 @@ void script_parse_builtin(void) { // List of mathematics commands ---> BUILDIN_DEF(log10,"i"), BUILDIN_DEF(sqrt,"i"), //[zBuffer] - BUILDIN_DEF(pow,"ii"), //[zBuffer] + BUILDIN_DEF_DEPRECATED(pow,"ii"), //[zBuffer] BUILDIN_DEF(distance,"iiii"), //[zBuffer] // <--- List of mathematics commands BUILDIN_DEF(min, "i*"), diff --git a/src/map/script.h b/src/map/script.h index 8caec961a..fddcf4908 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -235,6 +235,7 @@ typedef enum c_op { C_SUB_PRE, // --a C_RE_EQ, // ~= C_RE_NE, // ~! + C_POW, // ** } c_op; /// Script queue options diff --git a/src/map/storage.c b/src/map/storage.c index 4aefaae96..01e7c7c27 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -200,6 +200,8 @@ int storage_additem(struct map_session_data* sd, struct item* item_data, int amo clif->storageitemadded(sd, it, i, amount); + sd->storage.save = true; // set a save flag. + return 0; } } @@ -220,6 +222,8 @@ int storage_additem(struct map_session_data* sd, struct item* item_data, int amo *it = *item_data; } + it->amount = amount; + sd->storage.aggregate++; clif->storageitemadded(sd, it, i, amount); diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc index 65c7f23b1..1a2e7a2d5 100644 --- a/src/plugins/HPMHooking/HPMHooking.Defs.inc +++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc @@ -2962,12 +2962,8 @@ typedef int (*HPMHOOK_pre_inter_quest_parse_frommap) (int *fd); typedef int (*HPMHOOK_post_inter_quest_parse_frommap) (int retVal___, int fd); #endif // CHAR_INT_QUEST_H #ifdef CHAR_INT_STORAGE_H /* inter_storage */ -typedef struct DBData (*HPMHOOK_pre_inter_storage_ensure_account_storage) (union DBKey *key, va_list args); -typedef struct DBData (*HPMHOOK_post_inter_storage_ensure_account_storage) (struct DBData retVal___, union DBKey key, va_list args); -typedef int (*HPMHOOK_pre_inter_storage_clear_account_storage) (union DBKey *key, struct DBData **data, va_list args); -typedef int (*HPMHOOK_post_inter_storage_clear_account_storage) (int retVal___, union DBKey key, struct DBData *data, va_list args); -typedef int (*HPMHOOK_pre_inter_storage_tosql) (int *account_id, struct storage_data **cp, const struct storage_data **p); -typedef int (*HPMHOOK_post_inter_storage_tosql) (int retVal___, int account_id, struct storage_data *cp, const struct storage_data *p); +typedef int (*HPMHOOK_pre_inter_storage_tosql) (int *account_id, const struct storage_data **p); +typedef int (*HPMHOOK_post_inter_storage_tosql) (int retVal___, int account_id, const struct storage_data *p); typedef int (*HPMHOOK_pre_inter_storage_fromsql) (int *account_id, struct storage_data **p); typedef int (*HPMHOOK_post_inter_storage_fromsql) (int retVal___, int account_id, struct storage_data *p); typedef int (*HPMHOOK_pre_inter_storage_guild_storage_tosql) (int *guild_id, const struct guild_storage **p); diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc index 5e449a4d1..21e136c2f 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc @@ -624,10 +624,6 @@ struct { struct HPMHookPoint *HP_inter_pet_parse_frommap_post; struct HPMHookPoint *HP_inter_quest_parse_frommap_pre; struct HPMHookPoint *HP_inter_quest_parse_frommap_post; - struct HPMHookPoint *HP_inter_storage_ensure_account_storage_pre; - struct HPMHookPoint *HP_inter_storage_ensure_account_storage_post; - struct HPMHookPoint *HP_inter_storage_clear_account_storage_pre; - struct HPMHookPoint *HP_inter_storage_clear_account_storage_post; struct HPMHookPoint *HP_inter_storage_tosql_pre; struct HPMHookPoint *HP_inter_storage_tosql_post; struct HPMHookPoint *HP_inter_storage_fromsql_pre; @@ -2113,10 +2109,6 @@ struct { int HP_inter_pet_parse_frommap_post; int HP_inter_quest_parse_frommap_pre; int HP_inter_quest_parse_frommap_post; - int HP_inter_storage_ensure_account_storage_pre; - int HP_inter_storage_ensure_account_storage_post; - int HP_inter_storage_clear_account_storage_pre; - int HP_inter_storage_clear_account_storage_post; int HP_inter_storage_tosql_pre; int HP_inter_storage_tosql_post; int HP_inter_storage_fromsql_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc index 9b07bdccd..639cdbdd2 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc @@ -344,8 +344,6 @@ struct HookingPointData HookingPoints[] = { /* inter_quest_interface */ { HP_POP(inter_quest->parse_frommap, HP_inter_quest_parse_frommap) }, /* inter_storage_interface */ - { HP_POP(inter_storage->ensure_account_storage, HP_inter_storage_ensure_account_storage) }, - { HP_POP(inter_storage->clear_account_storage, HP_inter_storage_clear_account_storage) }, { HP_POP(inter_storage->tosql, HP_inter_storage_tosql) }, { HP_POP(inter_storage->fromsql, HP_inter_storage_fromsql) }, { HP_POP(inter_storage->guild_storage_tosql, HP_inter_storage_guild_storage_tosql) }, diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc index 656fd8e07..96e068903 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc @@ -8032,81 +8032,15 @@ int HP_inter_quest_parse_frommap(int fd) { return retVal___; } /* inter_storage_interface */ -struct DBData HP_inter_storage_ensure_account_storage(union DBKey key, va_list args) { - int hIndex = 0; - struct DBData retVal___ = { 0 }; - if (HPMHooks.count.HP_inter_storage_ensure_account_storage_pre > 0) { - struct DBData (*preHookFunc) (union DBKey *key, va_list args); - *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_ensure_account_storage_pre; hIndex++) { - va_list args___copy; va_copy(args___copy, args); - preHookFunc = HPMHooks.list.HP_inter_storage_ensure_account_storage_pre[hIndex].func; - retVal___ = preHookFunc(&key, args___copy); - va_end(args___copy); - } - if (*HPMforce_return) { - *HPMforce_return = false; - return retVal___; - } - } - { - va_list args___copy; va_copy(args___copy, args); - retVal___ = HPMHooks.source.inter_storage.ensure_account_storage(key, args___copy); - va_end(args___copy); - } - if (HPMHooks.count.HP_inter_storage_ensure_account_storage_post > 0) { - struct DBData (*postHookFunc) (struct DBData retVal___, union DBKey key, va_list args); - for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_ensure_account_storage_post; hIndex++) { - va_list args___copy; va_copy(args___copy, args); - postHookFunc = HPMHooks.list.HP_inter_storage_ensure_account_storage_post[hIndex].func; - retVal___ = postHookFunc(retVal___, key, args___copy); - va_end(args___copy); - } - } - return retVal___; -} -int HP_inter_storage_clear_account_storage(union DBKey key, struct DBData *data, va_list args) { - int hIndex = 0; - int retVal___ = 0; - if (HPMHooks.count.HP_inter_storage_clear_account_storage_pre > 0) { - int (*preHookFunc) (union DBKey *key, struct DBData **data, va_list args); - *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_clear_account_storage_pre; hIndex++) { - va_list args___copy; va_copy(args___copy, args); - preHookFunc = HPMHooks.list.HP_inter_storage_clear_account_storage_pre[hIndex].func; - retVal___ = preHookFunc(&key, &data, args___copy); - va_end(args___copy); - } - if (*HPMforce_return) { - *HPMforce_return = false; - return retVal___; - } - } - { - va_list args___copy; va_copy(args___copy, args); - retVal___ = HPMHooks.source.inter_storage.clear_account_storage(key, data, args___copy); - va_end(args___copy); - } - if (HPMHooks.count.HP_inter_storage_clear_account_storage_post > 0) { - int (*postHookFunc) (int retVal___, union DBKey key, struct DBData *data, va_list args); - for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_clear_account_storage_post; hIndex++) { - va_list args___copy; va_copy(args___copy, args); - postHookFunc = HPMHooks.list.HP_inter_storage_clear_account_storage_post[hIndex].func; - retVal___ = postHookFunc(retVal___, key, data, args___copy); - va_end(args___copy); - } - } - return retVal___; -} -int HP_inter_storage_tosql(int account_id, struct storage_data *cp, const struct storage_data *p) { +int HP_inter_storage_tosql(int account_id, const struct storage_data *p) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_inter_storage_tosql_pre > 0) { - int (*preHookFunc) (int *account_id, struct storage_data **cp, const struct storage_data **p); + int (*preHookFunc) (int *account_id, const struct storage_data **p); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_tosql_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_inter_storage_tosql_pre[hIndex].func; - retVal___ = preHookFunc(&account_id, &cp, &p); + retVal___ = preHookFunc(&account_id, &p); } if (*HPMforce_return) { *HPMforce_return = false; @@ -8114,13 +8048,13 @@ int HP_inter_storage_tosql(int account_id, struct storage_data *cp, const struct } } { - retVal___ = HPMHooks.source.inter_storage.tosql(account_id, cp, p); + retVal___ = HPMHooks.source.inter_storage.tosql(account_id, p); } if (HPMHooks.count.HP_inter_storage_tosql_post > 0) { - int (*postHookFunc) (int retVal___, int account_id, struct storage_data *cp, const struct storage_data *p); + int (*postHookFunc) (int retVal___, int account_id, const struct storage_data *p); for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_tosql_post; hIndex++) { postHookFunc = HPMHooks.list.HP_inter_storage_tosql_post[hIndex].func; - retVal___ = postHookFunc(retVal___, account_id, cp, p); + retVal___ = postHookFunc(retVal___, account_id, p); } } return retVal___; |