World Event

μ›”λ“œ 이벀트 관리 νŽ˜μ΄μ§€ 🚩

μ›”λ“œ 관리 νŽ˜μ΄μ§€μ—μ„œ 우츑 μƒλ‹¨μ˜ πŸ”½λ“œλ‘­λ‹€μš΄μ„ 눌러, μ›”λ“œ 이벀트 섀정을 μ„ νƒν•΄μš”.

πŸš©μ›”λ“œ 이벀트 μ„€μ • νŽ˜μ΄μ§€μ—μ„œ μ›”λ“œ 이벀트λ₯Ό λ“±λ‘ν•˜κ±°λ‚˜ νŽΈμ§‘ν•  수 있고, λ“±λ‘ν•œ μ›”λ“œ 이벀트의 λͺ©λ‘κ³Ό μΌμ •μ˜ 기둝 내역을 확인할 수 μžˆμ–΄μš”.

λ“±λ‘λœ λ°μ΄ν„°μ˜ μ΄ˆκΈ°κ°’ μ˜μ—­μ— 마우슀λ₯Ό ν˜Έλ²„πŸ–±οΈν•˜λ©΄ 전체 λ‚΄μš©μ„ 확인할 수 μžˆμ–΄μš”.

μ›”λ“œ 이벀트 데이터 πŸ—ƒοΈ

데이터 등둝

μ›”λ“œ 이벀트의 λ°μ΄ν„°λŠ” μ›”λ“œ 이벀트 μ„€μ • νŽ˜μ΄μ§€μ—μ„œ 우츑 μƒλ‹¨μ˜ βž• λ“±λ‘ν•˜κΈ° λ²„νŠΌμ„ 눌러 등둝할 수 μžˆμ–΄μš”.

μ›”λ“œ μ΄λ²€νŠΈλŠ” 곡지사항 νƒ€μž… λ˜λŠ” 데이터 νƒ€μž…μœΌλ‘œ 등둝할 수 μžˆμ–΄μš”.

데이터 νƒ€μž…κ°’ νƒ€μž…μš©λ„μ΄ˆκΈ°κ°’

곡지사항

string

곡지사항, 점검 λ©”μ‹œμ§€ λ“± λ‹¨μˆœ λ¬Έμžμ—΄ 좜λ ₯

μ—†μŒ

데이터

number string bool

κ²½ν—˜μΉ˜ 배율, νŠΉμ • μ΄λ¦„μ˜ NPC μ°ΎκΈ°, λ˜μ „ 개방 μ—¬λΆ€ λ“± κ²Œμž„ 데이터

μ„€μ • ν•„μš”

데이터 이름은 μ˜μ–΄/숫자/μ–Έλ”λ°”λ§Œ μž…λ ₯ κ°€λŠ₯ν•˜λ©°, 데이터 κ°’ νƒ€μž…μ— 따라 μž…λ ₯ν•  수 μžˆλŠ” λ‚΄μš©μ€ μ•„λž˜μ™€ κ°™μ•„μš”.

  • number : μ‹€μˆ˜, μ •μˆ˜, μ–‘μˆ˜, 음수 μž…λ ₯ κ°€λŠ₯ (숫자 κΈ°μ€€ μ΅œλŒ€ 20자)

  • string : ν•œκΈ€/μ˜μ–΄/숫자/언더바 μž…λ ₯ κ°€λŠ₯ (ν•œκΈ€ κΈ°μ€€ μ΅œλŒ€ 20)

  • bool : true / false 쀑 선택 κ°€λŠ₯

데이터 μ‚­μ œ

데이터 이름 μ˜μ—­μ„ ν΄λ¦­ν•˜λ©΄ 좜λ ₯λ˜λŠ” μ›”λ“œ 이벀트 관리 νŒμ—…μ—μ„œ μ‚­μ œ λ²„νŠΌμ„ ν΄λ¦­ν•΄μ„œ μ§€μšΈ 수 μžˆμ–΄μš”.

데이터 μˆ˜μ •

데이터 이름 μ˜μ—­μ„ ν΄λ¦­ν•˜λ©΄ 좜λ ₯λ˜λŠ” μ›”λ“œ 이벀트 관리 νŒμ—…μ—μ„œ μ›ν•˜λŠ” 값을 μˆ˜μ • 후에 μˆ˜μ • λ²„νŠΌμ„ ν΄λ¦­ν•΄μ„œ μ μš©ν•  수 μžˆμ–΄μš”.

μ›”λ“œ 이벀트 λ°μ΄ν„°μ˜ 일정 관리 πŸ“…

