Exemplo n.º 1
0
    def test_CowKings_boots(self):
        item = SetItem("vbt ", 0x77)

        item.addPropGroup("basicdefense")
        item.addPropGroup("mf")

        # aura when equipped (151), Vigor(115), level (+31)
        item.addProp(151, 115, 0xFF)

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 00 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]cowkings_boots.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 2
0
    def test_TrangOuls_gloves(self):
        item = SetItem("xmg ", 0x58)

        item.addPropGroup("mf")
        item.addProp(105)  # x% Faster Cast Rate
        item.addProp(229)  # +%d Poison Damage (Based on Character Level)
        item.addProp(332)  # +%d to Poison Skill Damage

        # set item prop slot MUST follow game setting strictly!!!

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 00 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]trangouls_gloves.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 3
0
    def test_TrangOuls_trophy(self):
        item = SetItem("ne9 ", 0x57)

        item.addProp(20)  # x% Increased Chance of Blocking
        item.addProp(102)  # +d% Faster Block Rate
        item.addProp(188, 17, 0xff)  #Skills set X (17-NEC/PosionAndBone) +%d

        # set item prop slot MUST follow game setting strictly!!!
        item.addSetProp(1, 336)  # x% to Enemy Poison Resistance
        # aura when equipped (151), Thorns (103), level (+31)
        item.addSetProp(2, 151, 103, 0xFF)

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]trangouls_trophy.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 4
0
    def test_TrangOuls_armor(self):
        item = SetItem("xul ", 0x56)

        # item.addPropGroup("characteristic")
        item.addPropGroup("basicdefense")
        # item.addPropGroup("mf")
        # cast level X "Poison Nova(92)" chance Y on struck"
        item.addProp(201, 0xFFFF, 92, 0xFFFF)
        # aura when equipped (151), Holy Fire(102), level (+31)
        item.addProp(151, 102, 0xFF)

        # set item prop slot MUST follow game setting strictly!!!
        item.addSetProp(1, 39)
        item.addSetProp(1, 41)
        item.addSetProp(1, 43)
        item.addSetProp(1, 45)

        item.addSetProp(3, 36)  # Damage Reduced by x%

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]trangouls_armor.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 5
0
    def test_TrangOuls_helm(self):
        item = SetItem("uh9 ", 0x55)

        item.addProp(78)  # Attacker Takes Damage of %d
        item.addProp(99)  # Faster Hit Recovery x%
        # aura when equipped (151), Holy Shock(118), level (+31)
        item.addProp(151, 118, 0xFF)
        # cast level X "Static Field (42)" chance Y on striking"
        item.addProp(198, 0xffff, 42, 0xffff)
        item.addProp(330)  # +%d to Lightning Skill Damage
        item.addProp(329)  # x% to Fire Skill Damage

        # set item prop slot MUST follow game setting strictly!!!

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 00 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]trangouls_helm.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 6
0
    def test_Natalya_boots(self):
        item = SetItem("xmb ", 0x41)

        item.addProp(67)  # Faster Run/Walk
        item.addProp(137)  # Kick Damage
        item.addProp(249)  # Kick Damage (Based on Character Level)
        item.addPropGroup("basicdefense")
        item.addPropGroup("mf")

        # aura when equipped (151), Vigor(115), level (+31)
        item.addProp(151, 115, 0xFF)

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 00 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]natalya_boots.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 7
0
    def test_Natalya_armor(self):
        item = SetItem("ucl ", 0x40)

        # item.addPropGroup("characteristic")
        item.addPropGroup("basicdefense")
        # item.addPropGroup("mf")
        # cast level X "Poison Nova(92)" chance Y on struck"
        item.addProp(201, 0xFFFF, 92, 0xFFFF)
        # aura when equipped (151), Holy Fire(102), level (+31)
        item.addProp(151, 102, 0xFF)
        item.addProp(329)  # x% to Fire Skill Damage
        item.addProp(332)  # +%d to Poison Skill Damage
        item.addProp(188, 49,
                     0xff)  #Skills set X (49-ASS/ShadowDiscipline) +%d

        item.addProp(39)
        item.addProp(41)
        item.addProp(43)
        item.addProp(45)
        # set item prop slot MUST follow game setting strictly!!!

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]natalya_armor.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 8
0
    def test_GriswoldsRedemption_scep(self):
        item = SetItem("7ws ", 0x53)
        item.addProp(91, 0)
        # requirment 0-100%

        item.addPropGroup("basicoffense")
        item.addProp(21)
        # +(6bits) min 1 hand dmg
        item.addProp(22)
        # +(7bits) max 1 hand dmg
        item.addProp(218)  #+%d to Maximum Damage (Based on Character Level)
        item.addProp(
            219)  #%d%% Enhanced Maximum Damage (Based on Character Level)
        item.addProp(135)  #%d%% Chance of Open Wounds
        item.addProp(136)  #%d%% Chance of Crushing Blow
        item.addProp(120, 0)  #%d(-128) to Monster Defense Per Hit

        # aura when equipped (151), Fanaticism (122), level (+31)
        item.addProp(151, 122, 0xFF)

        # cast level X "Frozen Orb(64)" chance Y on striking"
        item.addProp(198, 0xffff, 64, 0xffff)

        item.addSetProp(0, 188, 24, 0xff)  #Skills set X (24-PAL/Combat) +%d
        # item.addSetProp(0, 218) #+%d to Maximum Damage (Based on Character Level)
        # item.addSetProp(0, 219) #%d%% Enhanced Maximum Damage (Based on Character Level)

        # item.addSetProp(1, 218) #+%d to Maximum Damage (Based on Character Level)
        # item.addSetProp(1, 219) #%d%% Enhanced Maximum Damage (Based on Character Level)

        # item.addSetProp(2, 218) #+%d to Maximum Damage (Based on Character Level)
        # item.addSetProp(2, 219) #%d%% Enhanced Maximum Damage (Based on Character Level)

        item.writeStream(self.s)
        b = self.s.getByteList()
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(
                os.path.join(FILE_ROOT_DIR,
                             "[SetItem]griswolds_redemption_scep.d2i"),
                "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 9
0
    def test_GriswoldsValor_helm(self):
        item = SetItem("urn ", 0x51)

        item.addPropGroup("basicdefense")
        item.addPropGroup("mf")

        # cast level X "Static Field (42)" chance Y on striking"
        item.addProp(198, 0xffff, 42, 0xffff)

        item.addSetProp(0, 188, 25,
                        0xff)  #Skills set X (25-PAL/OffensiveAura) +%d
        # item.addSetProp(1, 214) #+%d to Defense (Based on Character Level)
        # item.addSetProp(1, 215) #%d%% Enhanced Defense (Based on Character Level)

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(
                os.path.join(FILE_ROOT_DIR,
                             "[SetItem]griswolds_valor_helm.d2i"), "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 10
0
    def test_CowKings_hat(self):
        item = SetItem("xap ", 0x75)

        item.addPropGroup("basicdefense")
        item.addPropGroup("mf")

        # aura when equipped (151), Holy Shock(118), level (+31)
        item.addProp(151, 118, 0xFF)
        # cast level X "Static Field (42)" chance Y on striking"
        item.addProp(198, 0xffff, 42, 0xffff)
        item.addProp(126, 2, 0xff)  # Lightning(2) Skills +x

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]cowkings_hat.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 11
0
    def test_CowKings_leather(self):
        item = SetItem("stu ", 0x76)

        item.addPropGroup("characteristic")
        item.addPropGroup("basicdefense")
        # item.addPropGroup("mf")
        # cast level X "Poison Nova(92)" chance Y on struck"
        item.addProp(201, 0xFFFF, 92, 0xFFFF)
        item.addProp(126, 3, 0xff)  # Poision(3) Skills +x
        # aura when equipped (151), Holy Fire(102), level (+31)
        item.addProp(151, 102, 0xFF)

        item.addProp(39)
        item.addProp(41)
        item.addProp(43)
        item.addProp(45)

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]cowkings_leather.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 12
0
    def test_CleglawsPincers_glove(self):
        item = SetItem("mgl ", 0x8)

        item.addPropGroup("mf")
        item.addProp(19)  #+d to Attack Rating
        item.addProp(119)  #+x% to Attack Rating
        item.addProp(150)  # Slows Target by x%

        item.addSetProp(0,
                        218)  #+%d to Maximum Damage (Based on Character Level)
        item.addSetProp(
            0, 219)  #%d%% Enhanced Maximum Damage (Based on Character Level)

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 00 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(
                os.path.join(FILE_ROOT_DIR,
                             "[SetItem]cleglaws_pincers_glove.d2i"),
                "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 13
0
    def test_CleglawsClaw_shield(self):
        item = SetItem("sml ", 0x7)

        # item.addPropGroup("basicdefense")
        item.addProp(16)
        item.addProp(31)
        item.addProp(214)
        item.addProp(215)

        item.addProp(78)  #Attacker Takes Damage of %d
        item.addProp(81)  #Knockback
        item.addProp(102)  #+d% Faster Block Rate

        # aura when equipped (151), Thorns (103), level (+31)
        item.addSetProp(0, 151, 103, 0xFF)
        # item.addSetProp(0, 188, 26, 0xff) #Skills set X (26-PAL/DefensiveAura) +%d

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(
                os.path.join(FILE_ROOT_DIR,
                             "[SetItem]cleglaws_claw_shield.d2i"), "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 14
0
    def test_CleglawsTooth_sword(self):
        item = SetItem("lsd ", 0x6)
        item.addProp(91, 0)
        # requirment 0-100%

        item.addPropGroup("basicoffense")
        item.addProp(21)
        # +(6bits) min 1 hand dmg
        item.addProp(22)
        # +(7bits) max 1 hand dmg

        # # aura when equipped (151), Fanaticism (122), level (+31)
        # item.addProp(151, 122, 0xFF)
        # aura when equipped (151), Holy Fire(102), level (+31)
        item.addProp(151, 102, 0xFF)

        # cast level X "Chain Lightning(53)" chance Y on striking"
        item.addProp(198, 0xffff, 53, 0xffff)

        item.addSetProp(0,
                        218)  #+%d to Maximum Damage (Based on Character Level)
        item.addSetProp(
            0, 219)  #%d%% Enhanced Maximum Damage (Based on Character Level)
        # item.addSetProp(0, 188, 24, 0xff) #Skills set X (24-PAL/Combat) +%d

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(
                os.path.join(FILE_ROOT_DIR,
                             "[SetItem]cleglaws_tooth_swor.d2i"), "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 15
0
    def test_Natalya_helm(self):
        item = SetItem("xh9 ", 0x3e)

        item.addProp(35)  # Magic Damage Reduced by %d
        # aura when equipped (151), Holy Shock(118), level (+31)
        item.addProp(151, 118, 0xFF)
        # cast level X "Static Field (42)" chance Y on striking"
        item.addProp(198, 0xffff, 42, 0xffff)
        item.addProp(330)  # +%d to Lightning Skill Damage

        # set item prop slot MUST follow game setting strictly!!!

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]natalya_helm.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 16
0
    def test_TrangOuls_belt(self):
        item = SetItem("utc ", 0x59)

        item.addProp(7)  # +d Life
        item.addProp(9)  # +d Mana
        item.addProp(11)  # +d Maximum Stamina
        item.addProp(74)  # Replenish Life +%d
        item.addProp(76)  # x% Max Life
        item.addProp(77)  # x% Max Mana
        # item.addPropGroup("mf")

        # set item prop slot MUST follow game setting strictly!!!
        item.addSetProp(1, 153)  # Cannot Be Frozen

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 00 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]trangouls_belt.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 17
0
    def test_Natalya_scissors(self):
        item = SetItem("7qr ", 0x3f)

        item.addPropGroup("basicoffense")
        item.addProp(21)
        # +(6bits) min 1 hand dmg
        item.addProp(22)
        # +(7bits) max 1 hand dmg
        item.addProp(218)  #+%d to Maximum Damage (Based on Character Level)
        item.addProp(
            219)  #%d%% Enhanced Maximum Damage (Based on Character Level)

        # cast level X "Chain Lightning(53)" chance Y on striking"
        item.addProp(198, 0xffff, 53, 0xffff)
        item.addProp(330)  # +%d to Lightning Skill Damage

        item.addProp(188, 50, 0xff)  #Skills set X (24-ASS/MartialArt) +%d

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(os.path.join(FILE_ROOT_DIR, "[SetItem]natalya_scissors.d2i"),
                  "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 18
0
    def test_GriswoldsHeart_plate(self):
        item = SetItem("xar ", 0x52)

        item.addPropGroup("characteristic")
        item.addPropGroup("basicdefense")
        # item.addPropGroup("mf")
        # cast level X "Poison Nova(92)" chance Y on struck"
        item.addProp(201, 0xFFFF, 92, 0xFFFF)

        item.addProp(39)
        item.addProp(41)
        item.addProp(43)
        item.addProp(45)
        item.addProp(188, 26, 0xff)  #Skills set X (25-PAL/DefensiveAura) +%d

        # whether there were set props depends on game config!!!
        # item.addSetProp(0, 188, 26, 0xff) #Skills set X (25-PAL/DefensiveAura) +%d
        # item.addSetProp(0, 214) #+%d to Defense (Based on Character Level)
        # item.addSetProp(0, 215) #%d%% Enhanced Defense (Based on Character Level)

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(
                os.path.join(FILE_ROOT_DIR,
                             "[SetItem]griswolds_heart_plate.d2i"), "wb") as f:
            self.s.writeBytes(f)
Exemplo n.º 19
0
    def test_GriswoldsHonor_shield(self):
        item = SetItem("paf ", 0x54)

        item.addPropGroup("basicdefense")
        item.addPropGroup("mf")
        item.addProp(20)  #+x% Increased Chance of Blocking
        item.addProp(102)  #+x% Faster Block Rate

        item.writeStream(self.s)
        self.assertEquals("4a 4d 10 08 c0 00 64",
                          self.s.toHexString()[:7 * 3 - 1])

        with open(
                os.path.join(FILE_ROOT_DIR,
                             "[SetItem]griswolds_honor_shield.d2i"),
                "wb") as f:
            self.s.writeBytes(f)