This commit is contained in:
shoopea 2020-01-26 16:52:50 +08:00
parent 9c8ee7a4fa
commit 9ba5208600

42
item.go
View File

@ -173,7 +173,6 @@ func getSilentObjItemID(code string, name string) int64 {
}
func setObjItemWeight(objID64 int64, weight int64) error {
log.Printf("setObjItemWeight[%d] : %d\n", objID64, weight)
stmt, err := db.Prepare(`UPDATE obj_item oi SET oi.weight = ? WHERE oi.obj_id = ?;`)
logOnError(err, "setObjItemWeight : prepare update obj_item")
if err != nil {
@ -190,7 +189,6 @@ func setObjItemWeight(objID64 int64, weight int64) error {
}
func setObjItemCraft(objID64 int64, cmd string, mana int64) error {
log.Printf("setObjItemCraft[%d] : %s - %d\n", objID64, cmd, mana)
stmt, err := db.Prepare(`INSERT INTO obj_craft (obj_id, cmd, mana)
VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE cmd = ?, mana = ?;`)
@ -209,6 +207,40 @@ func setObjItemCraft(objID64 int64, cmd string, mana int64) error {
return nil
}
func emptyObjItemCraftItem(objID64 int64) error {
stmt, err := db.Prepare(`DELETE FROM obj_craft_item WHERE obj_id = ?;`)
logOnError(err, "emptyObjItemCraftItem : prepare delete obj_craft_item")
if err != nil {
return err
}
defer stmt.Close()
_, err = stmt.Exec(objID64)
logOnError(err, fmt.Sprintf("setObjItemWeight : delete obj_craft_item(%d)", objID64))
if err != nil {
return err
}
return nil
}
func addObjItemCraftItem(objID64 int64, itemID64 int64, quantity int64) error {
stmt, err := db.Prepare(`INSERT INTO obj_craft_item (obj_id, item_id, mana)
VALUES (?, ?, ?);`)
logOnError(err, "addObjItemCraftItem : prepare update obj_craft_item")
if err != nil {
return err
}
defer stmt.Close()
_, err = stmt.Exec(objID64, obj_craft_item, quantity)
logOnError(err, fmt.Sprintf("addObjItemCraftItem : update obj_craft_item(%d)", objID64))
if err != nil {
return err
}
return nil
}
func loadObjItem() error {
var (
obj_id int64
@ -317,6 +349,12 @@ func loadObjItem() error {
if objItems[i].Craft != nil {
log.Printf("loadObjItem : %s : loading craft for %s.\n", objItems[i].Code, objItems[i].Names[0])
setObjItemCraft(objItems[i].ObjID64, objItems[i].Craft.Command, objItems[i].Craft.Mana)
for k, o := range objItems[i].Craft.Items {
objItems[i].Craft.Items[k].ItemID64 = getObjItemID(o.Code, ``)
}
for _, o := range objItems[i].Craft.Items {
addObjItemCraftItem(objItems[i].ObjID64, o.ItemID64, o.Quantity)
}
}
}