github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/game/internal/user_daily_sign.go (about) 1 package internal 2 3 import ( 4 "common" 5 "conf" 6 "msg" 7 "time" 8 ) 9 10 func (user *User) dailySign() { 11 user.checkDailySign() 12 13 if user.baseData.userData.DailySign { 14 return 15 } 16 17 user.baseData.userData.DailySign = true 18 addChips := conf.GetCfgDailySign()[user.baseData.userData.SignTimes].Chips 19 user.baseData.userData.Chips += addChips 20 user.baseData.userData.SignTimes++ 21 saveUserData(user.baseData.userData) 22 23 user.WriteMsg(&msg.S2C_UpdateUserChips{ 24 Chips:user.baseData.userData.Chips, 25 }) 26 user.WriteMsg(&msg.S2C_DailySign{ 27 Chips: addChips, 28 }) 29 30 user.sendDailySignItems() 31 } 32 33 func (user *User) sendDailySignItems() { 34 user.checkDailySign() 35 36 dailySignItems := []msg.DailySignItems{} 37 for i := 0; i < user.baseData.userData.SignTimes; i++ { 38 dailySignItems = append(dailySignItems, msg.DailySignItems{ 39 Chips:conf.GetCfgDailySign()[i].Chips, 40 Status:msg.SignFinish, 41 }) 42 } 43 if !user.baseData.userData.DailySign { 44 dailySignItems = append(dailySignItems, msg.DailySignItems{ 45 Chips:conf.GetCfgDailySign()[user.baseData.userData.SignTimes].Chips, 46 Status:msg.SignAccess, 47 }) 48 } else { 49 dailySignItems = append(dailySignItems, msg.DailySignItems{ 50 Chips:conf.GetCfgDailySign()[user.baseData.userData.SignTimes].Chips, 51 Status:msg.SignDeny, 52 }) 53 } 54 55 for i := user.baseData.userData.SignTimes + 1; i < 7; i++ { 56 dailySignItems = append(dailySignItems, msg.DailySignItems{ 57 Chips:conf.GetCfgDailySign()[i].Chips, 58 Status:msg.SignDeny, 59 }) 60 } 61 user.WriteMsg(&msg.S2C_DailySignItems{ 62 SignItems:dailySignItems, 63 IsSign:user.baseData.userData.DailySign, 64 }) 65 } 66 67 func (user *User) checkDailySign() { 68 if user.baseData.userData.DailySignDeadLine < time.Now().Unix() { 69 user.baseData.userData.DailySignDeadLine = common.OneDay0ClockTimestamp(time.Now().Add(24*time.Hour)) 70 user.baseData.userData.DailySign = false 71 if time.Now().Weekday() == time.Monday { 72 user.baseData.userData.SignTimes = 0 73 } 74 saveUserData(user.baseData.userData) 75 } 76 }