HomeServer/Server/Common/Player/Npc.lua

48 lines
1.7 KiB
Lua
Raw Normal View History

2024-11-20 15:41:09 +08:00
local skynet = require "skynet"
local mysql = require "skynet.db.mysql"
local oo = require "Class"
local cmd = require "GameCmd"
local json =require "json"
local player = require "Player"
local log = require "Log"
local pb = require "pb"
local sqlUrl = require "SqlUrl"
local playerFields = require "PlayerFields"
local redisKeyUrl = require "RedisKeyUrl"
local dyeworkshop = require "DyeWorkShop"
local errorInfo = require "ErrorInfo"
local dataType = require "DataType"
local cluserServer = require "ClusterServer"
local serverId = tonumber(skynet.getenv "serverId")
local Npc = oo.class()
function Npc:Init()
local cfgAllNPCName = skynet.server.gameConfig:GetAllCfg( "NPCName")
for k, v in pairs( cfgAllNPCName ) do
local robotPartnerId = string.format( "Npc_%d" , v.id )
if not skynet.server.personal:IsExistDetailKey( robotPartnerId ) then
--不存在的玩家ID设置到玩家数据中
--skynet.server.personal:SetDetail( robotPartnerId , "userId" , k , "partnerId" , robotPartnerId , "nickName" , v.name )
local initData = {}
initData[ "userId" ] = k
initData[ "partnerId" ] = robotPartnerId
initData[ "nickName" ] = v.name
local packData = skynet.server.common:PackData( initData )
local redisDetailKey = string.format( redisKeyUrl.GameServerPersonalDetail , robotPartnerId )
local curPartnerRedis = skynet.server.redisCenter:GetPartnerRedis( robotPartnerId )
curPartnerRedis:hmset( redisDetailKey , table.unpack( packData ))
end
end
end
--每5秒调一次
function Npc:On5SecTimer()
if not cluserServer:IsGameServer(serverId) then
return
end
end
skynet.server.npc = Npc
return Npc