diff --git a/bot.go b/bot.go index ecfd36b..66056ba 100644 --- a/bot.go +++ b/bot.go @@ -235,7 +235,7 @@ func botMsgRescan(m *tb.Message) { } b, _ := json.Marshal(p) log.Printf("botMsgRescan : json : %s\n", string(b)) - _, err := createJob(objSubTypeJobRescanMsg, objJobPriorityRescanMsg, int64(m.Sender.ID), time.Now().UTC(), b) + _, err := createJob(objSubTypeJobRescanMsg, objJobPriorityRescanMsg, int64(m.Sender.ID), 0, time.Now().UTC(), b) logOnError(err, "botMsgRescan : createJob(objSubTypeJobRescanMsg)") if err != nil { c := TGCommand{ @@ -294,7 +294,7 @@ func botMsgRescanAll(m *tb.Message) { ChatID64: m.Chat.ID, } b, _ := json.Marshal(p) - _, err := createJob(objSubTypeJobRescanMsg, objJobPriorityRescanAllMsg, int64(m.Sender.ID), time.Now().UTC(), b) + _, err := createJob(objSubTypeJobRescanMsg, objJobPriorityRescanAllMsg, int64(m.Sender.ID), 0, time.Now().UTC(), b) logOnError(err, "botMsgRescan : createJob(objSubTypeJobRescanMsg)") if err != nil { @@ -349,7 +349,7 @@ func botBackupExport(m *tb.Message) { ChatID64: m.Chat.ID, } b, _ := json.Marshal(p) - _, err := createJob(objSubTypeJobBackupExport, objJobPriorityBackup, int64(m.Sender.ID), time.Now().UTC(), b) + _, err := createJob(objSubTypeJobBackupExport, objJobPriorityBackup, int64(m.Sender.ID), 0, time.Now().UTC(), b) logOnError(err, "botBackupExport : createJob(objSubTypeJobBackupExport)") return @@ -399,7 +399,7 @@ func botBackupImport(m *tb.Message) { ChatID64: m.Chat.ID, } b, _ := json.Marshal(p) - _, err := createJob(objSubTypeJobBackupImport, objJobPriorityBackup, int64(m.Sender.ID), time.Now().UTC(), b) + _, err := createJob(objSubTypeJobBackupImport, objJobPriorityBackup, int64(m.Sender.ID), 0, time.Now().UTC(), b) logOnError(err, "botBackupImport : createJob(objSubTypeJobBackupImport)") return @@ -575,7 +575,7 @@ func botGStock(m *tb.Message) { } b, _ := json.Marshal(p) t := time.Now().UTC().Add(1 * time.Second) - _, err := createJob(objSubTypeJobGStock, objJobPriority, int64(m.Chat.ID), t, b) + _, err := createJob(objSubTypeJobGStock, objJobPriority, int64(m.Chat.ID), 0, t, b) if err != nil { c := TGCommand{ @@ -607,6 +607,7 @@ func botGDepositAll(m *tb.Message) { MsgID64: int64(m.ID), ChatID64: m.Chat.ID, ResObjID64: nil, + Status: 0, } p.ResObjID64 = append(p.ResObjID64, getObjItemID(`02`, `Stick`)) @@ -616,7 +617,7 @@ func botGDepositAll(m *tb.Message) { b, _ := json.Marshal(p) t := time.Now().UTC() - _, err := createJob(objSubTypeJobGDeposit, objJobPriority, int64(m.Chat.ID), t, b) + _, err := createJob(objSubTypeJobGDeposit, objJobPriority, int64(m.Chat.ID), 0, t, b) if err != nil { c := TGCommand{ @@ -667,7 +668,7 @@ func botTimer(m *tb.Message) { } b, _ := json.Marshal(p) t := time.Now().UTC().Add(d) - objID64, err := createJob(objSubTypeJobMsgClient, objJobPriority, int64(m.Chat.ID), t, b) + objID64, err := createJob(objSubTypeJobMsgClient, objJobPriority, int64(m.Chat.ID), 0, t, b) logOnError(err, "botTimer : createJob") if err != nil { c := TGCommand{ diff --git a/def.go b/def.go index 1ee010c..4c671fe 100644 --- a/def.go +++ b/def.go @@ -81,6 +81,8 @@ type ChatWarsItem struct { Code string `json:"code"` Name string `json:"name"` Weight int `json:"weight"` + Exchange bool `json:"exchange"` + Auction bool `json:"auction"` } type ChatWarsItems struct { @@ -238,6 +240,7 @@ type JobPayloadGDeposit struct { MsgID64 int64 `json:"msg_id"` ChatID64 int64 `json:"chat_id"` ResObjID64 []int64 `json:"res_obj_id"` + Status int `json:"status"` } type JobPayloadSaveRes struct { diff --git a/items.go b/items.go index 37cbf93..2ecf723 100644 --- a/items.go +++ b/items.go @@ -4,11 +4,11 @@ import ( "log" ) -func reloadObjItem(code string, name string, itemTypeID64 int64, weight int) { +func reloadObjItem(code string, name string, itemTypeID64 int64, weight int, exchange bool, auction bool) { var objID64 int64 objID64 = getSilentObjItemID(code, ``) if objID64 == 0 { - id, err := addObjItem(code, name, itemTypeID64, weight) + id, err := addObjItem(code, name, itemTypeID64, weight, exchange, auction) objID64 = id logOnError(err, "reloadObjItem : addObjItem") } @@ -20,632 +20,635 @@ func reloadObjItem(code string, name string, itemTypeID64 int64, weight int) { c.Code = code c.Name = name c.Weight = weight + c.Exchange = exchange + c.Auction = auction muxObjItem.Lock() cacheObjItem[name] = *c muxObjItem.Unlock() } + } func resetObjItem() { log.Print("Reloading items") - reloadObjItem(`01`, `Thread`, objSubTypeItemResource, 1) - reloadObjItem(`02`, `Stick`, objSubTypeItemResource, 1) - reloadObjItem(`03`, `Pelt`, objSubTypeItemResource, 1) - reloadObjItem(`04`, `Bone`, objSubTypeItemResource, 1) - reloadObjItem(`05`, `Coal`, objSubTypeItemResource, 1) - reloadObjItem(`06`, `Charcoal`, objSubTypeItemResource, 1) - reloadObjItem(`07`, `Powder`, objSubTypeItemResource, 1) - reloadObjItem(`08`, `Iron Ore`, objSubTypeItemResource, 2) - reloadObjItem(`09`, `Cloth`, objSubTypeItemResource, 1) - reloadObjItem(`10`, `Silver Ore`, objSubTypeItemResource, 2) - reloadObjItem(`100`, `Pouch of Gold`, objSubTypeItemResource, 0) - reloadObjItem(`11`, `Bauxite`, objSubTypeItemResource, 2) - reloadObjItem(`12`, `Cord`, objSubTypeItemResource, 2) - reloadObjItem(`13`, `Magic Stone`, objSubTypeItemResource, 1) - reloadObjItem(`14`, `Wooden shaft`, objSubTypeItemResource, 2) - reloadObjItem(`15`, `Sapphire`, objSubTypeItemResource, 2) - reloadObjItem(`16`, `Solvent`, objSubTypeItemResource, 2) - reloadObjItem(`17`, `Ruby`, objSubTypeItemResource, 2) - reloadObjItem(`18`, `Hardener`, objSubTypeItemResource, 2) - reloadObjItem(`19`, `Steel`, objSubTypeItemResource, 2) - reloadObjItem(`20`, `Leather`, objSubTypeItemResource, 1) - reloadObjItem(`21`, `Bone Powder`, objSubTypeItemResource, 1) - reloadObjItem(`22`, `String`, objSubTypeItemResource, 1) - reloadObjItem(`23`, `Coke`, objSubTypeItemResource, 1) - reloadObjItem(`24`, `Purified Powder`, objSubTypeItemResource, 1) - reloadObjItem(`25`, `Silver Alloy`, objSubTypeItemResource, 3) - reloadObjItem(`27`, `Steel Mold`, objSubTypeItemResource, 2) - reloadObjItem(`28`, `Silver Mold`, objSubTypeItemResource, 2) - reloadObjItem(`29`, `Blacksmith Frame`, objSubTypeItemResource, 3) - reloadObjItem(`30`, `Artisan Frame`, objSubTypeItemResource, 3) - reloadObjItem(`31`, `Rope`, objSubTypeItemResource, 1) - reloadObjItem(`32`, `Silver Frame`, objSubTypeItemResource, 2) - reloadObjItem(`33`, `Metal Plate`, objSubTypeItemResource, 2) - reloadObjItem(`34`, `Metallic Fiber`, objSubTypeItemResource, 2) - reloadObjItem(`35`, `Crafted Leather`, objSubTypeItemResource, 1) - reloadObjItem(`36`, `Quality Cloth`, objSubTypeItemResource, 2) - reloadObjItem(`37`, `Blacksmith Mold`, objSubTypeItemResource, 3) - reloadObjItem(`38`, `Artisan Mold`, objSubTypeItemResource, 3) - reloadObjItem(`39`, `Stinky Sumac`, objSubTypeItemAlch, 1) - reloadObjItem(`40`, `Mercy Sassafras`, objSubTypeItemAlch, 1) - reloadObjItem(`41`, `Cliff Rue`, objSubTypeItemAlch, 1) - reloadObjItem(`42`, `Love Creeper`, objSubTypeItemAlch, 1) - reloadObjItem(`43`, `Wolf Root`, objSubTypeItemAlch, 1) - reloadObjItem(`44`, `Swamp Lavender`, objSubTypeItemAlch, 1) - reloadObjItem(`45`, `White Blossom`, objSubTypeItemAlch, 1) - reloadObjItem(`46`, `Ilaves`, objSubTypeItemAlch, 1) - reloadObjItem(`47`, `Ephijora`, objSubTypeItemAlch, 1) - reloadObjItem(`48`, `Storm Hyssop`, objSubTypeItemAlch, 1) - reloadObjItem(`49`, `Cave Garlic`, objSubTypeItemAlch, 1) - reloadObjItem(`50`, `Yellow Seed`, objSubTypeItemAlch, 1) - reloadObjItem(`51`, `Tecceagrass`, objSubTypeItemAlch, 1) - reloadObjItem(`52`, `Spring Bay Leaf`, objSubTypeItemAlch, 1) - reloadObjItem(`53`, `Ash Rosemary`, objSubTypeItemAlch, 1) - reloadObjItem(`54`, `Sanguine Parsley`, objSubTypeItemAlch, 1) - reloadObjItem(`55`, `Sun Tarragon`, objSubTypeItemAlch, 1) - reloadObjItem(`56`, `Maccunut`, objSubTypeItemAlch, 1) - reloadObjItem(`57`, `Dragon Seed`, objSubTypeItemAlch, 1) - reloadObjItem(`58`, `Queen's Pepper`, objSubTypeItemAlch, 1) - reloadObjItem(`59`, `Plasma of Abyss`, objSubTypeItemAlch, 1) - reloadObjItem(`60`, `Ultramarine Dust`, objSubTypeItemAlch, 1) - reloadObjItem(`61`, `Ethereal Bone`, objSubTypeItemAlch, 1) - reloadObjItem(`62`, `Itacory`, objSubTypeItemAlch, 1) - reloadObjItem(`63`, `Assassin Vine`, objSubTypeItemAlch, 1) - reloadObjItem(`64`, `Kloliarway`, objSubTypeItemAlch, 1) - reloadObjItem(`65`, `Astrulic`, objSubTypeItemAlch, 1) - reloadObjItem(`66`, `Flammia Nut`, objSubTypeItemAlch, 1) - reloadObjItem(`67`, `Plexisop`, objSubTypeItemAlch, 1) - reloadObjItem(`68`, `Mammoth Dill`, objSubTypeItemAlch, 1) - reloadObjItem(`69`, `Silver Dust`, objSubTypeItemAlch, 1) - reloadObjItem(`501`, `Wrapping`, objSubTypeItemMisc, 2) - reloadObjItem(`502`, `Leash`, objSubTypeItemMisc, 2) - reloadObjItem(`505`, `Wooden Arrow`, objSubTypeItemMisc, 10) - reloadObjItem(`507`, `Bottle of Remedy`, objSubTypeItemMisc, -1) - reloadObjItem(`509`, `Bottle of Poison`, objSubTypeItemMisc, -1) - reloadObjItem(`511`, `Steel Arrow`, objSubTypeItemMisc, 10) - reloadObjItem(`513`, `Silver Arrow`, objSubTypeItemMisc, 10) - reloadObjItem(`515`, `Broad Arrows Pack`, objSubTypeItemMisc, -1) - reloadObjItem(`517`, `Heavy Arrows Pack`, objSubTypeItemMisc, -1) - reloadObjItem(`519`, `Compound Arrows Pack`, objSubTypeItemMisc, -1) - reloadObjItem(`614`, `🎟Gift Coupon 'Pig'`, objSubTypeItemMisc, 1) - reloadObjItem(`615`, `🎟Gift Coupon 'Horse'`, objSubTypeItemMisc, 1) - reloadObjItem(`616`, `🎟Gift Coupon 'Owl'`, objSubTypeItemMisc, 1) - reloadObjItem(`617`, `🎟Gift Coupon 'Mouse'`, objSubTypeItemMisc, 1) - reloadObjItem(`618`, `Hay`, objSubTypeItemMisc, 5) // PROPAGATE TO WIKI - reloadObjItem(`619`, `Corn`, objSubTypeItemMisc, 5) // PROPAGATE TO WIKI - reloadObjItem(`620`, `Hamsters`, objSubTypeItemMisc, 5) // PROPAGATE TO WIKI - reloadObjItem(`621`, `Cheese`, objSubTypeItemMisc, 5) // PROPAGATE TO WIKI - reloadObjItem(`622`, `🎟Gift Coupon 'Gopher'`, objSubTypeItemMisc, 1) - reloadObjItem(`623`, `🎟Gift Coupon 'Ants'`, objSubTypeItemMisc, 1) - reloadObjItem(`624`, `🎟Gift Coupon 'Spider'`, objSubTypeItemMisc, 1) - reloadObjItem(`625`, `🎟Gift Coupon 'Haunted'`, objSubTypeItemMisc, 1) - reloadObjItem(`626`, `🎟Gift Coupon 'Camel'`, objSubTypeItemMisc, 1) - reloadObjItem(`a01`, `Cloth Jacket`, objSubTypeItemOther, -1) - reloadObjItem(`a01`, `Cloth jacket`, objSubTypeItemOther, -1) - reloadObjItem(`a02`, `Leather Shirt`, objSubTypeItemOther, -1) - reloadObjItem(`a03`, `Chain Mail`, objSubTypeItemOther, -1) - reloadObjItem(`a03`, `Chain mail`, objSubTypeItemOther, -1) - reloadObjItem(`a04`, `Silver Cuirass`, objSubTypeItemOther, -1) - reloadObjItem(`a04`, `Silver cuirass`, objSubTypeItemOther, -1) - reloadObjItem(`a05`, `Mithril Armor`, objSubTypeItemOther, -1) - reloadObjItem(`a05`, `Mithril armor`, objSubTypeItemOther, -1) - reloadObjItem(`a06`, `Hat`, objSubTypeItemOther, -1) - reloadObjItem(`a07`, `Leather Hood`, objSubTypeItemOther, -1) - reloadObjItem(`a08`, `Steel Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`a08`, `Steel helmet`, objSubTypeItemOther, -1) - reloadObjItem(`a09`, `Silver Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`a09`, `Silver helmet`, objSubTypeItemOther, -1) - reloadObjItem(`a10`, `Mithril Helmet`, objSubTypeItemOther, 190) // PROPAGATE TO WIKI - reloadObjItem(`a10`, `Mithril helmet`, objSubTypeItemOther, 190) // PROPAGATE TO WIKI - reloadObjItem(`a11`, `Sandals`, objSubTypeItemOther, -1) - reloadObjItem(`a12`, `Leather Shoes`, objSubTypeItemOther, -1) - reloadObjItem(`a13`, `Steel Boots`, objSubTypeItemOther, -1) - reloadObjItem(`a13`, `Steel boots`, objSubTypeItemOther, -1) - reloadObjItem(`a14`, `Silver Boots`, objSubTypeItemOther, -1) - reloadObjItem(`a14`, `Silver boots`, objSubTypeItemOther, -1) - reloadObjItem(`a15`, `Mithril Boots`, objSubTypeItemOther, -1) - reloadObjItem(`a15`, `Mithril boots`, objSubTypeItemOther, -1) - reloadObjItem(`a16`, `Gloves`, objSubTypeItemOther, -1) - reloadObjItem(`a17`, `Leather Gloves`, objSubTypeItemOther, -1) - reloadObjItem(`a17`, `Leather gloves`, objSubTypeItemOther, -1) - reloadObjItem(`a18`, `Steel Gauntlets`, objSubTypeItemOther, -1) - reloadObjItem(`a19`, `Silver Gauntlets`, objSubTypeItemOther, -1) - reloadObjItem(`a19`, `Silver gauntlets`, objSubTypeItemOther, -1) - reloadObjItem(`a20`, `Mithril Gauntlets`, objSubTypeItemOther, 125) // PROPAGATE TO WIKI - reloadObjItem(`a20`, `Mithril gauntlets`, objSubTypeItemOther, 125) // PROPAGATE TO WIKI - reloadObjItem(`a21`, `Wooden Shield`, objSubTypeItemOther, -1) - reloadObjItem(`a21`, `Wooden shield`, objSubTypeItemOther, -1) - reloadObjItem(`a22`, `Skeleton Buckler`, objSubTypeItemOther, -1) - reloadObjItem(`a23`, `Bronze Shield`, objSubTypeItemOther, -1) - reloadObjItem(`a23`, `Bronze shield`, objSubTypeItemOther, -1) - reloadObjItem(`a24`, `Silver Shield`, objSubTypeItemOther, -1) - reloadObjItem(`a24`, `Silver shield`, objSubTypeItemOther, -1) - reloadObjItem(`a25`, `Mithril Shield`, objSubTypeItemOther, -1) - reloadObjItem(`a25`, `Mithril shield`, objSubTypeItemOther, -1) - reloadObjItem(`a26`, `Royal Guard Cape`, objSubTypeItemOther, -1) - reloadObjItem(`a27`, `Order Armor`, objSubTypeItemOther, -1) - reloadObjItem(`a28`, `Order Helmet`, objSubTypeItemOther, 190) - reloadObjItem(`a29`, `Order Boots`, objSubTypeItemOther, -1) - reloadObjItem(`a30`, `Order Gauntlets`, objSubTypeItemOther, -1) - reloadObjItem(`a31`, `Order Shield`, objSubTypeItemOther, -1) - reloadObjItem(`a32`, `Hunter Armor`, objSubTypeItemOther, 450) - reloadObjItem(`a33`, `Hunter Helmet`, objSubTypeItemOther, 190) - reloadObjItem(`a34`, `Hunter Boots`, objSubTypeItemOther, -1) - reloadObjItem(`a35`, `Hunter Gloves`, objSubTypeItemOther, 125) // PROPAGATE TO WIKI - reloadObjItem(`a36`, `Clarity Robe`, objSubTypeItemOther, 450) - reloadObjItem(`a37`, `Clarity Circlet`, objSubTypeItemOther, 190) - reloadObjItem(`a38`, `Clarity Shoes`, objSubTypeItemOther, 125) - reloadObjItem(`a39`, `Clarity Bracers`, objSubTypeItemOther, 125) - reloadObjItem(`a40`, `Pencil of Truth`, objSubTypeItemOther, 10) - reloadObjItem(`a41`, `Bard's Cape`, objSubTypeItemOther, -1) - reloadObjItem(`a45`, `Crusader Armor`, objSubTypeItemOther, -1) - reloadObjItem(`a46`, `Crusader Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`a47`, `Crusader Boots`, objSubTypeItemOther, 200) - reloadObjItem(`a48`, `Crusader Gauntlets`, objSubTypeItemOther, -1) - reloadObjItem(`a49`, `Crusader Shield`, objSubTypeItemOther, 200) - reloadObjItem(`a50`, `Royal Armor`, objSubTypeItemOther, -1) - reloadObjItem(`a51`, `Royal Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`a52`, `Royal Boots`, objSubTypeItemOther, 200) - reloadObjItem(`a53`, `Royal Gauntlets`, objSubTypeItemOther, -1) - reloadObjItem(`a54`, `Royal Shield`, objSubTypeItemOther, 200) - reloadObjItem(`a55`, `Ghost Armor`, objSubTypeItemOther, 480) - reloadObjItem(`a56`, `Ghost Helmet`, objSubTypeItemOther, 200) - reloadObjItem(`a57`, `Ghost Boots`, objSubTypeItemOther, 90) - reloadObjItem(`a58`, `Ghost Gloves`, objSubTypeItemOther, -1) - reloadObjItem(`a59`, `Lion Armor`, objSubTypeItemOther, -1) - reloadObjItem(`a60`, `Lion Helmet`, objSubTypeItemOther, 200) - reloadObjItem(`a61`, `Lion Boots`, objSubTypeItemOther, -1) - reloadObjItem(`a62`, `Lion Gloves`, objSubTypeItemOther, -1) - reloadObjItem(`a63`, `Demon Robe`, objSubTypeItemOther, 480) - reloadObjItem(`a64`, `Demon Circlet`, objSubTypeItemOther, 200) - reloadObjItem(`a65`, `Demon Shoes`, objSubTypeItemOther, 140) - reloadObjItem(`a66`, `Demon Bracers`, objSubTypeItemOther, 140) - reloadObjItem(`a67`, `Divine Robe`, objSubTypeItemOther, 480) - reloadObjItem(`a68`, `Divine Circlet`, objSubTypeItemOther, 200) - reloadObjItem(`a69`, `Divine Shoes`, objSubTypeItemOther, 140) + reloadObjItem(`01`, `Thread`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`02`, `Stick`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`03`, `Pelt`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`04`, `Bone`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`05`, `Coal`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`06`, `Charcoal`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`07`, `Powder`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`08`, `Iron Ore`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`09`, `Cloth`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`10`, `Silver Ore`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`100`, `Pouch of Gold`, objSubTypeItemResource, 0, false, false) + reloadObjItem(`11`, `Bauxite`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`12`, `Cord`, objSubTypeItemResource, 2, false, false) + reloadObjItem(`13`, `Magic Stone`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`14`, `Wooden shaft`, objSubTypeItemResource, 2, false, false) + reloadObjItem(`15`, `Sapphire`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`16`, `Solvent`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`17`, `Ruby`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`18`, `Hardener`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`19`, `Steel`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`20`, `Leather`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`21`, `Bone Powder`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`22`, `String`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`23`, `Coke`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`24`, `Purified Powder`, objSubTypeItemResource, 1, false, false) + reloadObjItem(`25`, `Silver Alloy`, objSubTypeItemResource, 3, false, false) + reloadObjItem(`27`, `Steel Mold`, objSubTypeItemResource, 2, false, false) + reloadObjItem(`28`, `Silver Mold`, objSubTypeItemResource, 2, false, false) + reloadObjItem(`29`, `Blacksmith Frame`, objSubTypeItemResource, 3, false, false) + reloadObjItem(`30`, `Artisan Frame`, objSubTypeItemResource, 3, false, false) + reloadObjItem(`31`, `Rope`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`32`, `Silver Frame`, objSubTypeItemResource, 2, false, false) + reloadObjItem(`33`, `Metal Plate`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`34`, `Metallic Fiber`, objSubTypeItemResource, 2, true, false) + reloadObjItem(`35`, `Crafted Leather`, objSubTypeItemResource, 1, true, false) + reloadObjItem(`36`, `Quality Cloth`, objSubTypeItemResource, 2, false, false) + reloadObjItem(`37`, `Blacksmith Mold`, objSubTypeItemResource, 3, false, false) + reloadObjItem(`38`, `Artisan Mold`, objSubTypeItemResource, 3, false, false) + reloadObjItem(`39`, `Stinky Sumac`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`40`, `Mercy Sassafras`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`41`, `Cliff Rue`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`42`, `Love Creeper`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`43`, `Wolf Root`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`44`, `Swamp Lavender`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`45`, `White Blossom`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`46`, `Ilaves`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`47`, `Ephijora`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`48`, `Storm Hyssop`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`49`, `Cave Garlic`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`50`, `Yellow Seed`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`51`, `Tecceagrass`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`52`, `Spring Bay Leaf`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`53`, `Ash Rosemary`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`54`, `Sanguine Parsley`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`55`, `Sun Tarragon`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`56`, `Maccunut`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`57`, `Dragon Seed`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`58`, `Queen's Pepper`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`59`, `Plasma of Abyss`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`60`, `Ultramarine Dust`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`61`, `Ethereal Bone`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`62`, `Itacory`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`63`, `Assassin Vine`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`64`, `Kloliarway`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`65`, `Astrulic`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`66`, `Flammia Nut`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`67`, `Plexisop`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`68`, `Mammoth Dill`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`69`, `Silver Dust`, objSubTypeItemAlch, 1, true, false) + reloadObjItem(`501`, `Wrapping`, objSubTypeItemMisc, 2, false, false) + reloadObjItem(`502`, `Leash`, objSubTypeItemMisc, 2, false, false) + reloadObjItem(`505`, `Wooden Arrow`, objSubTypeItemMisc, 10, false, false) + reloadObjItem(`507`, `Bottle of Remedy`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`509`, `Bottle of Poison`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`511`, `Steel Arrow`, objSubTypeItemMisc, 10, false, false) + reloadObjItem(`513`, `Silver Arrow`, objSubTypeItemMisc, 10, false, false) + reloadObjItem(`515`, `Broad Arrows Pack`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`517`, `Heavy Arrows Pack`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`519`, `Compound Arrows Pack`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`614`, `🎟Gift Coupon 'Pig'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`615`, `🎟Gift Coupon 'Horse'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`616`, `🎟Gift Coupon 'Owl'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`617`, `🎟Gift Coupon 'Mouse'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`618`, `Hay`, objSubTypeItemMisc, 5, true, false) // PROPAGATE TO WIKI + reloadObjItem(`619`, `Corn`, objSubTypeItemMisc, 5, true, false) // PROPAGATE TO WIKI + reloadObjItem(`620`, `Hamsters`, objSubTypeItemMisc, 5, true, false) // PROPAGATE TO WIKI + reloadObjItem(`621`, `Cheese`, objSubTypeItemMisc, 5, true, false) // PROPAGATE TO WIKI + reloadObjItem(`622`, `🎟Gift Coupon 'Gopher'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`623`, `🎟Gift Coupon 'Ants'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`624`, `🎟Gift Coupon 'Spider'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`625`, `🎟Gift Coupon 'Haunted'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`626`, `🎟Gift Coupon 'Camel'`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`a01`, `Cloth Jacket`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a01`, `Cloth jacket`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a02`, `Leather Shirt`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a03`, `Chain Mail`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a03`, `Chain mail`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a04`, `Silver Cuirass`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a04`, `Silver cuirass`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a05`, `Mithril Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a05`, `Mithril armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a06`, `Hat`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a07`, `Leather Hood`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a08`, `Steel Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a08`, `Steel helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a09`, `Silver Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a09`, `Silver helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a10`, `Mithril Helmet`, objSubTypeItemOther, 190, false, true) // PROPAGATE TO WIKI + reloadObjItem(`a10`, `Mithril helmet`, objSubTypeItemOther, 190, false, true) // PROPAGATE TO WIKI + reloadObjItem(`a11`, `Sandals`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a12`, `Leather Shoes`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a13`, `Steel Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a13`, `Steel boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a14`, `Silver Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a14`, `Silver boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a15`, `Mithril Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a15`, `Mithril boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a16`, `Gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a17`, `Leather Gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a17`, `Leather gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a18`, `Steel Gauntlets`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a19`, `Silver Gauntlets`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a19`, `Silver gauntlets`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a20`, `Mithril Gauntlets`, objSubTypeItemOther, 125, false, true) // PROPAGATE TO WIKI + reloadObjItem(`a20`, `Mithril gauntlets`, objSubTypeItemOther, 125, false, true) // PROPAGATE TO WIKI + reloadObjItem(`a21`, `Wooden Shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a21`, `Wooden shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a22`, `Skeleton Buckler`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a23`, `Bronze Shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a23`, `Bronze shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a24`, `Silver Shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a24`, `Silver shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a25`, `Mithril Shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a25`, `Mithril shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a26`, `Royal Guard Cape`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a27`, `Order Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a28`, `Order Helmet`, objSubTypeItemOther, 190, false, true) + reloadObjItem(`a29`, `Order Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a30`, `Order Gauntlets`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a31`, `Order Shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a32`, `Hunter Armor`, objSubTypeItemOther, 450, false, true) + reloadObjItem(`a33`, `Hunter Helmet`, objSubTypeItemOther, 190, false, true) + reloadObjItem(`a34`, `Hunter Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a35`, `Hunter Gloves`, objSubTypeItemOther, 125, false, true) // PROPAGATE TO WIKI + reloadObjItem(`a36`, `Clarity Robe`, objSubTypeItemOther, 450, false, true) + reloadObjItem(`a37`, `Clarity Circlet`, objSubTypeItemOther, 190, false, true) + reloadObjItem(`a38`, `Clarity Shoes`, objSubTypeItemOther, 125, false, true) + reloadObjItem(`a39`, `Clarity Bracers`, objSubTypeItemOther, 125, false, true) + reloadObjItem(`a40`, `Pencil of Truth`, objSubTypeItemOther, 10, false, true) + reloadObjItem(`a41`, `Bard's Cape`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a45`, `Crusader Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a46`, `Crusader Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a47`, `Crusader Boots`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`a48`, `Crusader Gauntlets`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a49`, `Crusader Shield`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`a50`, `Royal Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a51`, `Royal Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a52`, `Royal Boots`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`a53`, `Royal Gauntlets`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a54`, `Royal Shield`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`a55`, `Ghost Armor`, objSubTypeItemOther, 480, false, true) + reloadObjItem(`a56`, `Ghost Helmet`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`a57`, `Ghost Boots`, objSubTypeItemOther, 90, false, true) + reloadObjItem(`a58`, `Ghost Gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a59`, `Lion Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a60`, `Lion Helmet`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`a61`, `Lion Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a62`, `Lion Gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a63`, `Demon Robe`, objSubTypeItemOther, 480, false, true) + reloadObjItem(`a64`, `Demon Circlet`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`a65`, `Demon Shoes`, objSubTypeItemOther, 140, false, true) + reloadObjItem(`a66`, `Demon Bracers`, objSubTypeItemOther, 140, false, true) + reloadObjItem(`a67`, `Divine Robe`, objSubTypeItemOther, 480, false, true) + reloadObjItem(`a68`, `Divine Circlet`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`a69`, `Divine Shoes`, objSubTypeItemOther, 140, false, true) reloadObjItem(`a70`, `Divine Bracers`, objSubTypeItemOther, 140) - reloadObjItem(`a71`, `Storm Cloak`, objSubTypeItemOther, -1) - reloadObjItem(`a72`, `Durable Cloak`, objSubTypeItemOther, 30) // PROPAGATE TO WIKI - reloadObjItem(`a73`, `Blessed Cloak`, objSubTypeItemOther, 30) - reloadObjItem(`a74`, `Hiking Jar`, objSubTypeItemOther, -1) - reloadObjItem(`a75`, `Hiking Bag`, objSubTypeItemOther, -1) - reloadObjItem(`a76`, `Stick of Wisdom`, objSubTypeItemOther, 10) - reloadObjItem(`a78`, `Council Armor`, objSubTypeItemOther, 510) - reloadObjItem(`a79`, `Council Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`a80`, `Council Boots`, objSubTypeItemOther, -1) - reloadObjItem(`a81`, `Council Gauntlets`, objSubTypeItemOther, 155) - reloadObjItem(`a82`, `Council Shield`, objSubTypeItemOther, -1) - reloadObjItem(`a83`, `Griffin Armor`, objSubTypeItemOther, -1) - reloadObjItem(`a84`, `Griffin Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`a85`, `Griffin Boots`, objSubTypeItemOther, 155) - reloadObjItem(`a86`, `Griffin Gloves`, objSubTypeItemOther, 155) - reloadObjItem(`a87`, `Celestial Armor`, objSubTypeItemOther, 510) - reloadObjItem(`a88`, `Celestial Helmet`, objSubTypeItemOther, 210) - reloadObjItem(`a89`, `Celestial Boots`, objSubTypeItemOther, 155) - reloadObjItem(`a90`, `Celestial Bracers`, objSubTypeItemOther, 155) - reloadObjItem(`a100`, `Assault Cape`, objSubTypeItemOther, -1) - reloadObjItem(`a101`, `Craftsman Apron`, objSubTypeItemOther, -1) - reloadObjItem(`a102`, `Stoneskin Cloak`, objSubTypeItemOther, -1) - reloadObjItem(`ch1`, `Zombie Chest`, objSubTypeItemOther, -1) - reloadObjItem(`e1`, `Cocoa Powder`, objSubTypeItemOther, 1) - reloadObjItem(`e101`, `πŸ§Ÿβ€β™‚οΈ Witchling Robe`, objSubTypeItemOther, -1) - reloadObjItem(`e102`, `πŸ§Ÿβ€β™‚οΈ Witchling Circlet`, objSubTypeItemOther, -1) - reloadObjItem(`e103`, `πŸ§Ÿβ€β™‚οΈ Witchling Shoes`, objSubTypeItemOther, -1) - reloadObjItem(`e104`, `πŸ§Ÿβ€β™‚οΈ Witchling Bracers`, objSubTypeItemOther, -1) - reloadObjItem(`e105`, `πŸ§Ÿβ€β™‚οΈ Witch Robe`, objSubTypeItemOther, -1) - reloadObjItem(`e106`, `πŸ§Ÿβ€β™‚οΈ Witch Circlet`, objSubTypeItemOther, -1) - reloadObjItem(`e107`, `πŸ§Ÿβ€β™‚οΈ Witch Shoes`, objSubTypeItemOther, -1) - reloadObjItem(`e108`, `πŸ§Ÿβ€β™‚οΈ Witch Bracers`, objSubTypeItemOther, -1) - reloadObjItem(`e109`, `πŸ§Ÿβ€β™‚οΈ Walker Armor`, objSubTypeItemOther, -1) - reloadObjItem(`e109`, `πŸ§Ÿβ€β™‚οΈ Walker armor`, objSubTypeItemOther, -1) - reloadObjItem(`e110`, `πŸ§Ÿβ€β™‚οΈ Walker Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`e110`, `πŸ§Ÿβ€β™‚οΈ Walker helmet`, objSubTypeItemOther, -1) - reloadObjItem(`e111`, `πŸ§Ÿβ€β™‚οΈ Walker Boots`, objSubTypeItemOther, -1) - reloadObjItem(`e111`, `πŸ§Ÿβ€β™‚οΈ Walker boots`, objSubTypeItemOther, -1) - reloadObjItem(`e112`, `πŸ§Ÿβ€β™‚οΈ Walker gauntlets`, objSubTypeItemOther, -1) - reloadObjItem(`e112`, `πŸ§Ÿβ€β™‚οΈ Walker Gauntlets`, objSubTypeItemOther, -1) - reloadObjItem(`e113`, `πŸ§Ÿβ€β™‚οΈ Walker Shield`, objSubTypeItemOther, -1) - reloadObjItem(`e113`, `πŸ§Ÿβ€β™‚οΈ Walker shield`, objSubTypeItemOther, -1) - reloadObjItem(`e114`, `πŸ§Ÿβ€β™‚οΈ Zombie Armor`, objSubTypeItemOther, 480) - reloadObjItem(`e115`, `πŸ§Ÿβ€β™‚οΈ Zombie Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`e116`, `πŸ§Ÿβ€β™‚οΈ Zombie Boots`, objSubTypeItemOther, 140) - reloadObjItem(`e117`, `πŸ§Ÿβ€β™‚οΈ Zombie Gauntlets`, objSubTypeItemOther, 140) - reloadObjItem(`e118`, `πŸ§Ÿβ€β™‚οΈ Zombie Shield`, objSubTypeItemOther, -1) - reloadObjItem(`e119`, `πŸ§Ÿβ€β™‚οΈ Imp Robe`, objSubTypeItemOther, -1) - reloadObjItem(`e120`, `πŸ§Ÿβ€β™‚οΈ Imp Circlet`, objSubTypeItemOther, -1) - reloadObjItem(`e121`, `πŸ§Ÿβ€β™‚οΈ Imp Shoes`, objSubTypeItemOther, -1) - reloadObjItem(`e122`, `πŸ§Ÿβ€β™‚οΈ Imp Bracers`, objSubTypeItemOther, -1) - reloadObjItem(`e123`, `πŸ§Ÿβ€β™‚οΈ Demon Robe`, objSubTypeItemOther, -1) - reloadObjItem(`e124`, `πŸ§Ÿβ€β™‚οΈ Demon Circlet`, objSubTypeItemOther, -1) - reloadObjItem(`e125`, `πŸ§Ÿβ€β™‚οΈ Demon Shoes`, objSubTypeItemOther, -1) - reloadObjItem(`e126`, `πŸ§Ÿβ€β™‚οΈ Demon Bracers`, objSubTypeItemOther, -1) - reloadObjItem(`e127`, `πŸ§Ÿβ€β™‚οΈ Manwolf Armor`, objSubTypeItemOther, -1) - reloadObjItem(`e128`, `πŸ§Ÿβ€β™‚οΈ Manwolf Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`e129`, `πŸ§Ÿβ€β™‚οΈ Manwolf Boots`, objSubTypeItemOther, -1) - reloadObjItem(`e130`, `πŸ§Ÿβ€β™‚οΈ Manwolf Gloves`, objSubTypeItemOther, -1) - reloadObjItem(`e131`, `πŸ§Ÿβ€β™‚οΈ Werewolf Armor`, objSubTypeItemOther, -1) - reloadObjItem(`e132`, `πŸ§Ÿβ€β™‚οΈ Werewolf Helmet`, objSubTypeItemOther, 200) - reloadObjItem(`e133`, `πŸ§Ÿβ€β™‚οΈ Werewolf Boots`, objSubTypeItemOther, -1) - reloadObjItem(`e134`, `πŸ§Ÿβ€β™‚οΈ Werewolf Gloves`, objSubTypeItemOther, -1) - reloadObjItem(`e135`, `πŸ§Ÿβ€β™‚οΈ Fleder Armor`, objSubTypeItemOther, -1) - reloadObjItem(`e136`, `πŸ§Ÿβ€β™‚οΈ Fleder Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`e137`, `πŸ§Ÿβ€β™‚οΈ Fleder Boots`, objSubTypeItemOther, -1) - reloadObjItem(`e138`, `πŸ§Ÿβ€β™‚οΈ Fleder Gloves`, objSubTypeItemOther, -1) - reloadObjItem(`e139`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Armor`, objSubTypeItemOther, -1) - reloadObjItem(`e140`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Helmet`, objSubTypeItemOther, -1) - reloadObjItem(`e141`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Boots`, objSubTypeItemOther, -1) - reloadObjItem(`e142`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Gloves`, objSubTypeItemOther, -1) - reloadObjItem(`e143`, `πŸ§Ÿβ€β™‚οΈ Witchling Staff`, objSubTypeItemOther, -1) - reloadObjItem(`e144`, `πŸ§Ÿβ€β™‚οΈ War Club`, objSubTypeItemOther, -1) - reloadObjItem(`e145`, `πŸ§Ÿβ€β™‚οΈ Imp Bow`, objSubTypeItemOther, -1) - reloadObjItem(`e146`, `πŸ§Ÿβ€β™‚οΈ Imp Whip`, objSubTypeItemOther, -1) - reloadObjItem(`e147`, `πŸ§Ÿβ€β™‚οΈ Manwolf Knife`, objSubTypeItemOther, -1) - reloadObjItem(`e148`, `πŸ§Ÿβ€β™‚οΈ Fleder Scimitar`, objSubTypeItemOther, -1) - reloadObjItem(`e149`, `πŸ§Ÿβ€β™‚οΈ Witch Staff`, objSubTypeItemOther, -1) - reloadObjItem(`e150`, `πŸ§Ÿβ€β™‚οΈ Walker Club`, objSubTypeItemOther, -1) - reloadObjItem(`e151`, `πŸ§Ÿβ€β™‚οΈ Demon Bow`, objSubTypeItemOther, -1) - reloadObjItem(`e152`, `πŸ§Ÿβ€β™‚οΈ Demon Whip`, objSubTypeItemOther, -1) - reloadObjItem(`e153`, `πŸ§Ÿβ€β™‚οΈ Werewolf Knife`, objSubTypeItemOther, -1) - reloadObjItem(`e154`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Rapier`, objSubTypeItemOther, -1) - reloadObjItem(`e2`, `Egg`, objSubTypeItemMisc, 1) - reloadObjItem(`e3`, `Flour`, objSubTypeItemMisc, 1) - reloadObjItem(`e4`, `Milk`, objSubTypeItemMisc, -1) - reloadObjItem(`e5`, `Sugar`, objSubTypeItemMisc, -1) - reloadObjItem(`est`, `Evil Spirits Totem`, objSubTypeItemMisc, 50) - reloadObjItem(`hw102`, `Timeless Jade`, objSubTypeItemMisc, -1) - reloadObjItem(`hw104`, `Shadow Bloodstone`, objSubTypeItemMisc, -1) - reloadObjItem(`hw107`, `Void Emerald`, objSubTypeItemMisc, -1) - reloadObjItem(`k01`, `Champion blade`, objSubTypeItemPart, 10) - reloadObjItem(`k02`, `Trident blade`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k03`, `Hunter shaft`, objSubTypeItemPart, 10) - reloadObjItem(`k04`, `War Hammer head`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k04`, `War hammer head`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k05`, `Hunter blade`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k06`, `Order Armor piece`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k06`, `Order armor piece`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k07`, `Order Helmet fragment`, objSubTypeItemPart, 10) - reloadObjItem(`k07`, `Order helmet fragment`, objSubTypeItemPart, 10) - reloadObjItem(`k08`, `Order Boots part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k08`, `Order boots part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k09`, `Order Gauntlets part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k09`, `Order gauntlets part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k10`, `Order Shield part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k10`, `Order shield part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k11`, `Hunter Armor part`, objSubTypeItemPart, 10) - reloadObjItem(`k11`, `Hunter armor part`, objSubTypeItemPart, 10) - reloadObjItem(`k12`, `Hunter Helmet fragment`, objSubTypeItemPart, 10) - reloadObjItem(`k12`, `Hunter helmet fragment`, objSubTypeItemPart, 10) - reloadObjItem(`k13`, `Hunter Boots part`, objSubTypeItemPart, 10) - reloadObjItem(`k13`, `Hunter boots part`, objSubTypeItemPart, 10) - reloadObjItem(`k14`, `Hunter Gloves part`, objSubTypeItemPart, 10) - reloadObjItem(`k14`, `Hunter gloves part`, objSubTypeItemPart, 10) - reloadObjItem(`k15`, `Clarity Robe piece`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k16`, `Clarity Circlet fragment`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k17`, `Clarity Shoes part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k18`, `Clarity Bracers part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k19`, `Thundersoul blade`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k20`, `Doomblade blade`, objSubTypeItemPart, -1) - reloadObjItem(`k21`, `Eclipse blade`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k22`, `Guard's blade`, objSubTypeItemPart, 10) - reloadObjItem(`k23`, `King's Defender blade`, objSubTypeItemPart, 10) - reloadObjItem(`k23`, `King's defender blade`, objSubTypeItemPart, 10) - reloadObjItem(`k24`, `Raging Lance blade`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k24`, `Raging lance blade`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k25`, `Composite Bow shaft`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k25`, `Composite bow shaft`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k26`, `Lightning Bow shaft`, objSubTypeItemPart, -1) - reloadObjItem(`k26`, `Lightning bow shaft`, objSubTypeItemPart, -1) - reloadObjItem(`k27`, `Hailstorm Bow shaft`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k27`, `Hailstorm bow shaft`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k28`, `Imperial Axe head`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k28`, `Imperial axe head`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k29`, `Skull Crusher head`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k29`, `Skull crusher head`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k30`, `Dragon Mace head`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k30`, `Dragon mace head`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k31`, `Ghost blade`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k32`, `Lion blade`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k33`, `Crusader Armor piece`, objSubTypeItemPart, -1) - reloadObjItem(`k33`, `Crusader armor piece`, objSubTypeItemPart, -1) - reloadObjItem(`k34`, `Crusader Helmet fragment`, objSubTypeItemPart, -1) - reloadObjItem(`k34`, `Crusader helmet fragment`, objSubTypeItemPart, -1) - reloadObjItem(`k35`, `Crusader Boots part`, objSubTypeItemPart, -1) - reloadObjItem(`k35`, `Crusader boots part`, objSubTypeItemPart, -1) - reloadObjItem(`k36`, `Crusader Gauntlets part`, objSubTypeItemPart, -1) - reloadObjItem(`k36`, `Crusader gauntlets part`, objSubTypeItemPart, -1) - reloadObjItem(`k37`, `Crusader shield part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k38`, `Royal Armor piece`, objSubTypeItemPart, -1) - reloadObjItem(`k38`, `Royal armor piece`, objSubTypeItemPart, -1) - reloadObjItem(`k39`, `Royal Helmet fragment`, objSubTypeItemPart, -1) - reloadObjItem(`k39`, `Royal helmet fragment`, objSubTypeItemPart, -1) - reloadObjItem(`k40`, `Royal Boots part`, objSubTypeItemPart, -1) - reloadObjItem(`k40`, `Royal boots part`, objSubTypeItemPart, -1) - reloadObjItem(`k41`, `Royal Gauntlets part`, objSubTypeItemPart, -1) - reloadObjItem(`k41`, `Royal gauntlets part`, objSubTypeItemPart, -1) - reloadObjItem(`k42`, `Royal Shield part`, objSubTypeItemPart, -1) - reloadObjItem(`k42`, `Royal shield part`, objSubTypeItemPart, -1) - reloadObjItem(`k43`, `Ghost Armor part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k43`, `Ghost armor part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k44`, `Ghost Helmet fragment`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k44`, `Ghost helmet fragment`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k45`, `Ghost Boots part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k45`, `Ghost boots part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k46`, `Ghost Gloves part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k46`, `Ghost gloves part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k47`, `Lion Armor part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k47`, `Lion armor part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k48`, `Lion Helmet fragment`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k48`, `Lion helmet fragment`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k49`, `Lion Boots part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k49`, `Lion boots part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k50`, `Lion Gloves part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k50`, `Lion gloves part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k51`, `Demon Robe piece`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k51`, `Demon robe piece`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k52`, `Demon Circlet fragment`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k52`, `Demon circlet fragment`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k53`, `Demon Shoes part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k53`, `Demon shoes part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k54`, `Demon Bracers part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k54`, `Demon bracers part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k55`, `Divine Robe piece`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k55`, `Divine robe piece`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k56`, `Divine Circlet fragment`, objSubTypeItemPart, -1) - reloadObjItem(`k56`, `Divine circlet fragment`, objSubTypeItemPart, -1) - reloadObjItem(`k57`, `Divine Shoes part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k57`, `Divine shoes part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k58`, `Divine Bracers part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k58`, `Divine bracers part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k59`, `Storm Cloak part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k59`, `Storm cloak part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k60`, `Durable Cloak part`, objSubTypeItemPart, -1) - reloadObjItem(`k60`, `Durable cloak part`, objSubTypeItemPart, -1) - reloadObjItem(`k61`, `Blessed Cloak part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k61`, `Blessed cloak part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k78`, `Council Armor part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k78`, `Council armor part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k79`, `Council Helmet part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k79`, `Council helmet part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k80`, `Council Boots part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k80`, `Council boots part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k81`, `Council Gauntlets part`, objSubTypeItemPart, 10) - reloadObjItem(`k81`, `Council gauntlets part`, objSubTypeItemPart, 10) - reloadObjItem(`k81`, `Council Gloves part`, objSubTypeItemPart, 10) - reloadObjItem(`k81`, `Council gloves part`, objSubTypeItemPart, 10) - reloadObjItem(`k82`, `Council Shield part`, objSubTypeItemPart, -1) - reloadObjItem(`k82`, `Council shield part`, objSubTypeItemPart, -1) - reloadObjItem(`k83`, `Griffin Armor part`, objSubTypeItemPart, -1) - reloadObjItem(`k83`, `Griffin armor part`, objSubTypeItemPart, -1) - reloadObjItem(`k84`, `Griffin Helmet part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k84`, `Griffin helmet part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k85`, `Griffin Boots part`, objSubTypeItemPart, -1) - reloadObjItem(`k85`, `Griffin boots part`, objSubTypeItemPart, -1) - reloadObjItem(`k86`, `Griffin Gloves part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k86`, `Griffin gloves part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k87`, `Celestial Armor part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k88`, `Celestial Helmet part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k89`, `Celestial Boots part`, objSubTypeItemPart, -1) - reloadObjItem(`k90`, `Celestial Bracers part`, objSubTypeItemPart, -1) - reloadObjItem(`k90`, `Celestial Gloves part`, objSubTypeItemPart, -1) - reloadObjItem(`k91`, `Griffin Knife part`, objSubTypeItemPart, -1) - reloadObjItem(`k92`, `Minotaur Sword part`, objSubTypeItemPart, -1) - reloadObjItem(`k93`, `Phoenix Sword part`, objSubTypeItemPart, -1) - reloadObjItem(`k94`, `Heavy Fauchard part`, objSubTypeItemPart, -1) - reloadObjItem(`k95`, `Guisarme part`, objSubTypeItemPart, -1) - reloadObjItem(`k96`, `Meteor Bow part`, objSubTypeItemPart, -1) - reloadObjItem(`k97`, `Nightfall Bow part`, objSubTypeItemPart, -1) - reloadObjItem(`k98`, `Black Morningstar part`, objSubTypeItemPart, -1) - reloadObjItem(`k99`, `Maiming Bulawa part`, objSubTypeItemPart, -1) - reloadObjItem(`k100`, `Assault Cape part`, objSubTypeItemPart, -1) - reloadObjItem(`k101`, `Craftsman Apron part`, objSubTypeItemPart, 10) // PROPAGATE TO WIKI - reloadObjItem(`k102`, `Stoneskin Cloak part`, objSubTypeItemPart, -1) - reloadObjItem(`p01`, `Vial of Rage`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p02`, `Potion of Rage`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p03`, `Bottle of Rage`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p04`, `Vial of Peace`, objSubTypeItemMisc, 1) - reloadObjItem(`p05`, `Potion of Peace`, objSubTypeItemMisc, 1) - reloadObjItem(`p06`, `Bottle of Peace`, objSubTypeItemMisc, 1) - reloadObjItem(`p07`, `Vial of Greed`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p08`, `Potion of Greed`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p09`, `Bottle of Greed`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p10`, `Vial of Nature`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p11`, `Potion of Nature`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p12`, `Bottle of Nature`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p13`, `Vial of Mana`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p14`, `Potion of Mana`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p15`, `Bottle of Mana`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p16`, `Vial of Twilight`, objSubTypeItemMisc, 1) - reloadObjItem(`p17`, `Potion of Twilight`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p18`, `Bottle of Twilight`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p19`, `Vial of Morph`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p20`, `Potion of Morph`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`p21`, `Bottle of Morph`, objSubTypeItemMisc, 1) // PROPAGATE TO WIKI - reloadObjItem(`pmp`, `Pumpkin`, objSubTypeItemMisc, -1) - reloadObjItem(`pol`, `Proof of Loyalty`, objSubTypeItemMisc, -1) - reloadObjItem(`tde`, `deerhorn earlooms`, objSubTypeItemMisc, -1) - reloadObjItem(`r01`, `Champion Sword recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r02`, `Trident recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r03`, `Hunter Bow recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r04`, `War hammer recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r05`, `Hunter Dagger recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r06`, `Order Armor recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r07`, `Order Helmet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r08`, `Order Boots recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r09`, `Order Gauntlets recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r10`, `Order Shield recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r10`, `Order shield recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r100`, `Assault Cape recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r101`, `Craftsman Apron recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r102`, `Stoneskin Cloak recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r11`, `Hunter Armor recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r12`, `Hunter Helmet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r13`, `Hunter Boots recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r14`, `Hunter Gloves recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r15`, `Clarity Robe recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r16`, `Clarity Circlet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r17`, `Clarity Shoes recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r18`, `Clarity Bracers recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r19`, `Thundersoul Sword recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r20`, `Doomblade Sword recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r21`, `Eclipse recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r22`, `Guard's Spear recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r23`, `King's Defender recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r24`, `Raging Lance recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r25`, `Composite Bow recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r26`, `Lightning Bow recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r27`, `Hailstorm Bow recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r28`, `Imperial Axe recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r29`, `Skull Crusher recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r30`, `Dragon Mace recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r31`, `Ghost Dagger recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r31`, `Ghost dagger recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r32`, `Lion Knife recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r33`, `Crusader Armor recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r34`, `Crusader Helmet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r35`, `Crusader Boots recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r36`, `Crusader Gauntlets recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r37`, `Crusader Shield recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r37`, `Crusader shield recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r38`, `Royal Armor recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r39`, `Royal Helmet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r40`, `Royal Boots recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r41`, `Royal Gauntlets recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r42`, `Royal Shield recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r42`, `Royal shield recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r43`, `Ghost Armor recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r44`, `Ghost Helmet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r45`, `Ghost Boots recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r46`, `Ghost Gloves recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r47`, `Lion Armor recipe`, objSubTypeItemRecipe, 10) // PROPAGATE TO WIKI - reloadObjItem(`r48`, `Lion Helmet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r49`, `Lion Boots recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r50`, `Lion Gloves recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r51`, `Demon Robe recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r52`, `Demon Circlet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r53`, `Demon Shoes recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r54`, `Demon Bracers recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r55`, `Divine Robe recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r56`, `Divine Circlet recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r57`, `Divine Shoes recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r58`, `Divine Bracers recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r59`, `Storm Cloak recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r60`, `Durable Cloak recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r61`, `Blessed Cloak recipe`, objSubTypeItemRecipe, 10) - reloadObjItem(`r78`, `Council Armor recipe`, objSubTypeItemRecipe, 10) // PROPAGATE TO WIKI - reloadObjItem(`r79`, `Council Helmet recipe`, objSubTypeItemRecipe, 10) // PROPAGATE TO WIKI - reloadObjItem(`r80`, `Council Boots recipe`, objSubTypeItemRecipe, 10) // PROPAGATE TO WIKI - reloadObjItem(`r81`, `Council Gauntlets recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r82`, `Council Shield recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r83`, `Griffin Armor recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r84`, `Griffin Helmet recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r85`, `Griffin Boots recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r86`, `Griffin Gloves recipe`, objSubTypeItemRecipe, 10) // PROPAGATE TO WIKI - reloadObjItem(`r87`, `Celestial Armor recipe`, objSubTypeItemRecipe, 10) // PROPAGATE TO WIKI - reloadObjItem(`r88`, `Celestial Helmet recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r89`, `Celestial Boots recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r90`, `Celestial Bracers recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r91`, `Griffin Knife recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r92`, `Minotaur Sword recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r93`, `Phoenix Sword recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r94`, `Heavy Fauchard recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r95`, `Guisarme recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r96`, `Meteor Bow recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r97`, `Nightfall Bow recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r98`, `Black Morningstar recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`r99`, `Maiming Bulawa recipe`, objSubTypeItemRecipe, -1) - reloadObjItem(`s01`, `πŸ“•Scroll of Rage`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s02`, `πŸ“•Scroll of Peace`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s03`, `πŸ“—Scroll of Rage`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s04`, `πŸ“—Scroll of Peace`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s05`, `πŸ“˜Scroll of Rage`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s06`, `πŸ“˜Scroll of Peace`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s07`, `πŸ“™Scroll of Rage`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s08`, `πŸ“™Scroll of Peace`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s11`, `πŸ“•Rare scroll of Rage`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s12`, `πŸ“•Rare scroll of Peace`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s13`, `πŸ“—Rare scroll of Rage`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s14`, `πŸ“—Rare scroll of Peace`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s15`, `πŸ“˜Rare scroll of Rage`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s16`, `πŸ“˜Rare scroll of Peace`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s17`, `πŸ“™Rare scroll of Rage`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s18`, `πŸ“™Rare scroll of Peace`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s50`, `πŸ–‹Scroll of Engraving`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`s51`, `βœ’οΈScroll of Engraving`, objSubTypeItemMisc, 1) // CREATE AND PROPAGATE TO WIKI - reloadObjItem(`tch`, `Torch`, objSubTypeItemOther, -1) - reloadObjItem(`td1`, `Colorless shard`, objSubTypeItemOther, 50) // PROPAGATE TO WIKI - reloadObjItem(`w01`, `Wooden Sword`, objSubTypeItemOther, -1) - reloadObjItem(`w01`, `Wooden sword`, objSubTypeItemOther, -1) - reloadObjItem(`w02`, `Short Sword`, objSubTypeItemOther, -1) - reloadObjItem(`w02`, `Short sword`, objSubTypeItemOther, -1) - reloadObjItem(`w03`, `Long Sword`, objSubTypeItemOther, 180) - reloadObjItem(`w03`, `Long sword`, objSubTypeItemOther, 180) - reloadObjItem(`w04`, `Widow Sword`, objSubTypeItemOther, -1) - reloadObjItem(`w04`, `Widow sword`, objSubTypeItemOther, -1) - reloadObjItem(`w05`, `Knight's Sword`, objSubTypeItemOther, -1) - reloadObjItem(`w05`, `Knight's sword`, objSubTypeItemOther, -1) - reloadObjItem(`w06`, `Elven Sword`, objSubTypeItemOther, -1) - reloadObjItem(`w06`, `Elven sword`, objSubTypeItemOther, -1) - reloadObjItem(`w07`, `Rapier`, objSubTypeItemOther, 180) - reloadObjItem(`w08`, `Short Spear`, objSubTypeItemOther, -1) - reloadObjItem(`w08`, `Short spear`, objSubTypeItemOther, -1) - reloadObjItem(`w09`, `Long Spear`, objSubTypeItemOther, -1) - reloadObjItem(`w09`, `Long spear`, objSubTypeItemOther, -1) - reloadObjItem(`w10`, `Lance`, objSubTypeItemOther, -1) - reloadObjItem(`w11`, `Elven Spear`, objSubTypeItemOther, -1) - reloadObjItem(`w11`, `Elven spear`, objSubTypeItemOther, -1) - reloadObjItem(`w12`, `Halberd`, objSubTypeItemOther, -1) - reloadObjItem(`w13`, `Kitchen Knife`, objSubTypeItemOther, -1) - reloadObjItem(`w13`, `Kitchen knife`, objSubTypeItemOther, -1) - reloadObjItem(`w14`, `Battle Knife`, objSubTypeItemOther, -1) - reloadObjItem(`w14`, `Battle knife`, objSubTypeItemOther, -1) - reloadObjItem(`w15`, `Steel Dagger`, objSubTypeItemOther, -1) - reloadObjItem(`w15`, `Steel dagger`, objSubTypeItemOther, -1) - reloadObjItem(`w16`, `Silver Dagger`, objSubTypeItemOther, -1) - reloadObjItem(`w16`, `Silver dagger`, objSubTypeItemOther, -1) - reloadObjItem(`w17`, `Mithril Dagger`, objSubTypeItemOther, 180) - reloadObjItem(`w17`, `Mithril dagger`, objSubTypeItemOther, 180) - reloadObjItem(`w18`, `Short Bow`, objSubTypeItemOther, -1) - reloadObjItem(`w19`, `Wooden Bow`, objSubTypeItemOther, -1) - reloadObjItem(`w20`, `Long Bow`, objSubTypeItemOther, -1) - reloadObjItem(`w21`, `Elven Bow`, objSubTypeItemOther, -1) - reloadObjItem(`w22`, `Forest Bow`, objSubTypeItemOther, -1) - reloadObjItem(`w23`, `Club`, objSubTypeItemOther, -1) - reloadObjItem(`w24`, `Bone Club`, objSubTypeItemOther, -1) - reloadObjItem(`w24`, `Bone club`, objSubTypeItemOther, -1) - reloadObjItem(`w25`, `Heavy Club`, objSubTypeItemOther, -1) - reloadObjItem(`w25`, `Heavy club`, objSubTypeItemOther, -1) - reloadObjItem(`w26`, `Steel Axe`, objSubTypeItemOther, -1) - reloadObjItem(`w26`, `Steel axe`, objSubTypeItemOther, -1) - reloadObjItem(`w27`, `Mithril Axe`, objSubTypeItemOther, -1) - reloadObjItem(`w27`, `Mithril axe`, objSubTypeItemOther, -1) - reloadObjItem(`w28`, `Champion Sword`, objSubTypeItemOther, 180) - reloadObjItem(`w29`, `Trident`, objSubTypeItemOther, -1) - reloadObjItem(`w30`, `Hunter Bow`, objSubTypeItemOther, -1) - reloadObjItem(`w31`, `War hammer`, objSubTypeItemOther, 180) - reloadObjItem(`w32`, `Hunter dagger`, objSubTypeItemOther, 180) - reloadObjItem(`w33`, `Thundersoul Sword`, objSubTypeItemOther, 200) - reloadObjItem(`w34`, `Doomblade Sword`, objSubTypeItemOther, -1) - reloadObjItem(`w35`, `Eclipse`, objSubTypeItemOther, 200) - reloadObjItem(`w36`, `Guard's Spear`, objSubTypeItemOther, -1) - reloadObjItem(`w37`, `King's Defender`, objSubTypeItemOther, -1) - reloadObjItem(`w38`, `Raging Lance`, objSubTypeItemOther, 200) - reloadObjItem(`w39`, `Composite Bow`, objSubTypeItemOther, 200) - reloadObjItem(`w40`, `Lightning Bow`, objSubTypeItemOther, 200) - reloadObjItem(`w41`, `Hailstorm Bow`, objSubTypeItemOther, 200) - reloadObjItem(`w42`, `Imperial Axe`, objSubTypeItemOther, -1) - reloadObjItem(`w43`, `Skull Crusher`, objSubTypeItemOther, -1) - reloadObjItem(`w44`, `Dragon Mace`, objSubTypeItemOther, 200) - reloadObjItem(`w45`, `Ghost dagger`, objSubTypeItemOther, -1) - reloadObjItem(`w46`, `Lion Knife`, objSubTypeItemOther, -1) - reloadObjItem(`w91`, `Griffin Knife`, objSubTypeItemOther, -1) - reloadObjItem(`w92`, `Minotaur Sword`, objSubTypeItemOther, -1) - reloadObjItem(`w93`, `Phoenix Sword`, objSubTypeItemOther, -1) - reloadObjItem(`w94`, `Heavy Fauchard`, objSubTypeItemOther, -1) - reloadObjItem(`w95`, `Guisarme`, objSubTypeItemOther, -1) - reloadObjItem(`w96`, `Meteor Bow`, objSubTypeItemOther, -1) - reloadObjItem(`w97`, `Nightfall Bow`, objSubTypeItemOther, -1) - reloadObjItem(`w98`, `Black Morningstar`, objSubTypeItemOther, -1) - reloadObjItem(`w99`, `Maiming Bulawa`, objSubTypeItemOther, 0) + reloadObjItem(`a71`, `Storm Cloak`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a72`, `Durable Cloak`, objSubTypeItemOther, 30, false, true) // PROPAGATE TO WIKI + reloadObjItem(`a73`, `Blessed Cloak`, objSubTypeItemOther, 30, false, true) + reloadObjItem(`a74`, `Hiking Jar`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a75`, `Hiking Bag`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a76`, `Stick of Wisdom`, objSubTypeItemOther, 10, false, true) + reloadObjItem(`a78`, `Council Armor`, objSubTypeItemOther, 510, false, true) + reloadObjItem(`a79`, `Council Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a80`, `Council Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a81`, `Council Gauntlets`, objSubTypeItemOther, 155, false, true) + reloadObjItem(`a82`, `Council Shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a83`, `Griffin Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a84`, `Griffin Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a85`, `Griffin Boots`, objSubTypeItemOther, 155, false, true) + reloadObjItem(`a86`, `Griffin Gloves`, objSubTypeItemOther, 155, false, true) + reloadObjItem(`a87`, `Celestial Armor`, objSubTypeItemOther, 510, false, true) + reloadObjItem(`a88`, `Celestial Helmet`, objSubTypeItemOther, 210, false, true) + reloadObjItem(`a89`, `Celestial Boots`, objSubTypeItemOther, 155, false, true) + reloadObjItem(`a90`, `Celestial Bracers`, objSubTypeItemOther, 155, false, true) + reloadObjItem(`a100`, `Assault Cape`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a101`, `Craftsman Apron`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`a102`, `Stoneskin Cloak`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`ch1`, `Zombie Chest`, objSubTypeItemOther, -1, false, false) + reloadObjItem(`e1`, `Cocoa Powder`, objSubTypeItemOther, 1, false, false) + reloadObjItem(`e101`, `πŸ§Ÿβ€β™‚οΈ Witchling Robe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e102`, `πŸ§Ÿβ€β™‚οΈ Witchling Circlet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e103`, `πŸ§Ÿβ€β™‚οΈ Witchling Shoes`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e104`, `πŸ§Ÿβ€β™‚οΈ Witchling Bracers`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e105`, `πŸ§Ÿβ€β™‚οΈ Witch Robe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e106`, `πŸ§Ÿβ€β™‚οΈ Witch Circlet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e107`, `πŸ§Ÿβ€β™‚οΈ Witch Shoes`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e108`, `πŸ§Ÿβ€β™‚οΈ Witch Bracers`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e109`, `πŸ§Ÿβ€β™‚οΈ Walker Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e109`, `πŸ§Ÿβ€β™‚οΈ Walker armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e110`, `πŸ§Ÿβ€β™‚οΈ Walker Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e110`, `πŸ§Ÿβ€β™‚οΈ Walker helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e111`, `πŸ§Ÿβ€β™‚οΈ Walker Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e111`, `πŸ§Ÿβ€β™‚οΈ Walker boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e112`, `πŸ§Ÿβ€β™‚οΈ Walker gauntlets`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e112`, `πŸ§Ÿβ€β™‚οΈ Walker Gauntlets`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e113`, `πŸ§Ÿβ€β™‚οΈ Walker Shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e113`, `πŸ§Ÿβ€β™‚οΈ Walker shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e114`, `πŸ§Ÿβ€β™‚οΈ Zombie Armor`, objSubTypeItemOther, 480, false, true) + reloadObjItem(`e115`, `πŸ§Ÿβ€β™‚οΈ Zombie Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e116`, `πŸ§Ÿβ€β™‚οΈ Zombie Boots`, objSubTypeItemOther, 140, false, true) + reloadObjItem(`e117`, `πŸ§Ÿβ€β™‚οΈ Zombie Gauntlets`, objSubTypeItemOther, 140, false, true) + reloadObjItem(`e118`, `πŸ§Ÿβ€β™‚οΈ Zombie Shield`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e119`, `πŸ§Ÿβ€β™‚οΈ Imp Robe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e120`, `πŸ§Ÿβ€β™‚οΈ Imp Circlet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e121`, `πŸ§Ÿβ€β™‚οΈ Imp Shoes`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e122`, `πŸ§Ÿβ€β™‚οΈ Imp Bracers`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e123`, `πŸ§Ÿβ€β™‚οΈ Demon Robe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e124`, `πŸ§Ÿβ€β™‚οΈ Demon Circlet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e125`, `πŸ§Ÿβ€β™‚οΈ Demon Shoes`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e126`, `πŸ§Ÿβ€β™‚οΈ Demon Bracers`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e127`, `πŸ§Ÿβ€β™‚οΈ Manwolf Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e128`, `πŸ§Ÿβ€β™‚οΈ Manwolf Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e129`, `πŸ§Ÿβ€β™‚οΈ Manwolf Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e130`, `πŸ§Ÿβ€β™‚οΈ Manwolf Gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e131`, `πŸ§Ÿβ€β™‚οΈ Werewolf Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e132`, `πŸ§Ÿβ€β™‚οΈ Werewolf Helmet`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`e133`, `πŸ§Ÿβ€β™‚οΈ Werewolf Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e134`, `πŸ§Ÿβ€β™‚οΈ Werewolf Gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e135`, `πŸ§Ÿβ€β™‚οΈ Fleder Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e136`, `πŸ§Ÿβ€β™‚οΈ Fleder Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e137`, `πŸ§Ÿβ€β™‚οΈ Fleder Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e138`, `πŸ§Ÿβ€β™‚οΈ Fleder Gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e139`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Armor`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e140`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Helmet`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e141`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Boots`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e142`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Gloves`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e143`, `πŸ§Ÿβ€β™‚οΈ Witchling Staff`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e144`, `πŸ§Ÿβ€β™‚οΈ War Club`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e145`, `πŸ§Ÿβ€β™‚οΈ Imp Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e146`, `πŸ§Ÿβ€β™‚οΈ Imp Whip`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e147`, `πŸ§Ÿβ€β™‚οΈ Manwolf Knife`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e148`, `πŸ§Ÿβ€β™‚οΈ Fleder Scimitar`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e149`, `πŸ§Ÿβ€β™‚οΈ Witch Staff`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e150`, `πŸ§Ÿβ€β™‚οΈ Walker Club`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e151`, `πŸ§Ÿβ€β™‚οΈ Demon Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e152`, `πŸ§Ÿβ€β™‚οΈ Demon Whip`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e153`, `πŸ§Ÿβ€β™‚οΈ Werewolf Knife`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e154`, `πŸ§Ÿβ€β™‚οΈ Nosferatu Rapier`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`e2`, `Egg`, objSubTypeItemMisc, 1, false, false) + reloadObjItem(`e3`, `Flour`, objSubTypeItemMisc, 1, false, false) + reloadObjItem(`e4`, `Milk`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`e5`, `Sugar`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`est`, `Evil Spirits Totem`, objSubTypeItemMisc, 50, false, false) + reloadObjItem(`hw102`, `Timeless Jade`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`hw104`, `Shadow Bloodstone`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`hw107`, `Void Emerald`, objSubTypeItemMisc, -1, false, false) + reloadObjItem(`k01`, `Champion blade`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k02`, `Trident blade`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k03`, `Hunter shaft`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k04`, `War Hammer head`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k04`, `War hammer head`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k05`, `Hunter blade`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k06`, `Order Armor piece`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k06`, `Order armor piece`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k07`, `Order Helmet fragment`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k07`, `Order helmet fragment`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k08`, `Order Boots part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k08`, `Order boots part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k09`, `Order Gauntlets part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k09`, `Order gauntlets part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k10`, `Order Shield part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k10`, `Order shield part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k11`, `Hunter Armor part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k11`, `Hunter armor part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k12`, `Hunter Helmet fragment`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k12`, `Hunter helmet fragment`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k13`, `Hunter Boots part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k13`, `Hunter boots part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k14`, `Hunter Gloves part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k14`, `Hunter gloves part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k15`, `Clarity Robe piece`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k16`, `Clarity Circlet fragment`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k17`, `Clarity Shoes part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k18`, `Clarity Bracers part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k19`, `Thundersoul blade`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k20`, `Doomblade blade`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k21`, `Eclipse blade`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k22`, `Guard's blade`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k23`, `King's Defender blade`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k23`, `King's defender blade`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k24`, `Raging Lance blade`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k24`, `Raging lance blade`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k25`, `Composite Bow shaft`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k25`, `Composite bow shaft`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k26`, `Lightning Bow shaft`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k26`, `Lightning bow shaft`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k27`, `Hailstorm Bow shaft`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k27`, `Hailstorm bow shaft`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k28`, `Imperial Axe head`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k28`, `Imperial axe head`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k29`, `Skull Crusher head`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k29`, `Skull crusher head`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k30`, `Dragon Mace head`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k30`, `Dragon mace head`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k31`, `Ghost blade`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k32`, `Lion blade`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k33`, `Crusader Armor piece`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k33`, `Crusader armor piece`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k34`, `Crusader Helmet fragment`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k34`, `Crusader helmet fragment`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k35`, `Crusader Boots part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k35`, `Crusader boots part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k36`, `Crusader Gauntlets part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k36`, `Crusader gauntlets part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k37`, `Crusader shield part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k38`, `Royal Armor piece`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k38`, `Royal armor piece`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k39`, `Royal Helmet fragment`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k39`, `Royal helmet fragment`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k40`, `Royal Boots part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k40`, `Royal boots part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k41`, `Royal Gauntlets part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k41`, `Royal gauntlets part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k42`, `Royal Shield part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k42`, `Royal shield part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k43`, `Ghost Armor part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k43`, `Ghost armor part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k44`, `Ghost Helmet fragment`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k44`, `Ghost helmet fragment`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k45`, `Ghost Boots part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k45`, `Ghost boots part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k46`, `Ghost Gloves part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k46`, `Ghost gloves part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k47`, `Lion Armor part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k47`, `Lion armor part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k48`, `Lion Helmet fragment`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k48`, `Lion helmet fragment`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k49`, `Lion Boots part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k49`, `Lion boots part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k50`, `Lion Gloves part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k50`, `Lion gloves part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k51`, `Demon Robe piece`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k51`, `Demon robe piece`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k52`, `Demon Circlet fragment`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k52`, `Demon circlet fragment`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k53`, `Demon Shoes part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k53`, `Demon shoes part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k54`, `Demon Bracers part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k54`, `Demon bracers part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k55`, `Divine Robe piece`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k55`, `Divine robe piece`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k56`, `Divine Circlet fragment`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k56`, `Divine circlet fragment`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k57`, `Divine Shoes part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k57`, `Divine shoes part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k58`, `Divine Bracers part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k58`, `Divine bracers part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k59`, `Storm Cloak part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k59`, `Storm cloak part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k60`, `Durable Cloak part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k60`, `Durable cloak part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k61`, `Blessed Cloak part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k61`, `Blessed cloak part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k78`, `Council Armor part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k78`, `Council armor part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k79`, `Council Helmet part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k79`, `Council helmet part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k80`, `Council Boots part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k80`, `Council boots part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k81`, `Council Gauntlets part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k81`, `Council gauntlets part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k81`, `Council Gloves part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k81`, `Council gloves part`, objSubTypeItemPart, 10, false, true) + reloadObjItem(`k82`, `Council Shield part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k82`, `Council shield part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k83`, `Griffin Armor part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k83`, `Griffin armor part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k84`, `Griffin Helmet part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k84`, `Griffin helmet part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k85`, `Griffin Boots part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k85`, `Griffin boots part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k86`, `Griffin Gloves part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k86`, `Griffin gloves part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k87`, `Celestial Armor part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k88`, `Celestial Helmet part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k89`, `Celestial Boots part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k90`, `Celestial Bracers part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k90`, `Celestial Gloves part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k91`, `Griffin Knife part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k92`, `Minotaur Sword part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k93`, `Phoenix Sword part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k94`, `Heavy Fauchard part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k95`, `Guisarme part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k96`, `Meteor Bow part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k97`, `Nightfall Bow part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k98`, `Black Morningstar part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k99`, `Maiming Bulawa part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k100`, `Assault Cape part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`k101`, `Craftsman Apron part`, objSubTypeItemPart, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`k102`, `Stoneskin Cloak part`, objSubTypeItemPart, -1, false, true) + reloadObjItem(`p01`, `Vial of Rage`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p02`, `Potion of Rage`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p03`, `Bottle of Rage`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p04`, `Vial of Peace`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`p05`, `Potion of Peace`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`p06`, `Bottle of Peace`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`p07`, `Vial of Greed`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p08`, `Potion of Greed`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p09`, `Bottle of Greed`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p10`, `Vial of Nature`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p11`, `Potion of Nature`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p12`, `Bottle of Nature`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p13`, `Vial of Mana`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p14`, `Potion of Mana`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p15`, `Bottle of Mana`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p16`, `Vial of Twilight`, objSubTypeItemMisc, 1, false, true) + reloadObjItem(`p17`, `Potion of Twilight`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p18`, `Bottle of Twilight`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p19`, `Vial of Morph`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p20`, `Potion of Morph`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`p21`, `Bottle of Morph`, objSubTypeItemMisc, 1, false, true) // PROPAGATE TO WIKI + reloadObjItem(`pmp`, `Pumpkin`, objSubTypeItemMisc, -1, false, true) + reloadObjItem(`pol`, `Proof of Loyalty`, objSubTypeItemMisc, -1, false, true) + reloadObjItem(`tde`, `deerhorn earlooms`, objSubTypeItemMisc, -1, false, true) + reloadObjItem(`r01`, `Champion Sword recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r02`, `Trident recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r03`, `Hunter Bow recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r04`, `War hammer recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r05`, `Hunter Dagger recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r06`, `Order Armor recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r07`, `Order Helmet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r08`, `Order Boots recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r09`, `Order Gauntlets recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r10`, `Order Shield recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r10`, `Order shield recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r100`, `Assault Cape recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r101`, `Craftsman Apron recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r102`, `Stoneskin Cloak recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r11`, `Hunter Armor recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r12`, `Hunter Helmet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r13`, `Hunter Boots recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r14`, `Hunter Gloves recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r15`, `Clarity Robe recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r16`, `Clarity Circlet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r17`, `Clarity Shoes recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r18`, `Clarity Bracers recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r19`, `Thundersoul Sword recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r20`, `Doomblade Sword recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r21`, `Eclipse recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r22`, `Guard's Spear recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r23`, `King's Defender recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r24`, `Raging Lance recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r25`, `Composite Bow recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r26`, `Lightning Bow recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r27`, `Hailstorm Bow recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r28`, `Imperial Axe recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r29`, `Skull Crusher recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r30`, `Dragon Mace recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r31`, `Ghost Dagger recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r31`, `Ghost dagger recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r32`, `Lion Knife recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r33`, `Crusader Armor recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r34`, `Crusader Helmet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r35`, `Crusader Boots recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r36`, `Crusader Gauntlets recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r37`, `Crusader Shield recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r37`, `Crusader shield recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r38`, `Royal Armor recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r39`, `Royal Helmet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r40`, `Royal Boots recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r41`, `Royal Gauntlets recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r42`, `Royal Shield recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r42`, `Royal shield recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r43`, `Ghost Armor recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r44`, `Ghost Helmet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r45`, `Ghost Boots recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r46`, `Ghost Gloves recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r47`, `Lion Armor recipe`, objSubTypeItemRecipe, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`r48`, `Lion Helmet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r49`, `Lion Boots recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r50`, `Lion Gloves recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r51`, `Demon Robe recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r52`, `Demon Circlet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r53`, `Demon Shoes recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r54`, `Demon Bracers recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r55`, `Divine Robe recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r56`, `Divine Circlet recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r57`, `Divine Shoes recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r58`, `Divine Bracers recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r59`, `Storm Cloak recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r60`, `Durable Cloak recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r61`, `Blessed Cloak recipe`, objSubTypeItemRecipe, 10, false, true) + reloadObjItem(`r78`, `Council Armor recipe`, objSubTypeItemRecipe, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`r79`, `Council Helmet recipe`, objSubTypeItemRecipe, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`r80`, `Council Boots recipe`, objSubTypeItemRecipe, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`r81`, `Council Gauntlets recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r82`, `Council Shield recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r83`, `Griffin Armor recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r84`, `Griffin Helmet recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r85`, `Griffin Boots recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r86`, `Griffin Gloves recipe`, objSubTypeItemRecipe, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`r87`, `Celestial Armor recipe`, objSubTypeItemRecipe, 10, false, true) // PROPAGATE TO WIKI + reloadObjItem(`r88`, `Celestial Helmet recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r89`, `Celestial Boots recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r90`, `Celestial Bracers recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r91`, `Griffin Knife recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r92`, `Minotaur Sword recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r93`, `Phoenix Sword recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r94`, `Heavy Fauchard recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r95`, `Guisarme recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r96`, `Meteor Bow recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r97`, `Nightfall Bow recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r98`, `Black Morningstar recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`r99`, `Maiming Bulawa recipe`, objSubTypeItemRecipe, -1, false, true) + reloadObjItem(`s01`, `πŸ“•Scroll of Rage`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s02`, `πŸ“•Scroll of Peace`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s03`, `πŸ“—Scroll of Rage`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s04`, `πŸ“—Scroll of Peace`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s05`, `πŸ“˜Scroll of Rage`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s06`, `πŸ“˜Scroll of Peace`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s07`, `πŸ“™Scroll of Rage`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s08`, `πŸ“™Scroll of Peace`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s11`, `πŸ“•Rare scroll of Rage`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s12`, `πŸ“•Rare scroll of Peace`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s13`, `πŸ“—Rare scroll of Rage`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s14`, `πŸ“—Rare scroll of Peace`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s15`, `πŸ“˜Rare scroll of Rage`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s16`, `πŸ“˜Rare scroll of Peace`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s17`, `πŸ“™Rare scroll of Rage`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s18`, `πŸ“™Rare scroll of Peace`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s50`, `πŸ–‹Scroll of Engraving`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`s51`, `βœ’οΈScroll of Engraving`, objSubTypeItemMisc, 1, false, true) // CREATE AND PROPAGATE TO WIKI + reloadObjItem(`tch`, `Torch`, objSubTypeItemOther, -1, false, false) + reloadObjItem(`td1`, `Colorless shard`, objSubTypeItemOther, 50, false, false) // PROPAGATE TO WIKI + reloadObjItem(`w01`, `Wooden Sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w01`, `Wooden sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w02`, `Short Sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w02`, `Short sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w03`, `Long Sword`, objSubTypeItemOther, 180, false, true) + reloadObjItem(`w03`, `Long sword`, objSubTypeItemOther, 180, false, true) + reloadObjItem(`w04`, `Widow Sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w04`, `Widow sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w05`, `Knight's Sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w05`, `Knight's sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w06`, `Elven Sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w06`, `Elven sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w07`, `Rapier`, objSubTypeItemOther, 180, false, true) + reloadObjItem(`w08`, `Short Spear`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w08`, `Short spear`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w09`, `Long Spear`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w09`, `Long spear`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w10`, `Lance`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w11`, `Elven Spear`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w11`, `Elven spear`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w12`, `Halberd`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w13`, `Kitchen Knife`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w13`, `Kitchen knife`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w14`, `Battle Knife`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w14`, `Battle knife`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w15`, `Steel Dagger`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w15`, `Steel dagger`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w16`, `Silver Dagger`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w16`, `Silver dagger`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w17`, `Mithril Dagger`, objSubTypeItemOther, 180, false, true) + reloadObjItem(`w17`, `Mithril dagger`, objSubTypeItemOther, 180, false, true) + reloadObjItem(`w18`, `Short Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w19`, `Wooden Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w20`, `Long Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w21`, `Elven Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w22`, `Forest Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w23`, `Club`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w24`, `Bone Club`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w24`, `Bone club`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w25`, `Heavy Club`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w25`, `Heavy club`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w26`, `Steel Axe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w26`, `Steel axe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w27`, `Mithril Axe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w27`, `Mithril axe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w28`, `Champion Sword`, objSubTypeItemOther, 180, false, true) + reloadObjItem(`w29`, `Trident`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w30`, `Hunter Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w31`, `War hammer`, objSubTypeItemOther, 180, false, true) + reloadObjItem(`w32`, `Hunter dagger`, objSubTypeItemOther, 180, false, true) + reloadObjItem(`w33`, `Thundersoul Sword`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`w34`, `Doomblade Sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w35`, `Eclipse`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`w36`, `Guard's Spear`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w37`, `King's Defender`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w38`, `Raging Lance`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`w39`, `Composite Bow`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`w40`, `Lightning Bow`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`w41`, `Hailstorm Bow`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`w42`, `Imperial Axe`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w43`, `Skull Crusher`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w44`, `Dragon Mace`, objSubTypeItemOther, 200, false, true) + reloadObjItem(`w45`, `Ghost dagger`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w46`, `Lion Knife`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w91`, `Griffin Knife`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w92`, `Minotaur Sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w93`, `Phoenix Sword`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w94`, `Heavy Fauchard`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w95`, `Guisarme`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w96`, `Meteor Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w97`, `Nightfall Bow`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w98`, `Black Morningstar`, objSubTypeItemOther, -1, false, true) + reloadObjItem(`w99`, `Maiming Bulawa`, objSubTypeItemOther, 0, false, true) } diff --git a/job.go b/job.go index df2a95a..058dd02 100644 --- a/job.go +++ b/job.go @@ -15,7 +15,7 @@ import ( tb "gopkg.in/tucnak/telebot.v2" ) -func createJob(jobTypeID int32, priority int32, userID64 int64, schedule time.Time, payload []byte) (int64, error) { +func createJob(jobTypeID int32, priority int32, userID64 int64, trigger int64, schedule time.Time, payload []byte) (int64, error) { stmt, err := db.Prepare(`INSERT INTO obj (obj_type_id, obj_sub_type_id) VALUES (? , ?);`) logOnError(err, "createJob : prepare insert obj") @@ -37,7 +37,7 @@ func createJob(jobTypeID int32, priority int32, userID64 int64, schedule time.Ti return 0, err } - stmt, err = db.Prepare(`INSERT INTO obj_job (obj_id, priority, user_id, status, seq_nr, schedule, is_done, in_work, inserted, pulled, started, ended, payload) + stmt, err = db.Prepare(`INSERT INTO obj_job (obj_id, priority, user_id, trigger, seq_nr, schedule, is_done, in_work, inserted, pulled, started, ended, payload) VALUES (?, ?, ?, ?, NULL, ?, 0, 0, ?, NULL, NULL, NULL, ?);`) logOnError(err, "createJob : prepare insert obj_job") if err != nil { @@ -45,7 +45,7 @@ func createJob(jobTypeID int32, priority int32, userID64 int64, schedule time.Ti } defer stmt.Close() - _, err = stmt.Exec(objId, priority, userID64, objJobStatusNew, schedule.UTC(), time.Now().UTC(), payload) + _, err = stmt.Exec(objId, priority, userID64, trigger, schedule.UTC(), time.Now().UTC(), payload) logOnError(err, "createJob : insert obj_job") if err != nil { return 0, err @@ -56,7 +56,7 @@ func createJob(jobTypeID int32, priority int32, userID64 int64, schedule time.Ti func createJobCallback(jobTypeID int32, userID64 int64, msgTypeID64 int64, payload []byte) error { t, err := time.Parse(time.RFC3339, "9999-12-31T00:00:00+00:00") - jobID64, err := createJob(jobTypeID, objJobPriority, userID64, t, payload) + jobID64, err := createJob(jobTypeID, objJobPriority, userID64, 0, t, payload) if err != nil { return err } @@ -109,15 +109,15 @@ func setJobStart(jobId int64) error { return nil } -func rescheduleJob(jobID64 int64, status int32, schedule time.Time) error { - stmt, err := db.Prepare(`UPDATE obj_job j SET j.is_done = 0, j.in_work = 0, j.schedule = ?, j.status = ? WHERE j.obj_id = ?;`) +func rescheduleJob(jobID64 int64, trigger int64, schedule time.Time) error { + stmt, err := db.Prepare(`UPDATE obj_job j SET j.is_done = 0, j.in_work = 0, j.schedule = ?, j.trigger = ? WHERE j.obj_id = ?;`) logOnError(err, "rescheduleJob : prepare update obj_job") if err != nil { return err } defer stmt.Close() - _, err = stmt.Exec(schedule.UTC(), status, jobID64) + _, err = stmt.Exec(schedule.UTC(), trigger, jobID64) s := fmt.Sprintf("rescheduleJob, update obj_job(%d)", jobID64) logOnError(err, s) if err != nil { @@ -131,7 +131,7 @@ func loadCurrentJobs() ([]Job, error) { objId int64 jobTypeId int32 userID64 int64 - status int32 + trigger int64 payload []byte jobs []Job ) @@ -145,7 +145,7 @@ func loadCurrentJobs() ([]Job, error) { return jobs, err } - stmt, err := db.Prepare("SELECT o.id, o.obj_sub_type_id, j.status, j.user_id, j.payload FROM obj_job j, obj o WHERE j.obj_id = o.id AND j.is_done = 0 AND j.in_work = 1 AND j.seq_nr = ? ORDER BY j.priority ASC, j.obj_id ASC;") + stmt, err := db.Prepare("SELECT o.id, o.obj_sub_type_id, j.trigger, j.user_id, j.payload FROM obj_job j, obj o WHERE j.obj_id = o.id AND j.is_done = 0 AND j.in_work = 1 AND j.seq_nr = ? ORDER BY j.priority ASC, j.obj_id ASC;") logOnError(err, "loadCurrentJobs : prepare select statement") if err != nil { stmt.Close() @@ -161,12 +161,12 @@ func loadCurrentJobs() ([]Job, error) { } for rows.Next() { - err = rows.Scan(&objId, &jobTypeId, &status, &userID64, &payload) + err = rows.Scan(&objId, &jobTypeId, &trigger, &userID64, &payload) logOnError(err, "loadCurrentJobs : scan query rows") job := Job{ ID64: objId, JobTypeID: jobTypeId, - Status: status, + Trigger: trigger, UserID64: userID64, Payload: payload, } @@ -239,7 +239,7 @@ func jobRescan(j Job) { Text: fmt.Sprintf("%d messages processed in %s.", len(ids), time.Since(start)), } b, _ := json.Marshal(r) - _, err := createJob(objSubTypeJobSetJobDone, objJobPriorityRescanAllMsg, j.UserID64, time.Now().UTC(), b) + _, err := createJob(objSubTypeJobSetJobDone, objJobPriorityRescanAllMsg, j.UserID64, j.ID64, time.Now().UTC(), b) logOnError(err, "jobRescan : createJob(objSubTypeJobSetJobDone)") } else if len(ids) == 1 { @@ -432,11 +432,11 @@ func jobPillage(j Job) { } TGCmdQueue <- s } - err = rescheduleJob(j.ID64, j.Status+1, time.Now().Add(30*time.Second).UTC()) + err = rescheduleJob(j.ID64, j.Trigger, time.Now().Add(30*time.Second).UTC()) logOnError(err, "jobPillage : rescheduleJob(objSubTypeMessageGo)") } else { //no /go in the last 30 sec so we go ahead, send one and reschedule to check again in 25sec clientSendCWMsg(j.UserID64, "/go") - err = rescheduleJob(j.ID64, j.Status+1, time.Now().Add(30*time.Second).UTC()) + err = rescheduleJob(j.ID64, j.Trigger, time.Now().Add(30*time.Second).UTC()) logOnError(err, "jobPillage : rescheduleJob") } @@ -712,25 +712,29 @@ func jobGDeposit(j Job) { err = json.Unmarshal(j.Payload, &p) logOnError(err, "jobGDeposit : Unmarshal payload") - for i := range p.ResObjID64 { - clientSendCWMsg(p.ChatID64, "/g_stock_res") - } - /* - clientSendCWMsg(m.Chat.ID, "/g_stock_res") - clientSendCWMsg(m.Chat.ID, "/g_stock_alch") - clientSendCWMsg(m.Chat.ID, "/g_stock_misc") - clientSendCWMsg(m.Chat.ID, "/g_stock_rec") - clientSendCWMsg(m.Chat.ID, "/g_stock_parts") - clientSendCWMsg(m.Chat.ID, "/g_stock_other") - */ - if err == nil { - m := TGCommand{ - Type: commandReplyMsg, - Text: "Message sent.", - FromMsgID64: p.MsgID64, - FromChatID64: p.ChatID64, + if p.Status == 0 { /* handle remaining resources to be stored */ + if len(p.ResObjID64) > 0 { + obj, err := getObjItem(p.ResObjID64[0]) + if err != nil { + p2 := JobPayloadGDeposit{ + MsgID64: p.MsgID64, + ChatID64: p.ChatID64, + ResObjID64: [1]int64{obj.ObjID64}, + Status: 1, + } + err = createJobCallback(objSubTypeJobGDeposit, j.UserID64, objSubTypeMessageOrderbookAck, p2) + clientSendCWMsg(p.ChatID64, fmt.Sprintf("/t_%s", obj.Code)) + logOnError(err, "jobGDeposit : createJobCallback") + } + p.ResObjID64 = p.ResObjID64[1:] } - TGCmdQueue <- m + if len(p.ResObjID64) > 0 { + err = createJobCallback(objSubTypeJobGDeposit, j.UserID64, objSubTypeMessageOrderbookAck, p) + logOnError(err, "jobGDeposit : createJobCallback") + } + return + } else if p.Status == 1 { /* handle that one resource from the objSubTypeMessageOrderbookAck msg */ + } err = setJobDone(j.ID64) diff --git a/obj.go b/obj.go index b00aa11..e3f089e 100644 --- a/obj.go +++ b/obj.go @@ -16,8 +16,10 @@ var ( cacheObjUser *sync.Map cacheObjMsg *sync.Map - cacheObjItem map[string]ChatWarsItem - muxObjItem sync.Mutex + cacheObjItem map[string]ChatWarsItem + cacheObjItemId map[int64]ChatWarsItem + muxObjItem sync.Mutex + muxObjItemId sync.Mutex ) func getObjTypeId(objId int64) (int64, error) { @@ -587,7 +589,7 @@ func addObjQuest(userID64 int64, questTypeID int, duration time.Duration, date t return objId, nil } -func addObjItem(code string, name string, itemTypeID64 int64, weight int) (int64, error) { +func addObjItem(code string, name string, itemTypeID64 int64, weight int, exchange bool, auction bool) (int64, error) { muxObjItem.Lock() defer muxObjItem.Unlock() @@ -629,8 +631,8 @@ func addObjItem(code string, name string, itemTypeID64 int64, weight int) (int64 return 0, err } - stmt, err := tx.Prepare(`INSERT INTO obj_item (obj_id, intl_id, weight) - VALUES (?, ?, ?);`) + stmt, err := tx.Prepare(`INSERT INTO obj_item (obj_id, intl_id, weight, exchange, auction) + VALUES (?, ?, ?, ?, ?);`) logOnError(err, "addObjItem : prepare insert obj_item") if err != nil { err2 := tx.Rollback() @@ -639,7 +641,19 @@ func addObjItem(code string, name string, itemTypeID64 int64, weight int) (int64 } defer stmt.Close() - _, err = stmt.Exec(objId, code, weight) + var e, a int + if exchange { + e = 1 + } else { + e = 0 + } + if auction { + a = 1 + } else { + a = 0 + } + + _, err = stmt.Exec(objId, code, weight, e, a) logOnError(err, "addObjItem : exec insert obj_item") if err != nil { err2 := tx.Rollback() @@ -661,9 +675,15 @@ func addObjItem(code string, name string, itemTypeID64 int64, weight int) (int64 c.Code = code c.Name = name c.Weight = weight + c.Exchange = exchange + c.Auction = auction cacheObjItem[code] = *c cacheObjItem[name] = *c + muxObjItemId.Lock() + cacheObjItemId[objId] = *c + defer muxObjItemId.Unlock() + return objId, nil } @@ -680,6 +700,19 @@ func getObjItemID(c string, n string) int64 { return i } +func getObjItem(objItemID64 int64) (*ChatWarsItem, error) { + muxObjItemId.Lock() + defer muxObjItemId.Unlock() + muxObjItem.Lock() + defer muxObjItem.Unlock() + if obj, ok := cacheObjItemId[objItemID64]; ok { + //log.Printf("Matching item name %s with %s.\n", name, obj.Name) + return obj, nil + } else { + return nil, errors.New("Item not found.") + } +} + func getSilentObjItemID(code string, name string) int64 { muxObjItem.Lock() defer muxObjItem.Unlock() diff --git a/sql.go b/sql.go index 1915747..229b015 100644 --- a/sql.go +++ b/sql.go @@ -298,7 +298,7 @@ func initDB() { obj_id BIGINT UNSIGNED NOT NULL ,intl_id VARCHAR(32) ,weight SMALLINT NOT NULL - ,trade TINYINT NOT NULL + ,exchange TINYINT NOT NULL ,auction TINYINT NOT NULL ,FOREIGN KEY (obj_id) REFERENCES obj(id) ON DELETE CASCADE ,UNIQUE KEY (intl_id) @@ -353,7 +353,7 @@ func initDB() { obj_id BIGINT UNSIGNED NOT NULL ,priority SMALLINT NOT NULL ,user_id BIGINT UNSIGNED NOT NULL - ,status SMALLINT NOT NULL + ,trigger BIGINT UNSIGNED NOT NULL ,schedule DATETIME NOT NULL ,is_done TINYINT NOT NULL ,in_work TINYINT NOT NULL diff --git a/workers.go b/workers.go index 528b8b4..1cae4ab 100644 --- a/workers.go +++ b/workers.go @@ -408,7 +408,7 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) { Date: m.Date, } b, _ := json.Marshal(&p) - _, err = createJob(objSubTypeJobPillage, objJobPriority, m.TGUserID64, m.Date.Add(time.Duration(25+rand.Intn(35))*time.Second), b) + _, err = createJob(objSubTypeJobPillage, objJobPriority, m.TGUserID64, m.ObjID64, m.Date.Add(time.Duration(25+rand.Intn(35))*time.Second), b) logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : createJob(JobPillage)") } case objSubTypeMessageMeAck: @@ -455,7 +455,7 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) { ObjID64: m.ObjID64, } b, _ := json.Marshal(&p) - _, err = createJob(objSubTypeJobMsgRefresh, objJobPriority, m.TGUserID64, cwm.End.Add(5*time.Minute).UTC(), b) + _, err = createJob(objSubTypeJobMsgRefresh, objJobPriority, m.TGUserID64, m.ObjID64, cwm.End.Add(5*time.Minute).UTC(), b) /* hack for autobid - FIXME */ if cwm.Price == 0 && cwm.ItemID64 == getObjItemID(`k05`, `Hunter blade`) { @@ -472,7 +472,7 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) { if mc1, mok1 := callbacks[m.TGUserID64]; mok1 { if mc2, mok2 := mc1[msgParsingRules[i].MsgTypeID]; mok2 { for j := range mc2 { - err := rescheduleJob(mc2[j], objJobStatusNew, time.Now().UTC()) + err := rescheduleJob(mc2[j], m.ObjID64, time.Now().UTC()) logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : callbacks triggering") } mc1[msgParsingRules[i].MsgTypeID] = nil