λ°μ΄ν„°μ˜ 일정 μ„€μ • λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ 좜λ ₯λ˜λŠ” 일정 μ„€μ • νŒμ—…μ—μ„œ 일정을 μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œ, νŽΈμ§‘ν•  수 μžˆμ–΄μš”.

λ“±λ‘λœ μΌμ •μ˜ κ°’ μ˜μ—­μ— 마우슀λ₯Ό ν˜Έλ²„πŸ–±οΈν•˜λ©΄ 전체 λ‚΄μš©μ„ 확인할 수 μžˆμ–΄μš”.

일정 등둝

일정 μ„€μ • νŒμ—…μ—μ„œ 우츑 μƒλ‹¨μ˜ βž• 일정등둝 λ²„νŠΌμ„ 눌러 일정을 μΆ”κ°€ν•  수 μžˆμ–΄μš”.

[데이터 νƒ€μž…μ˜ 일정]

데이터 νƒ€μž…μ˜ 일정을 λ“±λ‘ν•˜λ©΄ μ„€μ •ν•œ μ‹œμž‘μΌ~μ’…λ£ŒμΌ μ•ˆμ—μ„œ 적용 μš”μΌμ˜ μ‹œμž‘μ‹œκ°„μ΄ λμ„λ•Œ μ„€μ •ν•œ 값이 적용되고, ν•΄μ œμ‹œκ°„μ΄ 되면 μ΄ˆκΈ°κ°’μœΌλ‘œ λ³΅κ΅¬λΌμš”.

예λ₯Ό λ“€μ–΄ ExpRate의 μ΄ˆκΈ°κ°’μ„ 1둜 μ„€μ •ν•œ λ‹€μŒ, 2024. 08. 01 ~ 2024. 08. 31 ν† /μΌμš”μΌ μ˜€ν›„ 02:00 ~ μ˜€ν›„ 04:00으둜 일정을 λ“±λ‘ν•˜λ©΄ μ˜€ν›„ 02:00κ°€ 됐을 λ•Œ ExpRate의 값은 2둜 λ³€κ²½λ˜κ³  μ˜€ν›„ 04:00κ°€ 되면 μ΄ˆκΈ°κ°’μΈ 1둜 λ³΅κ΅¬λΌμš”.

πŸ’‘ 데이터 νƒ€μž…μ€ 일정을 λ“±λ‘ν•˜κ±°λ‚˜ λ‚ μ§œ/μš”μΌ/μ‹œκ°„μ„ νŽΈμ§‘ν•  λ•Œ, 이미 λ“±λ‘λœ 일정과 λ‚ μ§œλ‚˜ μš”μΌ, μ‹œκ°„μ΄ κ²ΉμΉ˜λŠ”κ²Œ 있으면 등둝할 수 μ—†μ–΄μš”.

데이터 κ°’ νƒ€μž…μ— 따라 μž…λ ₯ν•  수 μžˆλŠ” λ‚΄μš©μ€ μ•„λž˜μ™€ κ°™μ•„μš”.

  • number : μ‹€μˆ˜, μ •μˆ˜, μ–‘μˆ˜, 음수 μž…λ ₯ κ°€λŠ₯ (숫자 κΈ°μ€€ μ΅œλŒ€ 20자)

  • string : ν•œκΈ€/μ˜μ–΄/숫자/언더바 μž…λ ₯ κ°€λŠ₯ (ν•œκΈ€ κΈ°μ€€ μ΅œλŒ€ 20)

  • bool : true / false 쀑 선택 κ°€λŠ₯

[곡지사항 νƒ€μž…μ˜ 일정]

곡지사항 νƒ€μž…μ˜ 일정은 1회 λ°œμ†‘ν• μ§€, 반볡 λ°œμ†‘ν• μ§€ 선택할 수 μžˆμ–΄μš”.

반볡 섀정이 λΉ„ν™œμ„±ν™”μΈ 경우 μ„€μ •ν•œ μ‹œμž‘μΌμ˜ μ‹œμž‘μ‹œκ°„μ΄ 됐을 λ•Œ 1회 λ°œμ†‘λ˜λ©°, 반볡 섀정이 ν™œμ„±ν™”μΈ 경우 μ„€μ •ν•œ μ‹œμž‘μΌ~μ’…λ£ŒμΌ μ•ˆμ—μ„œ 적용 μš”μΌμ˜ μ‹œμž‘μ‹œκ°„μ΄ 될 λ•Œ λ§ˆλ‹€ λ°œμ†‘λΌμš”.

