/// <summary> /// 格子发生了变化 /// </summary> public void ChangeGrid() { //角色死亡,并且登出的时候,会被配置成 -1 if (_ClientData.MapCode < 0) { return; } GameMap gameMap = GameManager.MapMgr.DictMaps[_ClientData.MapCode]; int newGridX = _ClientData.PosX / gameMap.MapGridWidth; int newGridY = _ClientData.PosY / gameMap.MapGridHeight; if (_OldGridPoint.X != newGridX || _OldGridPoint.Y != newGridY) { _OldGridPoint = new Point(newGridX, newGridY); //触发动作 int areaLuaID = gameMap.GetAreaLuaID(_OldGridPoint); if (areaLuaID != _OldAreaLuaID) { if (_OldAreaLuaID > 0) { //执行区域脚本 RunAreaLuaFile(gameMap, _OldAreaLuaID, "leaveArea"); } _OldAreaLuaID = areaLuaID; if (areaLuaID > 0) { //执行区域脚本 RunAreaLuaFile(gameMap, areaLuaID, "enterArea"); } } //在这里移动中拾取物品? //安全区不进行物品拾取检测 ChenXiaojun if (!gameMap.InSafeRegionList(CurrentGrid)) { GameManager.GoodsPackMgr.ProcessClickGoodsPackWhenMovingToOtherGrid(this); } } }