애드온 · 모드 자료실

전체보기

모바일 상단 메뉴

본문 페이지

[기타] [모더용] 용병 패널 위치 관련

공개거부
댓글: 8 개
조회: 1884
추천: 3
2026-04-22 07:27:37
저도 용병 패널을 만지던 중이라 아이디어로 하나 올려봅니다.

1. 일전에 요청 게시판에 용병 패널 위치와 해상도 관련 문의 글이 있었는데요.
해상도 변경에 따라 용병 패널의 위치가 바뀌는 문제였죠.
일단 해상도에 따라 패널 등의 객체 위치가 변동 되는 것은 
객체의 위치를 "Rect" 함수로 지정하기 때문입니다.

해상도 변화와 상관 없이 위치를 고정하기 위해서는 "anchor" 함수를 씁니다.
"anchor"는 화면의 좌표를 영역에서 비율로 지정하기 때문에 
해상도가 변해도 같은 위치로 표시해 줍니다.
단 특정 패널에서는 이 "anchor" 함수가 작동 안 할 수도 있습니다.

문제가 되는 용병 패널에서는 "anchor"가 작동은 하지만 
파티 체력바와 용병 체력바를 분리해서 "anchor"를 적용할 수 없습니다.
때문에 "anchor"로 파티 체력바를 고정하면 해상도 변경 시 용병 체력바가 어긋나고
용병 체력바를 고정하면 파티 체력바의 좌표가 어긋날 수 있습니다.
여기까지가 대부분 알고 있는 내용이죠.

그래서 생각을 해본 것이 탈명객님이 배포하신 
용병 미니 체력바를 게임 입장 시 기본으로 표시하고 
이용 빈도가 낮은 파티 체력바는 버튼을 이용해 불러오는 방식입니다.
그리고 각기 다른 패널을 사용하기 때문에 
이미지 겹침으로 문제가 발생될 수 있어
각 패널에서 사용되지 않는 영역은 화면 밖으로 보내버리는 것이죠.

# hireablespanelhd.json
{
  "type"    : "HireablesPanel",
  "name"    : "HireablesPanel",
  "fields"  : {
    "priority": -100,
    "anchor": {"x": 0.536, "y": 0.354}, // 용병 체력바 고정 위치
    "rect": {"x": -4000, "y": 0}, // 파티 체력바 화면 밖으로 밀기
    "nextIconOffset": {"x": 0, "y": 0},
    "summonsUseSecondSet": true,
    "nameAlternationSecondSetY": 0,
    "secondSetPosition": {"x": 4000, "y": 0}, // 파티 체력바를 화면 밖으로 밀어낸만큼 용병 체력바를 끌어 오기
    "nextIconOffsetSecondSet": {"y": -40},
    "tooltipOffset": {"x": 160, "y": 115},
    "baseTransparency": 0.01,
    "mercenaryIconTooltipMouseoverDelay": 300, // 마우스 오버 시 용병 초상화 표시 대기 시간.
    "allyPlayerFontColor": "$FontColorGold",
    "allyNPCFontColor": "$FontColorDarkGrayGold"
  },
  "children": [
    {
      "type"    : "AbstractImageWidget",
      "name"    : "Template",
      "children": [
        {
          "type"  : "TextBoxWidget",
          "name"  : "Name",
          "fields": {
            "anchor": {"x": 1.1, "y": -0.36},
            "style" : {
              "fontColor": "$FontColorGold",
              "pointSize": 24,
              "spacing"  : "$MinimumSpacing",
              "alignment": {"h": "left"}
            }
          }
        },
        {
          "type"  : "TextBoxWidget",
          "name"  : "Counter",
          "fields": {
            "rect" : {"x": 54, "y": -42},
            "style": {
              "pointSize": "$MediumFontSize",
              "spacing"  : "$MinimumSpacing"
            }
          }
        },
        {
          "type"  : "HealthBarWidget",
          "name"  : "Health",
          "fields": {
            "rect": {"y": -30, "width": 120, "height": 20},
            "transparency": 0.8,
            "backgroundTransparency": 0.95,
            "warningHealthPercent": 65,
            "criticalHealthPercent": 30
          }
        }
      ]
    }
  ]
}

# hireablespartypanelhd.json
{
  "type"    : "HireablesPanel",
  "name"    : "HireablesPartyPanel",
  "fields"  : {
    "priority": -100,
    "rect": {"x": 40, "y": 40}, // 파티 체력바 고정 위치. 앵커 생략으로 "x": 0, "y": 0 좌표가 시작점.
    "nextIconOffset": {"y": 140},
    "summonsUseSecondSet": true,
    "nameAlternationSecondSetY": 0,
    "secondSetPosition": {"x": -4000}, // 용병 체력바 화면 밖으로 밀기.
    "nextIconOffsetSecondSet": {"x": 310},
    "tooltipOffset": {"x": 160, "y": 115},
    "baseTransparency": 0.65,
    "mercenaryIconTooltipMouseoverDelay": "$INT_MAX",
    "allyPlayerFontColor": "$FontColorGold",
    "allyNPCFontColor": "$FontColorVeryLightGray"
  },
  "children": [
    {
      "type"    : "AbstractImageWidget",
      "name"    : "Template",
      "children": [
        {
          "type"  : "TextBoxWidget",
          "name"  : "Name",
          "fields": {
            "anchor": {"x": 0, "y": 0},
            "style" : {
              "fontColor": "$FontColorGold",
              "pointSize": "$SmallFontSize",
              "spacing"  : "$MinimumSpacing",
              "alignment": {"h": "left"}
            },
            "rect"  : {"x": 130, "y": 70}
          }
        },
        {
          "type"  : "TextBoxWidget",
          "name"  : "Counter",
          "fields": {
            "rect" : {"x": 105, "y": 70},
            "style": {
              "pointSize": "$MediumFontSize",
              "spacing"  : "$MinimumSpacing",
              "alignment": "$ALHr"
            }
          }
        },
        {
          "type"  : "HealthBarWidget",
          "name"  : "Health",
          "fields": {
            "rect": {"y": 0, "width": 170, "height": 60, "x": 130},
            "transparency": 0.8,
            "backgroundTransparency": 0.95,
            "warningHealthPercent": 65,
            "criticalHealthPercent": 30
          }
        }
      ]
    }
  ]
}

# 게임 입장 시 화면 (파티 체력바가 표시되지 않습니다.)


# 버튼 클릭 시 화면 (버튼 클릭으로 파티 체력바를 표시하거나 숨깁니다.)


# 용병 체력바 아래에 마우스 오버 시 초상화가 표시됩니다.


즐거운 하루 되세요.

# 탈명객님의 승인으로 "Info+" 모듈에 탑재하였습니다. 탈명객님 감사드립니다.
   악군 대응 모듈 페이지에서 다운로드 가능합니다.

Lv53 공개거부

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 게임
  • IT
  • 유머
  • 연예
AD