곡지사항 νƒ€μž…μ€ ν•œκΈ€/μ˜μ–΄/숫자/μ–Έλ”λ°”λ§Œ μž…λ ₯ κ°€λŠ₯ν•΄μš”. (ν•œκΈ€ κΈ°μ€€ μ΅œλŒ€ 20)

일정 μ‚­μ œ

λ°μ΄ν„°μ—μ„œ μ‚­μ œ λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ 좜λ ₯λ˜λŠ” νŒμ—…μ—μ„œ μ‚­μ œ λ²„νŠΌμ„ ν΄λ¦­ν•΄μ„œ μ§€μšΈ 수 μžˆμ–΄μš”.

일정 μˆ˜μ •

λ°μ΄ν„°μ—μ„œ νŽΈμ§‘ λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ 좜λ ₯λ˜λŠ” 일정 νŽΈμ§‘ νŒμ—…μ—μ„œ μ›ν•˜λŠ” 값을 μˆ˜μ • 후에 μˆ˜μ • λ²„νŠΌμ„ ν΄λ¦­ν•΄μ„œ μ μš©ν•  수 μžˆμ–΄μš”.

μ›”λ“œ 이벀트 슀크립트 처리 πŸ“

μ›”λ“œ 이벀트의 데이터와 일정 정보λ₯Ό κ°€μ Έμ˜€κΈ° μœ„ν•œ μ€€λΉ„ ν•¨μˆ˜λ₯Ό μš”μ²­ν•΄μš”.

--Server Scriptμ—μ„œ
Game:RequestWorldEventList() --이 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•΄μ„œ OnGetWorldEventListEventλ₯Ό λ°›μ•„μ•Ό 
                             --μ›”λ“œ 이벀트λ₯Ό μ‚¬μš©ν•  수 μžˆμ–΄μš”.

--μ›”λ“œ 이벀트 섀정이 λλ‚˜κ±°λ‚˜ 정보가 갱신될 λ•Œ ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ˜ˆμš”.
--(이 이벀트λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ RequestWorldEventListλ₯Ό ν˜ΈμΆœν•΄μ•Ό ν•˜λ©°, μ›”λ“œ μ΄λ²€νŠΈμ— λŒ€ν•œ λ‚΄λΆ€ 섀정이 λͺ¨λ‘ λλ‚˜λ©΄ μ΄λ²€νŠΈκ°€ ν˜ΈμΆœλΌμš”.)
--(μ›”λ“œ 이벀트의 데이터λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜, μˆ˜μ •ν•˜λ©΄ λ‹€μ‹œ 호좜될 수 μžˆμ–΄μš”.)
local function GetWorldEventListEvent()
   print("μ›”λ“œμ΄λ²€νŠΈμ˜ μ„ΈνŒ…μ΄ μ™„λ£ŒλΌμ—ˆμ–΄μš”!!")
end
Game.OnGetWorldEventListEvent:Connect(GetWorldEventListEvent)

ν˜„μž¬ μ‹œκ°„μ΄ μ›”λ“œ μ΄λ²€νŠΈμ— λ“±λ‘ν•œ μ–΄λ–€ λ°μ΄ν„°μ˜ 일정이 되면 ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”.

--Server Scriptμ—μ„œ

--ν˜„μž¬ μ‹œκ°„μ΄ μ›”λ“œ μ΄λ²€νŠΈμ— λ“±λ‘ν•œ λ¬Έμžμ—΄ λ°μ΄ν„°μ˜ 일정이 되면 ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”.
local function OnWorldEventString(keyName, keyValue)	
    --keyName으둜 μ–΄λ–€ μ›”λ“œ μ΄λ²€νŠΈμΈμ§€ ꡬ뢄할 수 μžˆμ–΄μš”.
    print(keyName, " : ", keyValue) 
end
Game.OnGetWorldEventString:Connect(OnWorldEventString)


--ν˜„μž¬ μ‹œκ°„μ΄ μ›”λ“œ μ΄λ²€νŠΈμ— λ“±λ‘ν•œ 숫자 λ°μ΄ν„°μ˜ 일정이 되면 ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”.
local function OnWorldEventNumber(keyName, keyValue)
    --keyName으둜 μ–΄λ–€ μ›”λ“œ μ΄λ²€νŠΈμΈμ§€ ꡬ뢄할 수 μžˆμ–΄μš”.
    print(keyName, " : ", keyValue) 
end
Game.OnGetWorldEventNumber:Connect(OnWorldEventNumber)


