phorcys/Taiwu_mods

新版本MoveBuilding依旧用不了

Closed this issue · 3 comments

DSLM commented

关闭所有其他mod依旧用不了,具体情况是右键移动时地块地图会突然上移,结束后图像下移回去;然后移动到哪儿鼠标都是显示移动的建筑物的信息;移动目标是练功房
根据(http://nga.178.com/read.php?tid=16056581)此贴回复,大概是我一个人的问题?

地图突然上移或下移的情况,我没有遇过。可能是解晰度问题。

基于电脑反应太慢,在搬移多次之后,
有机会形成资料错误,这第三方插件难于解决。
希望日后官方会加入类似的功能而不用MOD进行。

提示:
 由于不想破坏游戏性,只接受搬动建筑到其他建筑相邻的空地。

 使用右键Drag&Drop到的空地,
 在放开手前,留意目标图示(空地)有没有略为放大,
 如果放大了表示该物件有反应,可以慢慢放下。
 如果一直没有放大,可能是系统的资料已经错乱,最好重新载入。

拖动到目标后异常:

[MoveBuilding] Enter dropablePlace: PlaceImageBack,1097,336,82
[MoveBuilding] Leave dropablePlace : PlaceImageBack,1097,336,82
[MoveBuilding] Enter dropablePlace: PlaceImageBack,1097,336,82
[MoveBuilding] Move building from PlaceImageBack,1097,336,69
[MoveBuilding] To place PlaceImageBack,1097,336,82
KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[System.Int32,System.Collections.Generic.Dictionary`2[System.Int32,System.Collections.Generic.Dictionary`2[System.Int32,System.Int32]]].get_Item (Int32 key) [0x000a8] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:151 
  at MoveBuilding.DraggingObject.OnEndDrag (UnityEngine.EventSystems.PointerEventData eventData) [0x00000] in <filename unknown>:0 
  at UnityEngine.EventSystems.ExecuteEvents.Execute (IEndDragHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00008] in C:\buildslave\unity\build\Extensions\guisystem\UnityEngine.UI\EventSystem\ExecuteEvents.cs:78 
  at UnityEngine.EventSystems.ExecuteEvents.Execute[IEndDragHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) [0x00073] in C:\buildslave\unity\build\Extensions\guisystem\UnityEngine.UI\EventSystem\ExecuteEvents.cs:261 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1) (at C:\buildslave\unity\build\Extensions\guisystem\UnityEngine.UI\EventSystem\ExecuteEvents.cs:265)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMousePress(MouseButtonEventData) (at C:\buildslave\unity\build\Extensions\guisystem\UnityEngine.UI\EventSystem\InputModules\StandaloneInputModule.cs:625)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent(Int32) (at C:\buildslave\unity\build\Extensions\guisystem\UnityEngine.UI\EventSystem\InputModules\StandaloneInputModule.cs:517)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent() (at C:\buildslave\unity\build\Extensions\guisystem\UnityEngine.UI\EventSystem\InputModules\StandaloneInputModule.cs:490)
UnityEngine.EventSystems.StandaloneInputModule:Process() (at C:\buildslave\unity\build\Extensions\guisystem\UnityEngine.UI\EventSystem\InputModules\StandaloneInputModule.cs:254)
UnityEngine.EventSystems.EventSystem:Update() (at C:\buildslave\unity\build\Extensions\guisystem\UnityEngine.UI\EventSystem\EventSystem.cs:377)
 
(Filename: /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs Line: 151)

拖动的物体的UI结构

HomeMapPlace,1097,336,69 | 	RectTransform, CanvasRenderer, Image, HomeBuilding
  HomeMapBack | 	RectTransform, CanvasRenderer, Image
  PlaceImageBack,1097,336,69 | 	RectTransform, PointerEnter
    PlaceImage | 	RectTransform, CanvasRenderer, Image
    PlaceHpBar | 	RectTransform, CanvasRenderer, Image
    PlaceLevelBack | 	RectTransform, CanvasRenderer, Image
      PlaceLevelText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    TimeText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
      TimeIcon | 	RectTransform, CanvasRenderer, Image
      BuildingText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    MakeIcon | 	RectTransform, CanvasRenderer, Image
      MakeTimeText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    ActorIcon | 	RectTransform, CanvasRenderer, Image
      PctIcon | 	RectTransform, CanvasRenderer, Image
        PctText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
      NewMassageIcon | 	RectTransform, CanvasRenderer, Image
        NewMassageText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    PlaceNameText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    BuildingButton | 	RectTransform, CanvasRenderer, Image, Button, PointerClick, DraggingObject

目标的UI结构

HomeMapPlace,1097,336,82 | 	RectTransform, CanvasRenderer, Image, HomeBuilding
  HomeMapBack | 	RectTransform, CanvasRenderer, Image
  PlaceImageBack,1097,336,82 | 	RectTransform, PointerEnter
    PlaceImage | 	RectTransform, CanvasRenderer, Image
    PlaceHpBar | 	RectTransform, CanvasRenderer, Image
    PlaceLevelBack | 	RectTransform, CanvasRenderer, Image
      PlaceLevelText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    TimeText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
      TimeIcon | 	RectTransform, CanvasRenderer, Image
      BuildingText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    MakeIcon | 	RectTransform, CanvasRenderer, Image
      MakeTimeText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    ActorIcon | 	RectTransform, CanvasRenderer, Image
      PctIcon | 	RectTransform, CanvasRenderer, Image
        PctText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
      NewMassageIcon | 	RectTransform, CanvasRenderer, Image
        NewMassageText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    PlaceNameText | 	RectTransform, CanvasRenderer, Text, Outline, SetFont
    BuildingButton | 	RectTransform, CanvasRenderer, Image, Button, PointerClick, DropablePlace

应该是这段代码错误:

if (DateFile.instance.actorsWorkingDate[partId][placeId].ContainsKey(buildingIndex))
{
    DateFile.instance.actorsWorkingDate[partId][placeId][buildingIndex2] = DateFile.instance.actorsWorkingDate[partId][placeId][buildingIndex];
    DateFile.instance.actorsWorkingDate[partId][placeId].Remove(buildingIndex);
}

初步推测是没有检测actorsWorkingDate的索引
确认就是这个bug。已提交修复。

这确有可能出现红字,谢谢修复。