HomeServer/lualib-src/Server-main/AllServer/GameServer/Questionnaire.lua

62 lines
2.0 KiB
Lua
Raw Permalink Normal View History

2024-11-20 15:41:09 +08:00
local skynet = require "skynet"
local oo = require "Class"
local log = require "Log"
local pb = require "pb"
local redisKeyUrl = require "RedisKeyUrl"
local sqlUrl = require "SqlUrl"
local dataType = require "DataType"
local json = require "json"
local errorInfo = require "ErrorInfo"
local mail = require "Mail"
local Questionnaire = oo.class()
function Questionnaire:Init()
end
--问卷调查显示
function Questionnaire:Show( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SQuestionnaireShow", c2sData.data ))
local level = player.gameData.level
local data = {}
-- 玩家等级达到35级才可以显示问卷调查
if 35 <= level and not player.gameData.questionnaire.isFinish then
data.canShow = true
else
data.canShow = false
end
s2cData.cmd = pb.enum("MsgType","CMD_S2C_QuestionnaireShow")
s2cData.data = assert(pb.encode("S2CQuestionnaireShow", data))
end
--问卷调查提交
function Questionnaire:Submit( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SQuestionnaireSubmit", c2sData.data ))
local data = {}
data.award ={}
local questionInfos = c2sData.data.questionInfo
-- 遍历问卷 判读玩家是否全部完成
local finish = true
for k , v in pairs(questionInfos) do
for x , y in pairs(v.option) do
-- 如果选项为空 则退出
if not y then
-- 没有回答选项的id
local questionId = v.questionId
finish = false
end
end
end
-- 如果完成了 发放奖励
if finish then
player:MoneyChange(dataType.GoodsType_Volute , 20)
else
s2cData.code = errorInfo.ErrorCode.QuestionnaireNoFinish
end
player.gameData.questionnaire.isFinish = true
s2cData.cmd = pb.enum("MsgType","CMD_S2C_QuestionnaireSubmit")
s2cData.data = assert(pb.encode("S2CQuestionnaireSubmit", data))
end
skynet.server.questionnaire = Questionnaire
return Questionnaire