--ν˜„μž¬ μ‹œκ°„μ΄ μ›”λ“œ μ΄λ²€νŠΈμ— λ“±λ‘ν•œ λΆˆλ¦¬μ–Έ λ°μ΄ν„°μ˜ 일정이 되면 ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”.
local function OnWorldEventBool(keyName, keyValue)
    --keyName으둜 μ–΄λ–€ μ›”λ“œ μ΄λ²€νŠΈμΈμ§€ ꡬ뢄할 수 μžˆμ–΄μš”.
    print(keyName, " : ", keyValue) 
end
Game.OnGetWorldEventBool:Connect(OnWorldEventBool)

데이터 νƒ€μž…μ€ 일정이 λ˜μ§€ μ•Šμ•˜λ”λΌλ„ ν˜„μž¬ 값을 κ°€μ Έμ˜¬ 수 μžˆμ–΄μš”.

--Server Scriptμ—μ„œ

-- 숫자 νƒ€μž…μ˜ 데이터 ν˜„μž¬κ°’ κ°€μ Έμ˜€κΈ°
local expRate = Game:RequestWorldEventNumber("ExpRate")

--μ›”λ“œ μ΄λ²€νŠΈμ— λŒ€ν•œ λ‚΄λΆ€ 섀정이 λλ‚˜μ§€ μ•Šμ•˜μœΌλ©΄ nil이 λ°˜ν™˜λ  수 μžˆμ–΄μš”.
if expRate == nil or expRate == "nil" then
    print("ExpRateκ°€ μ„€μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. : ", expRate)
else
    print("ExpRate : ", expRate)
end


-- λ¬Έμžμ—΄ νƒ€μž…μ˜ 데이터 ν˜„μž¬κ°’ κ°€μ Έμ˜€κΈ°
local findNPCName = Game:RequestWorldEventString("FindNPCName")

--μ›”λ“œ μ΄λ²€νŠΈμ— λŒ€ν•œ λ‚΄λΆ€ 섀정이 λλ‚˜μ§€ μ•Šμ•˜μœΌλ©΄ nil이 λ°˜ν™˜λ  수 μžˆμ–΄μš”.
if findNPCName == nil or findNPCName == "nil" then
    print("FindNPCNameκ°€ μ„€μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. : ", findNPCName)
else
    print("FindNPCName : ", findNPCName)
end


-- λΆˆλ¦¬μ–Έ νƒ€μž…μ˜ 데이터 ν˜„μž¬κ°’ κ°€μ Έμ˜€κΈ°
local isOpenRaidDungeon = Game:RequestWorldEventBool("IsOpenRaidDungeon")

--μ›”λ“œ μ΄λ²€νŠΈμ— λŒ€ν•œ λ‚΄λΆ€ 섀정이 λλ‚˜μ§€ μ•Šμ•˜μœΌλ©΄ nil이 λ°˜ν™˜λ  수 μžˆμ–΄μš”.
if isOpenRaidDungeon == nil or isOpenRaidDungeon == "nil" then
    print("IsOpenRaidDungeonκ°€ μ„€μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. : ", isOpenRaidDungeon)
else
    print("IsOpenRaidDungeon : ", isOpenRaidDungeon)
end    

일정 기둝 πŸ’Ύ

일정 기둝 ν•­λͺ©μ—μ„œ λ“±λ‘ν•˜κ±°λ‚˜ μ‚­μ œν•œ μΌμ •μ˜ 내역을 확인할 수 있으며, μ‚­μ œν•œ 일정은 μ·¨μ†Œμ„ μœΌλ‘œ ν‘œμ‹œλΌμš”.

쒌츑 μƒλ‹¨μ˜ πŸ”½λ“œλ‘­λ‹€μš΄μ„ 눌러 νŠΉμ • λ°μ΄ν„°λ‚˜ 전체 데이터λ₯Ό 확인할 수 μžˆμ–΄μš”.

ν•„ν„°λ₯Ό κΈ°κ°„μœΌλ‘œ μ„€μ •ν•˜λ©΄ μΌμ •μ˜ μ‹œμž‘μΌ~μ’…λ£ŒμΌ μ•ˆμ—μ„œ λͺ©λ‘μ΄ 좜λ ₯되고, 기둝 μ‹œκ°„μœΌλ‘œ μ„€μ •ν•˜λ©΄ νŠΉμ • μ‹œκ°„μ— 기둝된 일정 λͺ©λ‘μ΄ 좜λ ₯λΌμš”.

기둝의 κ°’ μ˜μ—­μ— 마우슀λ₯Ό ν˜Έλ²„πŸ–±οΈν•˜λ©΄ 전체 λ‚΄μš©μ„ 확인할 수 μžˆμ–΄μš”.

Last updated