-
Notifications
You must be signed in to change notification settings - Fork 0
Mod scripting guide : Event
Sol Lee edited this page Sep 28, 2023
·
8 revisions
본 문서는 이벤트의 모딩에 사용되는 스크립트 파일의 구조를 설명합니다.
해당 항목은 Mod scripting guide : Investment와 중복되는 내용을 담고 있습니다.
스크립트 작성 시 주의해야 할 사항은 다음과 같습니다.
- 0000번 스크립트를 통해 확인 가능한 템플릿이 지켜져야 합니다.
- Lua에서 기본적으로 사용 가능한 라이브러리(math, string 등)를 사용할 수 있습니다.
- API는 적절한 용도에 맞게 사용되어야 합니다. (ex. Event에서 Investment의 API를 사용할 수 없습니다.)
-
같은 카테고리 내 스크립트 파일의 전역변수는 모두 공유됩니다. 따라서, 변수 선언에 다음과 같은 Convention을 권장합니다.
- {VariableName}_{ScriptId}
- ex. Event.1234.lua파일의 n이라는 변수를 사용할 경우, n_1234라는 이름을 권장합니다.
-- Event data
function EventData()
Data = {}
Data.title = 'Title'
Data.flavor_text = 'Flavor text'
Data.message = 'Event message'
Data.period = 0
return Data
end
-- Event occur weight
function Weight()
return 1
end
-- Event start (event effect)
function Start()
end
EventDataStruct = {}
EventDataStruct.EventData = EventData
EventDataStruct.Weight = Weight
EventDataStruct.Start = Start
return EventDataStruct
위 스크립트는 Event.0000.lua파일의 코드입니다.
이후 참조에 용이하도록, 샘플의 목적으로 배치했습니다.
이벤트는 위 스크립트를 수정, 추가하는 것으로 구현됩니다.
각 스크립트를 조금 더 작게 나누어 살펴보도록 하겠습니다.
스크립트 중 EventData 항목입니다.
-- Event data
function EventData()
Data = {}
Data.title = 'Title'
Data.flavor_text = 'Flavor text'
Data.message = 'Event message'
Data.period = 0
return Data
end
Data의 각 속성은 다음과 같은 역할을 수행합니다.
- Data.title
- 이벤트의 제목을 나타냅니다.
- Data.flavor_text
- 이벤트의 플레이버 텍스트를 나타냅니다.
- Data.message
- 이벤트의 효과를 설명하는 텍스트를 나타냅니다.
- Data.period
- 이벤트의 지속 기간을 나타냅니다.
위 속성들과 텍스트 중 period를 제외하면 UI에 노출되는 설명이며, 실제 기능과는 무관합니다.
위 설명들에 맞춰 아래 함수들을 구현해야 이벤트의 추가가 완료됩니다.
-- Event occur weight
function Weight()
return 1
end
Event의 가중치를 지정하는 함수입니다.
상황에 따라 다른 값을 return하는 것으로 가중치를 변동시킬 수 있습니다.
-- Event start (event effect)
function Start()
end
Event가 발생했을 시 미치는 영향을 지정하는 함수입니다.
확률 조정과 같은 효과의 경우, 이벤트가 종료될 시 자동으로 기존 상태로 돌아갑니다.
EventDataStruct = {}
EventDataStruct.EventData = EventData
EventDataStruct.Weight = Weight
EventDataStruct.Start = Start
return EventDataStruct
코드의 마지막에 있는 EventDataStruct및 return구문입니다.
엔진에서 스크립트를 읽어들이기 위해 반드시 필요한 구문으로, 추가적인 편집은 불필요합니다.
다음 문서는 Lua스크립팅에 관련된 샘플 코드를 첨부하고 있습니다.