| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package scheme
- import (
- "Server-Core/Server/Base"
- "errors"
- "fmt"
- "net"
- "reflect"
- "strconv"
- )
- type ItemItem struct {
- Id int32
- Quality int32
- Price int32
- Type string
- Value int32
- }
- type Item struct {
- dataList map[int32]*ItemItem
- }
- var ip string = ""
- func getIp() string {
- addrList, err := net.InterfaceAddrs()
- if err != nil {
- panic(err)
- }
- for _, address := range addrList {
- if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
- if ipNet.IP.To4() != nil {
- fmt.Println(ipNet.IP.String())
- ip = ipNet.IP.String()
- break
- }
- }
- }
- return ip
- }
- func (scp *Item) Load() {
- scp.dataList = make(map[int32]*ItemItem)
- getIp()
- fmt.Printf("exPath", ip)
- //records := base.LoadCsvCfg("../Scp/Item.csv").Records
- //records := base.LoadCsvCfg("../Scp/Item.csv").Records
- //records := base.LoadCsvCfg("./Scp/Item.csv").Records
- var path string = ""
- if ip == "192.168.1.122" {
- path = "E://ChatGameService2/Bin/Scp/Item.csv"
- } else {
- // records := base.LoadCsvCfg("E://ChatGameService2/Bin/Scp/Level.csv").Records
- path = "../Scp/Item.csv"
- }
- records := base.LoadCsvCfg(path).Records
- // records := base.LoadCsvCfg("E://ChatGameService2/Bin/Scp/Item.csv").Records
- //file, err := os.Open(fmt.Sprintf("E://ChatGameService2/Scp/Item.csv", tag))
- for i := 4; i < len(records); i++ {
- item := new(ItemItem)
- cr := reflect.ValueOf(item).Elem()
- for k, v := range records[i].Record {
- k = base.StrFirstToUpper(k)
- a := cr.FieldByName(k)
- switch a.Type().String() {
- case "string":
- a.Set(reflect.ValueOf(v))
- case "int32":
- i, _ := strconv.Atoi(v)
- a.Set(reflect.ValueOf(int32(i)))
- case "float64":
- f, _ := strconv.ParseFloat(v, 64)
- a.Set(reflect.ValueOf(f))
- }
- }
- scp.dataList[item.Id] = item
- }
- }
- func (scp *Item) Get(key int32) (interface{}, error) {
- data, ok := scp.dataList[key]
- if ok {
- return data, nil
- } else {
- return nil, errors.New("not find")
- }
- }
|