多语言邮件
This commit is contained in:
parent
6c33c83033
commit
8ffd149d12
@ -5,6 +5,7 @@ import (
|
||||
languageCfg "server/conf/language"
|
||||
"server/game/mod/item"
|
||||
"server/gamedata"
|
||||
"server/msg"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"strconv"
|
||||
)
|
||||
@ -99,10 +100,10 @@ func GetAcitivityRewardItems(ActId int) []*item.Item {
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetActivityTitle(ActId, Lang int) string {
|
||||
func GetActivityTitle(ActId int) (string, string) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_ACTIVITY, ActId)
|
||||
if err != nil {
|
||||
log.Debug("GetActivityTitle err:%v", err)
|
||||
}
|
||||
return languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Title"))
|
||||
return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title")), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title"))
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package itemCfg
|
||||
import (
|
||||
languageCfg "server/conf/language"
|
||||
"server/gamedata"
|
||||
"server/msg"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"strconv"
|
||||
"strings"
|
||||
@ -48,11 +49,11 @@ func GetItemEffectList(Id int) []int {
|
||||
return res
|
||||
}
|
||||
|
||||
func GetItemName(Id, Lang int) string {
|
||||
func GetItemName(Id int) (string, string) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, Id)
|
||||
if err != nil {
|
||||
log.Debug("ItemCfg GetItemName Id:%v not found", Id)
|
||||
return ""
|
||||
return "", ""
|
||||
}
|
||||
return languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Name"))
|
||||
return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Name")), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Name"))
|
||||
}
|
||||
|
||||
@ -1,27 +1,25 @@
|
||||
package languageCfg
|
||||
|
||||
import "server/gamedata"
|
||||
|
||||
const (
|
||||
CFG_LANGUAGE = "languageData"
|
||||
import (
|
||||
"server/gamedata"
|
||||
"server/msg"
|
||||
)
|
||||
|
||||
const (
|
||||
LANGUAGE_EN = 1
|
||||
LANGUAGE_CN = 2
|
||||
CFG_LANGUAGE = "languageData"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gamedata.InitCfg(CFG_LANGUAGE)
|
||||
}
|
||||
|
||||
func GetLanguage(lang int, key string) string {
|
||||
func GetLanguage(lang msg.LANG_TYPE, key string) string {
|
||||
data, err := gamedata.GetDataByKey(CFG_LANGUAGE, key)
|
||||
if err != nil {
|
||||
return key
|
||||
}
|
||||
switch lang {
|
||||
case LANGUAGE_EN:
|
||||
case msg.LANG_TYPE_LANG_EN:
|
||||
return gamedata.GetStringValue(data, "English")
|
||||
default:
|
||||
return key
|
||||
|
||||
@ -6,6 +6,7 @@ import (
|
||||
languageCfg "server/conf/language"
|
||||
"server/game/mod/item"
|
||||
"server/gamedata"
|
||||
"server/msg"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@ -70,32 +71,38 @@ func GetTriggerMail() []*TriggerMail {
|
||||
return ret
|
||||
}
|
||||
|
||||
func GetRecallMail(Lang int, Title, ItemName string) (string, string) {
|
||||
func GetRecallMail(Title, ItemName, TitleEn, ItemNameEn string) (string, string, string, string) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_MAIL, 12)
|
||||
if err != nil {
|
||||
return "", ""
|
||||
return "", "", "", ""
|
||||
}
|
||||
mt := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Content"))
|
||||
return fmt.Sprintf(mt, Title), fmt.Sprintf(mc, Title, ItemName)
|
||||
mt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Content"))
|
||||
return fmt.Sprintf(mt, Title), fmt.Sprintf(mc, Title, ItemName), fmt.Sprintf(mt_en, TitleEn), fmt.Sprintf(mc_en, Title, ItemNameEn)
|
||||
}
|
||||
|
||||
func GetChargeSendMail(Lang int, PlayerName string) (string, string) {
|
||||
func GetChargeSendMail(PlayerName string) (string, string, string, string) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_MAIL, MAIL_CHARGE_SEND_ID)
|
||||
if err != nil {
|
||||
return "", ""
|
||||
return "", "", "", ""
|
||||
}
|
||||
mt := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Content"))
|
||||
return mt, fmt.Sprintf(mc, PlayerName)
|
||||
mt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Content"))
|
||||
return mt, fmt.Sprintf(mc, PlayerName), mt_en, fmt.Sprintf(mc_en, PlayerName)
|
||||
}
|
||||
|
||||
func GetChargeReceiveMail(Lang int, PlayerName string, Content string) (string, string) {
|
||||
func GetChargeReceiveMail(PlayerName string, Content string) (string, string, string, string) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_MAIL, MAIL_CHARGE_RECEIVE_ID)
|
||||
if err != nil {
|
||||
return "", ""
|
||||
return "", "", "", ""
|
||||
}
|
||||
mt := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Content"))
|
||||
return fmt.Sprintf(mt, PlayerName), fmt.Sprintf(mc, Content)
|
||||
mt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Content"))
|
||||
return fmt.Sprintf(mt, PlayerName), fmt.Sprintf(mc, Content), fmt.Sprintf(mt_en, PlayerName), fmt.Sprintf(mc_en, Content)
|
||||
}
|
||||
|
||||
@ -475,6 +475,8 @@ type SqlServerMailStruct struct {
|
||||
Id int `db:"mail_id"`
|
||||
Title string `db:"title"`
|
||||
Content string `db:"content"`
|
||||
TitleEn string `db:"title_en"`
|
||||
ContentEn string `db:"content_en"`
|
||||
Items string `db:"items"`
|
||||
Start_time int64 `db:"start_time"`
|
||||
Register_time int64 `db:"register_time"`
|
||||
|
||||
@ -15,12 +15,7 @@ import (
|
||||
|
||||
// 活动模块 登录
|
||||
func ActivityLogin(p *Player) {
|
||||
|
||||
ItemMod := p.PlayMod.getItemMod()
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
Lang := BaseMod.GetLang()
|
||||
|
||||
// 挖矿
|
||||
ActivityId := GetActivityId(p, ACT_TYPE_MINING)
|
||||
MiningMod := p.PlayMod.getMiningMod()
|
||||
@ -30,11 +25,7 @@ func ActivityLogin(p *Player) {
|
||||
ItemNum := ItemMod.GetItem(ItemId)
|
||||
if ItemNum != 0 {
|
||||
ItemMod.AddItem(ItemId, -ItemNum)
|
||||
ItemName := itemCfg.GetItemName(ItemId, Lang)
|
||||
ActivityTitle := activityCfg.GetActivityTitle(ActivityId, Lang)
|
||||
mt, mc := mailCfg.GetRecallMail(Lang, ActivityTitle, ItemName)
|
||||
Items := []*item.Item{item.NewItem(ItemId, ItemNum)}
|
||||
MailMod.Send(mt, mc, Items, mail.MAIL_TYPE_NORMAL)
|
||||
SendActivityMail(p, ItemId, ItemNum, ActivityId)
|
||||
}
|
||||
}
|
||||
// 猜颜色
|
||||
@ -46,11 +37,7 @@ func ActivityLogin(p *Player) {
|
||||
ItemNum := ItemMod.GetItem(ItemId)
|
||||
if ItemNum != 0 {
|
||||
ItemMod.AddItem(ItemId, -ItemNum)
|
||||
ItemName := itemCfg.GetItemName(ItemId, Lang)
|
||||
ActivityTitle := activityCfg.GetActivityTitle(ActivityId, Lang)
|
||||
mt, mc := mailCfg.GetRecallMail(Lang, ActivityTitle, ItemName)
|
||||
Items := []*item.Item{item.NewItem(ItemId, ItemNum)}
|
||||
MailMod.Send(mt, mc, Items, mail.MAIL_TYPE_NORMAL)
|
||||
SendActivityMail(p, ItemId, ItemNum, ActivityId)
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,13 +50,18 @@ func ActivityLogin(p *Player) {
|
||||
ItemNum := ItemMod.GetItem(ItemId)
|
||||
if ItemNum != 0 {
|
||||
ItemMod.AddItem(ItemId, -ItemNum)
|
||||
ItemName := itemCfg.GetItemName(ItemId, Lang)
|
||||
ActivityTitle := activityCfg.GetActivityTitle(ActivityId, Lang)
|
||||
mt, mc := mailCfg.GetRecallMail(Lang, ActivityTitle, ItemName)
|
||||
SendActivityMail(p, ItemId, ItemNum, ActivityId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func SendActivityMail(p *Player, ItemId, ItemNum, ActivityId int) {
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
ItemName, ItemNameEn := itemCfg.GetItemName(ItemId)
|
||||
ActivityTitle, ActivityTitleEn := activityCfg.GetActivityTitle(ActivityId)
|
||||
mt, mc, mt_en, mc_en := mailCfg.GetRecallMail(ActivityTitle, ActivityTitleEn, ItemName, ItemNameEn)
|
||||
Items := []*item.Item{item.NewItem(ItemId, ItemNum)}
|
||||
MailMod.Send(mt, mc, Items, mail.MAIL_TYPE_NORMAL)
|
||||
}
|
||||
}
|
||||
MailMod.Send(mt, mc, mt_en, mc_en, Items, mail.MAIL_TYPE_NORMAL)
|
||||
}
|
||||
|
||||
// 活动模块 零点更新
|
||||
|
||||
@ -27,6 +27,8 @@ type ServerMail struct {
|
||||
Id int
|
||||
Title string
|
||||
Content string
|
||||
TitleEn string
|
||||
ContentEn string
|
||||
Items []*item.Item
|
||||
Start_time int64
|
||||
Register_time int64
|
||||
@ -71,6 +73,8 @@ func (r *MailMgr) LoadMail(msg *msg.Msg) (interface{}, error) {
|
||||
Id: v.Id,
|
||||
Title: v.Title,
|
||||
Content: v.Content,
|
||||
TitleEn: v.TitleEn,
|
||||
ContentEn: v.ContentEn,
|
||||
Items: item.ParseItem(items),
|
||||
Start_time: v.Start_time,
|
||||
Register_time: v.Register_time,
|
||||
|
||||
@ -235,10 +235,9 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
}
|
||||
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
mt, mc := mailCfg.GetChargeSendMail(BaseMod.GetLang(), PlayerSimpleData.Name)
|
||||
mt, mc, mt_en, mc_en := mailCfg.GetChargeSendMail(PlayerSimpleData.Name)
|
||||
Items := ChargeItem(p, C.ChargeId)
|
||||
MailId := MailMod.Send(mt, mc, Items, mail.MAIL_TYPE_GIFT)
|
||||
MailId := MailMod.Send(mt, mc, mt_en, mc_en, Items, mail.MAIL_TYPE_GIFT)
|
||||
p.AddLog(m.From, friend.LOG_TYPE_CHARGE_SEND, fmt.Sprintf("%d", MailId))
|
||||
p.PushClientRes(MailMod.BackData())
|
||||
case msg.HANDLE_TYPE_CHARGE_RECEIVE: // 收到好友的感谢信
|
||||
@ -248,9 +247,8 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
}
|
||||
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
mt, mc := mailCfg.GetChargeReceiveMail(BaseMod.GetLang(), PlayerSimpleData.Name, Content)
|
||||
MailId := MailMod.Send(mt, mc, nil, mail.MAIL_TYPE_NORMAL)
|
||||
mt, mc, mt_en, mc_en := mailCfg.GetChargeReceiveMail(PlayerSimpleData.Name, Content)
|
||||
MailId := MailMod.Send(mt, mc, mt_en, mc_en, nil, mail.MAIL_TYPE_NORMAL)
|
||||
p.AddLog(m.From, friend.LOG_TYPE_CHARGE_RECEIVE, fmt.Sprintf("%d", MailId))
|
||||
p.PushClientRes(MailMod.BackData())
|
||||
case msg.HANDLE_TYPE_WISHLIST_SEND: // 发送愿望单请求
|
||||
@ -365,7 +363,7 @@ func SyncMailMsg(p *Player) {
|
||||
continue
|
||||
}
|
||||
MailMod.ServerMail = append(MailMod.ServerMail, v.Id)
|
||||
MailMod.Send(v.Title, v.Content, v.Items, v.Mail_type)
|
||||
MailMod.Send(v.Title, v.Content, v.TitleEn, v.ContentEn, v.Items, v.Mail_type)
|
||||
}
|
||||
}
|
||||
|
||||
@ -911,6 +909,9 @@ func LoignBack(p *Player) {
|
||||
MailMod.Send("Test Players' Refund",
|
||||
`Welcome back to our game!
|
||||
Here comes your refund for your scene progress and payment in test version!
|
||||
Have fun in new version!`, "Test Players' Refund",
|
||||
`Welcome back to our game!
|
||||
Here comes your refund for your scene progress and payment in test version!
|
||||
Have fun in new version!`, Items, mail.MAIL_TYPE_NORMAL)
|
||||
}
|
||||
BaseMod.LoginBack = true
|
||||
|
||||
@ -3942,7 +3942,7 @@ func ReqLang(player *Player, buf []byte) error {
|
||||
req := &msg.ReqLang{}
|
||||
proto.Unmarshal(buf, req)
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
BaseMod.SetLang(int(req.Lang))
|
||||
BaseMod.SetLang(req.Lang)
|
||||
player.PushClientRes(&msg.ResLang{
|
||||
ResultCode: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
|
||||
@ -49,7 +49,9 @@ func (player *Player) MailTrigger(Tr *quest.Trigger) bool {
|
||||
if checkTriggerCondition(player, v.Trigger) {
|
||||
Title := languageCfg.GetLanguage(BaseMod.Lang, v.Title)
|
||||
Content := languageCfg.GetLanguage(BaseMod.Lang, v.Content)
|
||||
MailMod.Send(Title, Content, v.Items, mail.MAIL_TYPE_NORMAL)
|
||||
TitleEn := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, v.Title)
|
||||
ContentEn := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, v.Content)
|
||||
MailMod.Send(Title, Content, TitleEn, ContentEn, v.Items, mail.MAIL_TYPE_NORMAL)
|
||||
MailMod.AddTriggerMail(v.Id)
|
||||
tr = true
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"fmt"
|
||||
"server/GoUtil"
|
||||
baseCfg "server/conf/base"
|
||||
languageCfg "server/conf/language"
|
||||
"server/game/mod/item"
|
||||
"server/msg"
|
||||
)
|
||||
@ -37,7 +36,7 @@ type Base struct {
|
||||
EnergyAD int // 每日看广告获得的能量次数
|
||||
Seed bool
|
||||
Source int // 体力资源
|
||||
Lang int // 语言
|
||||
Lang msg.LANG_TYPE // 语言
|
||||
}
|
||||
|
||||
func (b *Base) InitData(Uid int) {
|
||||
@ -47,9 +46,6 @@ func (b *Base) InitData(Uid int) {
|
||||
if b.NickName == "" {
|
||||
b.NickName = fmt.Sprintf("Player_%d", Uid)
|
||||
}
|
||||
if b.Lang == 0 {
|
||||
b.Lang = languageCfg.LANGUAGE_EN
|
||||
}
|
||||
}
|
||||
|
||||
func (b *Base) Login() {
|
||||
@ -190,11 +186,11 @@ func (b *Base) SetLogoutTime(LogoutTime int64) {
|
||||
b.LogoutTime = LogoutTime
|
||||
}
|
||||
|
||||
func (b *Base) GetLang() int {
|
||||
func (b *Base) GetLang() msg.LANG_TYPE {
|
||||
return b.Lang
|
||||
}
|
||||
|
||||
func (b *Base) SetLang(lang int) {
|
||||
func (b *Base) SetLang(lang msg.LANG_TYPE) {
|
||||
b.Lang = lang
|
||||
}
|
||||
|
||||
@ -220,7 +216,7 @@ func (b *Base) BackData() *msg.BaseInfo {
|
||||
IsFirstBuy: b.IsFirstBuy,
|
||||
EnergyBuy: int32(b.EnergyBuy),
|
||||
EnergyAD: int32(b.EnergyAD),
|
||||
Lang: int32(b.Lang),
|
||||
Lang: b.Lang,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -28,6 +28,8 @@ const (
|
||||
type MailInfo struct {
|
||||
Title string // 邮件标题
|
||||
Content string // 邮件内容
|
||||
TitleEn string // 邮件标题英文
|
||||
ContentEn string // 邮件内容英文
|
||||
Items []*item.Item // 邮件道具
|
||||
Type int //邮件类型
|
||||
Send int64 // 发送时间
|
||||
@ -42,11 +44,13 @@ func (m *MailMod) InitData() {
|
||||
}
|
||||
|
||||
// 发送邮件
|
||||
func (m *MailMod) Send(Title, Content string, Items []*item.Item, t int) int {
|
||||
func (m *MailMod) Send(Title, Content, TitleEn, ContentEn string, Items []*item.Item, t int) int {
|
||||
m.AutoId++
|
||||
m.List[m.AutoId] = &MailInfo{
|
||||
Title: Title,
|
||||
Content: Content,
|
||||
TitleEn: TitleEn,
|
||||
ContentEn: ContentEn,
|
||||
Items: Items,
|
||||
Send: GoUtil.Now(),
|
||||
Type: t,
|
||||
@ -102,6 +106,8 @@ func (m *MailMod) BackData() *msg.ResMailList {
|
||||
Id: int32(k),
|
||||
Title: v.Title,
|
||||
Content: v.Content,
|
||||
TitleEn: v.TitleEn,
|
||||
ContentEn: v.ContentEn,
|
||||
Items: item.ItemToMsg(v.Items),
|
||||
Status: int32(v.Status),
|
||||
Time: int32(v.Send),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user