HomeServer/lualib-src/Server-main/AllServer/GameServer/Flowerpot.lua
2024-11-20 15:41:37 +08:00

598 lines
26 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local skynet = require "skynet"
local oo = require "Class"
local log = require "Log"
local pb = require "pb"
local dataType = require "DataType"
local errorInfo = require "ErrorInfo"
local Flowerpot = oo.class()
Flowerpot.OpType_GetAllFlowerpotInfo = 1 --获取花盆信息
Flowerpot.OpType_Flowerpot = 2 --种植
Flowerpot.OpType_Shovel = 3 --铲除
Flowerpot.OpType_Fertilize = 4 --施肥
function Flowerpot:Init()
end
--花盆展示信息
function Flowerpot:Show( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SFlowerpotShow", c2sData.data ))
local data = {}
--先刷新一遍所有花盆信息
self:RefreshFlowerpot( player )
data.flowerpotInfo = self:GetAllFlowerpot( player )
s2cData.cmd = pb.enum("MsgType","CMD_S2C_FlowerpotShow")
s2cData.data = assert(pb.encode("S2CFlowerpotShow", data))
end
--花盆种植
function Flowerpot:Plant( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SFlowerpotPlant", c2sData.data ))
local data = {}
local flowerpotId = c2sData.data.flowerpotId
local goodsType = c2sData.data.goodsType
local goodsId = c2sData.data.goodsId
if not flowerpotId or not goodsType or not goodsId then
s2cData.code = errorInfo.ErrorCode.ErrRequestParam
else
--背包是否有相应的物品 可能种子或植物
local isExistFlowerpot = self:PutHouse( player , flowerpotId , nil )
local isExistGoods = player:IsBuyGoods( goodsType , goodsId )
log.info(string.format("玩家 %d 花盆 准备种植 花盆ID %d 种子ID %d 是否存在花盆 %s 是否存在种子 %s", player.userId , flowerpotId , goodsId , isExistFlowerpot , isExistGoods))
if isExistFlowerpot and isExistGoods then
--播下种子或植物
self:StartPlant( player , flowerpotId , goodsType , goodsId )
else
s2cData.code = errorInfo.ErrorCode.NoExistFlowerpotOrSeed
end
end
data.flowerpotInfo = self:GetAllFlowerpot( player )
s2cData.cmd = pb.enum("MsgType","CMD_S2C_FlowerpotPlant")
s2cData.data = assert(pb.encode("S2CFlowerpotPlant", data))
end
--花盆铲除
function Flowerpot:Shovel( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SFlowerpotShovel", c2sData.data ))
local data = {}
local flowerpotId = c2sData.data.flowerpotId
if not flowerpotId then
s2cData.code = errorInfo.ErrorCode.ErrRequestParam
else
data.flowerpotInfo = {}
for k, v in pairs( player.gameData.flowerpot ) do
--找到指定花盆ID并且没有被种植
if dataType.GoodsType_Flowerpot == v.type and flowerpotId == v.id then
if self:IsGrowUp( v.flowerpotInfo ) then
v.flowerpotInfo.status = dataType.FlowerpotStatus_Empty --成长植物,铲除后就是空盆,植物消失
elseif self:IsRipe( v.flowerpotInfo ) then
v.flowerpotInfo.status = dataType.FlowerpotStatus_Empty --成熟植物,铲除后就是空盆
skynet.server.bag:AddGoods( player , dataType.GoodsType_Plant , v.flowerpotInfo.plantId , 1 ) --植物放背包
if dataType.GoodsType_Seed == v.flowerpotInfo.plantType then
skynet.server.dailyTask:Modify( player , 18 , 1)
skynet.server.achieveTask:Modify( player , 18 , 1 )
end
end
--铲除后还原
v.flowerpotInfo.plantId = 0
v.flowerpotInfo.nextStatusTime = 0
v.flowerpotInfo.startPlantTime = 0 --后面加的
break
end
end
end
data.flowerpotInfo = self:GetAllFlowerpot( player )
s2cData.cmd = pb.enum("MsgType","CMD_S2C_FlowerpotShovel")
s2cData.data = assert(pb.encode("S2CFlowerpotShovel", data))
end
--花盆施肥
function Flowerpot:Fertilize( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SFlowerpotFertilize", c2sData.data ))
local data = {}
local flowerpotId = c2sData.data.flowerpotId
if not flowerpotId then
s2cData.code = errorInfo.ErrorCode.ErrRequestParam
else
data.flowerpotInfo = {}
local cfgSValue = skynet.server.gameConfig.SValue
if not player:MoneyChange( dataType.MoneyType_Volute , -cfgSValue.plantGrowupCost ) then
s2cData.code = errorInfo.ErrorCode.NoEnoughMoney
else
log.info(string.format("玩家 %d 花盆 施肥 花盆ID %d " , player.userId , flowerpotId))
for k, v in pairs( player.gameData.flowerpot ) do
--找到指定花盆ID并且没有被种植
if dataType.GoodsType_Flowerpot == v.type and flowerpotId == v.id then
if dataType.FlowerpotStatus_Seed == v.flowerpotInfo.status or dataType.FlowerpotStatus_Sprout == v.flowerpotInfo.status then
--计算扣除时间,以免重新登录进来会以种植时间算状态
local reduceTime = 0
local curCfgPlant = skynet.server.gameConfig:GetCurPlantCfg( v.flowerpotInfo.plantId )
local growTime = skynet.server.gameConfig.SValue.plantGrowTimeRatio
if dataType.FlowerpotStatus_Seed == v.flowerpotInfo.status then --种子
reduceTime = ( curCfgPlant.coin * growTime[1]) * 60 --((出售价格 * 系数) = 分钟数) * 60秒 = 所需要的秒数
reduceTime = reduceTime + ( curCfgPlant.coin * growTime[2]) * 60
elseif dataType.FlowerpotStatus_Sprout == v.flowerpotInfo.status then --发芽
--reduceTime = ( curCfgPlant.coin * growTime[1]) * 60
reduceTime = reduceTime + ( curCfgPlant.coin * growTime[2]) * 60
end
v.flowerpotInfo.startPlantTime = v.flowerpotInfo.startPlantTime - reduceTime
--种子和发芽切换到花苞状态
v.flowerpotInfo.status = dataType.FlowerpotStatus_Bud
v.flowerpotInfo.nextStatusTime = self:GetNextStatusTime( v.flowerpotInfo.plantId , dataType.FlowerpotStatus_Sprout)
elseif dataType.FlowerpotStatus_Bud == v.flowerpotInfo.status then
self:ModifyRipeFlowerpot( player , v)
end
break
end
end
end
end
data.flowerpotInfo = self:GetAllFlowerpot( player )
s2cData.cmd = pb.enum("MsgType","CMD_S2C_FlowerpotFertilize")
s2cData.data = assert(pb.encode("S2CFlowerpotFertilize", data))
end
--刷新花盆
function Flowerpot:RefreshFlowerpot( player )
for k, v in pairs( player.gameData.flowerpot ) do
if dataType.GoodsType_Flowerpot == v.type and 0 ~= v.flowerpotInfo.startPlantTime then
v.flowerpotInfo.status , v.flowerpotInfo.nextStatusTime = self:GetStatusAndTime( v.flowerpotInfo.plantId , v.flowerpotInfo.startPlantTime)
--直接成熟
if dataType.FlowerpotStatus_Ripe == v.flowerpotInfo.status then
self:ModifyRipeFlowerpot( player , v)
end
end
end
end
--获取当前状态和时间
function Flowerpot:GetStatusAndTime( plantId , startPlantTime )
if 0 == startPlantTime then
return dataType.FlowerpotStatus_Empty , 0
end
local growTime = skynet.server.gameConfig.SValue.plantGrowTimeRatio
local curCfgPlant = skynet.server.gameConfig:GetCurCfg( "Plant" , plantId )
local moneyCount = curCfgPlant.coin
local allTime = 0
--当前状态是种子
local status = dataType.FlowerpotStatus_Seed
local nextStatusTime = startPlantTime + ( moneyCount * growTime[ 1 ]) * 60
for i = 1, 3, 1 do
allTime = allTime + ( moneyCount * growTime[ i ]) * 60
if skynet.GetTime() >= startPlantTime + allTime then
if 1 == i then
--发芽
status = dataType.FlowerpotStatus_Sprout
nextStatusTime = startPlantTime + allTime + ( moneyCount * growTime[ 2 ]) * 60
elseif 2 == i then
--花苞
status = dataType.FlowerpotStatus_Bud
nextStatusTime = startPlantTime + allTime + ( moneyCount * growTime[ 3 ]) * 60
elseif 3 == i then
--成熟
status = dataType.FlowerpotStatus_Ripe
nextStatusTime = 0
end
end
end
return status , nextStatusTime
end
--获取下一个状态的时间
function Flowerpot:GetNextStatusTime( plantId , status )
local growTime = skynet.server.gameConfig.SValue.plantGrowTimeRatio
local nextStatusTime = 0
local curCfgPlant = skynet.server.gameConfig:GetCurPlantCfg( plantId )
if dataType.FlowerpotStatus_Seed == status then --种子
nextStatusTime = skynet.GetTime() + ( curCfgPlant.coin * growTime[1]) * 60 --((出售价格 * 系数) = 分钟数) * 60秒 = 所需要的秒数
elseif dataType.FlowerpotStatus_Sprout == status then --发芽
nextStatusTime = skynet.GetTime() + ( curCfgPlant.coin * growTime[2]) * 60
elseif dataType.FlowerpotStatus_Bud == status then --花苞
nextStatusTime = skynet.GetTime() + ( curCfgPlant.coin * growTime[3]) * 60
end
return nextStatusTime
end
--是否空盆
function Flowerpot:IsEmpty( flowerpotInfo )
if flowerpotInfo.status == dataType.FlowerpotStatus_Empty then
return true
end
return false
end
--是否成长阶段
function Flowerpot:IsGrowUp( flowerpotInfo )
if flowerpotInfo.status >= dataType.FlowerpotStatus_Seed and flowerpotInfo.status <= dataType.FlowerpotStatus_Bud then
return true
end
return false
end
--是否成熟
function Flowerpot:IsRipe( flowerpotInfo )
if flowerpotInfo.status == dataType.FlowerpotStatus_Ripe then
return true
end
return false
end
--生成植物
function Flowerpot:GeneratePlant( seedId )
local data = {}
local cfgSeed = skynet.server.gameConfig.Seed
local cfgPlant = skynet.server.gameConfig.Plant
--仅有植物类型的配置
local cfgOnlyPlant = {}
for k, v in pairs(cfgPlant) do
if dataType.PlantType_Flower == v.type and 125 ~= v.id then --流泉枫不能通过奇异种子种出
table.insert( cfgOnlyPlant , v )
end
end
--检查是否为奇异种子
local isSpecialSeed = false
for k, v in pairs( cfgSeed ) do
if seedId == v.id and 0 == v.ripeId then
isSpecialSeed = true
break
end
end
if isSpecialSeed then
--奇异种子
--奇异种子概率花卉45%、果蔬45%其他特有植物10%)暂时没做,全部生成果蔬
local minIndex = 1
local maxIndex = #cfgOnlyPlant
local randIndex = math.random( minIndex , maxIndex )
if cfgOnlyPlant[ randIndex ] then
log.info(string.format("奇异种子成功获取植物 %d 随机值索引 %d 索引范围( 1 - %d " , cfgOnlyPlant[ randIndex ].id , randIndex, maxIndex))
return cfgOnlyPlant[ randIndex ].id
end
else
--普通种子
--稀有概率5%、罕见概率15%、普通概率80%
local count={}
for i = 1, 3, 1 do
count[i] = 0
end
for k1, v1 in pairs( cfgSeed ) do
if seedId == v1.id then
for k2, v2 in pairs( cfgPlant ) do
if v1.shopType == v2.shopType and v1.ripeId == v2.subType then
table.insert( data , { plantId = v2.id , quality = v2.quality , shopType = v2.shopType })
if skynet.server.shop.FlowerpotLevel_Common == v2.quality then
count[1] = count[1] +1
elseif skynet.server.shop.FlowerpotLevel_Special == v2.quality then
count[2] = count[2] +1
elseif skynet.server.shop.FlowerpotLevel_Rare == v2.quality then
count[3] = count[3] +1
end
end
end
end
end
--每种总概率 / 每种总数量
local common = math.floor(8000 / count[1])
local special = math.floor(1500 / count[2])
local rare = math.floor(500 / count[3])
--设置概率
for k, v in pairs( data ) do
if skynet.server.shop.FlowerpotLevel_Common == v.quality then
data[ k ].ratio = common
log.info(string.format("植物 %d 稀有度 %d 概率值 %d", v.plantId , v.quality, v.ratio ))
elseif skynet.server.shop.FlowerpotLevel_Special == v.quality then
data[ k ].ratio = special
log.info(string.format("植物 %d 稀有度 %d 概率值 %d", v.plantId , v.quality, v.ratio ))
elseif skynet.server.shop.FlowerpotLevel_Rare == v.quality then
data[ k ].ratio = rare
log.info(string.format("植物 %d 稀有度 %d 概率值 %d", v.plantId , v.quality, v.ratio ))
end
end
--随机
local rand = math.random(1,10000)
local ratio = 0
for k, v in pairs( data ) do
if 3 == v.shopType then
log.info(string.format("特殊种子成功获取植物 %d 随机值 %d 当前概率值 %d" , v.plantId , rand, ratio))
return v.plantId
else
ratio = ratio + v.ratio
if rand <= ratio then
log.info(string.format("普通种子成功获取植物 %d 随机值 %d 当前概率值 %d" , v.plantId , rand, ratio))
return v.plantId
end
end
end
end
return 1
end
--种到花盆
function Flowerpot:StartPlant( player , flowerpotId , goodsType , seedId )
local flowerpotInfo = {}
for k, v in pairs( player.gameData.flowerpot ) do
--找到指定花盆ID并且没有被种植
if flowerpotId == v.id and dataType.FlowerpotStatus_Empty == v.flowerpotInfo.status then
if dataType.GoodsType_Seed == goodsType then
--播下种子
v.flowerpotInfo.plantId = self:GeneratePlant( seedId )
v.flowerpotInfo.startPlantTime = skynet.GetTime()
v.flowerpotInfo.status , v.flowerpotInfo.nextStatusTime = self:GetStatusAndTime( v.flowerpotInfo.plantId , v.flowerpotInfo.startPlantTime )
--种出水生植物就+1
local cfgGoods = skynet.server.gameConfig:GetPlantCfg( v.flowerpotInfo.plantId )
if dataType.PlantType_AquaticPlant == cfgGoods.type then
skynet.server.levelTask:Modify( player , 53 , 1 )
end
for k, v in pairs( skynet.server.gameConfig.Seed ) do
--只有植物小铺才能完成
if seedId == v.id and skynet.server.shop.FlowerpotShopType_Plant == v.shopType then
skynet.server.levelTask:Modify( player , 46 , 1 )
break
end
end
log.info(string.format("玩家 %d 花盆 开始种植种子 花盆ID %d 花盆状态 %d 植物ID %d 种植时间 %d 下一状态时间 %d", player.userId , flowerpotId , v.flowerpotInfo.status , v.flowerpotInfo.plantId , v.flowerpotInfo.startPlantTime , v.flowerpotInfo.nextStatusTime ))
elseif dataType.GoodsType_Plant == goodsType then
--种下植物
v.flowerpotInfo.status = dataType.FlowerpotStatus_Ripe
v.flowerpotInfo.plantId = seedId
v.flowerpotInfo.nextStatusTime = 0
log.info(string.format("玩家 %d 花盆 开始种植植物 花盆ID %d 花盆状态 %d 植物ID %d ", player.userId , flowerpotId , v.flowerpotInfo.status , v.flowerpotInfo.plantId ))
end
v.flowerpotInfo.plantType = goodsType --记录下种植类型
table.insert( flowerpotInfo , v )
--删除种子或者植物buy
skynet.server.bag:RemoveGoods( player , goodsType , seedId , 1)
break
end
end
return flowerpotInfo
end
--花盆放置房间
function Flowerpot:PutHouse( player , flowerpotId , furnitureInfo )
local isExistFlowerpot = false
for k1, v1 in pairs( player.gameData.flowerpot ) do
--花盆已经存在,找到对应的花盆
if flowerpotId == v1.id then
isExistFlowerpot = true
local houseId = player.gameData.curHouseID
local schemeId = player.gameData.house[ houseId ].curSchemeId
--找一下是否有该房间和方案的位置信息
local isExistNowPos = false
for k2, v2 in pairs( v1.nowPos) do
if houseId == v2.houseId and schemeId == v2.schemeId then
isExistNowPos = true
break
end
end
--没有该房间和方案的位置信息,就初始化个位置信息
if not isExistNowPos then
--初始化花盆
if nil == furnitureInfo then
table.insert( v1.nowPos , { houseId = houseId , schemeId = schemeId , x = 10000, y = 10000 , isPutInFurniture = false } )
else
local nowPos = furnitureInfo.nowPos
table.insert( v1.nowPos , { houseId = houseId , schemeId = schemeId , x = nowPos.x , y = nowPos.y , isPutInFurniture = furnitureInfo.isPutInFurniture } )
end
end
break
end
end
if not isExistFlowerpot then
--花盆列表中没有花盆,看背包有不朋,有就就初始化一个
local flowerpotType = dataType.GoodsType_Flowerpot
if player:IsBuyGoods( flowerpotType , flowerpotId ) then
--获取当前房间数据
local houseId = player.gameData.curHouseID
local schemeId = player.gameData.house[ houseId ].curSchemeId
--初始化花盆
if nil == furnitureInfo then
furnitureInfo = {}
furnitureInfo.nowPos = {}
table.insert( furnitureInfo.nowPos , { houseId = houseId , schemeId = schemeId , x = 10000, y = 10000 , isPutInFurniture = false } )
else
local nowPos = furnitureInfo.nowPos
furnitureInfo.nowPos = {}
table.insert( furnitureInfo.nowPos , { houseId = houseId , schemeId = schemeId , x = nowPos.x , y = nowPos.y , isPutInFurniture = furnitureInfo.isPutInFurniture} )
end
furnitureInfo.type = flowerpotType
furnitureInfo.id = flowerpotId
furnitureInfo.rotateType = 0
furnitureInfo.isPutInFurniture = false
furnitureInfo.clickType = 1
furnitureInfo.flowerpotInfo = {}
furnitureInfo.flowerpotInfo.status = dataType.FlowerpotStatus_Empty
furnitureInfo.flowerpotInfo.plantId = 0
furnitureInfo.flowerpotInfo.nextStatusTime = 0
furnitureInfo.flowerpotInfo.startPlantTime = 0 --开始种植时间
table.insert( player.gameData.flowerpot , furnitureInfo )
isExistFlowerpot = true
end
end
return isExistFlowerpot
end
--花盆放置背包
function Flowerpot:PutBag( player , furnitureInfo )
local flowerpotId = furnitureInfo.id
--在花盆列表中检查是否有花盆
for k, v in pairs( player.gameData.flowerpot ) do
if flowerpotId == v.id then
if self:IsRipe( v.flowerpotInfo ) then
skynet.server.bag:AddGoods( player , dataType.GoodsType_Plant , v.flowerpotInfo.plantId , 1 ) --成熟盆植物放背包
--只有种子才能完成该任务
if dataType.GoodsType_Seed == v.flowerpotInfo.plantType then
skynet.server.dailyTask:Modify( player , 18 , 1)
skynet.server.achieveTask:Modify( player , 18 , 1 )
end
end
v.flowerpotInfo.plantId = 0
v.flowerpotInfo.status = dataType.FlowerpotStatus_Empty
v.flowerpotInfo.nextStatusTime = 0
v.flowerpotInfo.startPlantTime = 0
furnitureInfo.flowerpotInfo= {}
furnitureInfo.flowerpotInfo.plantId = 0
furnitureInfo.flowerpotInfo.status = dataType.FlowerpotStatus_Empty
furnitureInfo.flowerpotInfo.nextStatusTime = 0
local houseId = player.gameData.curHouseID
local schemeId = player.gameData.house[ houseId ].curSchemeId
for k1, v1 in pairs( v.nowPos ) do
if houseId == v1.houseId and schemeId == v1.schemeId then
table.remove( v.nowPos , k1)
break
end
end
log.info(string.format("玩家 %d 花盆 %d 放置背包 ", player.userId , flowerpotId ))
return true
end
end
return false
end
--获取当前房间当前方案所有花盆信息
function Flowerpot:GetFlowerpot( player , flowerpotInfo )
local houseId = player.gameData.curHouseID
local schemeId = player.gameData.house[ houseId ].curSchemeId
local furnitureInfo = nil
local isExist = false
for k, v in pairs( flowerpotInfo.nowPos ) do
--当前房间和当前方案下的花盆位置
if houseId == v.houseId and schemeId == v.schemeId then
furnitureInfo = {}
--将当前花盆的基本信息拷贝过来
for k, v in pairs( flowerpotInfo ) do
furnitureInfo[ k ] = v
end
furnitureInfo.furnitureInfo = nil --这个值不传客户端去
furnitureInfo.nowPos = {}
furnitureInfo.nowPos.x = v.x
furnitureInfo.nowPos.y = v.y
furnitureInfo.isPutInFurniture = v.isPutInFurniture or false
break
end
end
--log.info("GetFlowerpot" ,houseId ,schemeId, skynet.server.common:TableToString(furnitureInfo))
return furnitureInfo
end
--获取当前房间当前方案所有花盆信息
function Flowerpot:GetAllFlowerpot( player )
local flowerpotInfo = {}
for k, v in pairs( player.gameData.flowerpot ) do
local temp = self:GetFlowerpot( player , v )
if temp then
table.insert( flowerpotInfo , temp )
--log.info("GetAllFlowerpot" , skynet.server.common:TableToString(temp))
log.info(string.format("玩家 %d 花盆 获取花盆信息 花盆ID %d 状态 %d 植物ID %d 种植时间 %s 下一状态时间 %s " ,
player.userId , temp.id , temp.flowerpotInfo.status , temp.flowerpotInfo.plantId , skynet.server.common:GetStrTime(temp.flowerpotInfo.startPlantTime) , skynet.server.common:GetStrTime(temp.flowerpotInfo.nextStatusTime) ))
end
end
return flowerpotInfo
end
--更新当前房间当前方案花盆位置
function Flowerpot:UpdateFlowerpotPos( player , houseId , schemeId , flowerpotId , x , y , isPutInFurniture )
for k1, v1 in pairs( player.gameData.flowerpot ) do
if flowerpotId == v1.id then
for k2, v2 in pairs( v1.nowPos ) do
if houseId == v2.houseId and schemeId == v2.schemeId then
v2.x = x
v2.y = y
v2.isPutInFurniture = isPutInFurniture
--log.info(string.format("玩家 %d 花盆 更新花盆位置 花盆ID %d 房间ID %d 方案ID %d 坐标( %f , %f ) 是否在其它家具上 %s" , player.basicInfo.userID , flowerpotId ,houseId , schemeId , x , y , isPutInFurniture ))
return true
end
end
end
end
return false
end
--修改花盆为成熟盆
function Flowerpot:ModifyRipeFlowerpot( player , v )
--种出水生植物就+1
local cfgGoods = skynet.server.gameConfig:GetPlantCfg( v.flowerpotInfo.plantId )
if dataType.PlantType_AquaticPlant == cfgGoods.type then
player.gameData.aquaticPlantCount = player.gameData.aquaticPlantCount + 1
end
player.gameData.plantCount = player.gameData.plantCount + 1
v.flowerpotInfo.status = dataType.FlowerpotStatus_Ripe
v.flowerpotInfo.nextStatusTime = 0 --成熟后,没有下一个状态
v.flowerpotInfo.startPlantTime = 0
skynet.server.illustration:Add( player , dataType.GoodsType_Plant , v.flowerpotInfo.plantId )
skynet.server.levelTask:Modify( player , dataType.GeneralTaskType_HarvestPlant , 1 )
skynet.server.passCheck:Modify( player , 8 , 1 )
end
--检查是否存在花盆位置
function Flowerpot:CheckExistFlowerpot( player )
for k, v in pairs( player.gameData.flowerpot ) do
if not self:IsEmpty( v.flowerpotInfo ) then
--如果有成熟盆,就要新的方案中显示花盆
local houseId = player.gameData.curHouseID
local schemeId = player.gameData.house[ houseId ].curSchemeId
--找一下是否有该房间和方案的位置信息
local isExistNowPos = false
for k2, v2 in pairs( v.nowPos ) do
if houseId == v2.houseId and schemeId == v2.schemeId then
isExistNowPos = true
break
end
end
--没有该房间和方案的位置信息,就初始化个位置信息
if not isExistNowPos then
--初始化花盆
log.info(string.format("玩家 %d 花盆 初始花盆位置 花盆ID %d 房间ID %d 方案ID " , player.basicInfo.userID , v.id , houseId , schemeId ))
table.insert( v.nowPos , { houseId = houseId , schemeId = schemeId , x = 10000, y = 10000 , isBag = false } )
end
end
end
end
skynet.server.flowerpot = Flowerpot
return Flowerpot