쿠폰 수량이 1일 때 선택할 수 있어요.
(제한이 없으면 무제한 쿠폰이며,
숫자를 입력하면 정해진 인원 수만큼 사용할 수 있어요)
5
발급(사용)기간
쿠폰을 사용할 수 있는 기간이에요.
(시작 기간이 되어야 사용할 수 있으며,
종료 기간이 되면 사용할 수 없게 됩니다)
3.1 쿠폰 타입 항목에서, 쿠폰 사용 시 지급할 보상의 이름을 추가하고 선택할 수 있어요.
3.2 위에서 선택한 쿠폰 타입은 스크립트에서 보상 지급을 처리하는데 이용됩니다.
4. 쿠폰 수량과 참여 인원을 어떻게 설정하느냐에 따라 아래와 같이 활용할 수 있어요.
쿠폰 수량
참여 인원
동작
활용 예
1
제한없음
동일한 번호로 누구나 사용할 수 있는 쿠폰
오픈 기념 쿠폰
1
n명
번호 1개를 n명까지 사용할 수 있는 선착순 쿠폰
선착순 쿠폰
n개
-
각각의 번호로 사용하는 선착순 쿠폰
선착순 쿠폰
2) 쿠폰 번호 배포하기
1. 쿠폰 정보 목록에서 쿠폰 수량 글자를 클릭해요.
2. 쿠폰 리스트 팝업에서 번호를 확인할 수 있어요.
CSV 다운로드 버튼을 클릭하면 엑셀로 확인하는 것도 가능해요.
3) Script에서 쿠폰 연동하기
3-1) 쿠폰 번호 입력해서 사용
플레이어가 UI 에 쿠폰 번호를 입력하면, 해당 쿠폰을 사용하도록 처리하는 스크립트 예시에요.
ClientScript에서 버튼 클릭시, TextBox의 입력 내용을 서버의 UseCoupon함수로 전달하는 처리를
아래와 같이 구현해요.
local CouponUI = Workspace.CouponUIlocalfunctionInputCoupon()local couponID = CouponUI.Frame.TextBox:GetText() --TextBox의 입력 내용이에요. Game:SendEventToServer("UseCoupon", **couponID**) --서버의 함수를 호출해요.endCouponUI.Frame.UseButton.OnUpEvent:Connect(InputCoupon) --버튼 클릭 이벤트
ServerScript에서 쿠폰의 처리를 아래와 같이 구현해요.
--2. player:UseCoupon 함수에 연결되는 함수에요.localfunctionDoUseCoupon(player,couponReturnData) local state = couponReturnData.State --쿠폰의 상태local couponType = couponReturnData.CouponType --쿠폰의 보상 종류local result = couponReturnData.Result --쿠폰 사용 결과--쿠폰 상태 및 보상if state == Enum.CouponState.Wait thenprint("쿠폰 상태 : 대기")elseif state == Enum.CouponState.Doing thenprint("쿠폰 상태 : 진행")elseif state == Enum.CouponState.Stop thenprint("쿠폰 상태 : 중지")elseif state == Enum.CouponState.End thenprint("쿠폰 상태 : 종료")endprint("쿠폰 보상 타입 : ", couponType)--쿠폰 사용 결과가 Success이면 if result == Enum.CouponResult.Success thenprint("쿠폰을 사용했습니다!") if couponType =="Gold" then player.Gold = player.Gold +1000end--쿠폰 사용 결과가 Exist이면elseif result == Enum.CouponResult.Exist thenprint("이미 사용한 쿠폰입니다!") --이외에는elseprint("유효하지 않은 쿠폰입니다!")endend--1. ClientScript의 버튼 이벤트에서 호출되는 함수에요.localfunctionUseCoupon(player,coupon)--플레이어에게 해당 쿠폰을 사용 처리해요. --(쿠폰 번호, 쿠폰 사용 처리 함수) player:UseCoupon(coupon, DoUseCoupon)endGame:ConnectEventFunction("UseCoupon", UseCoupon)
3-2) 남아 있는 쿠폰 중 하나를 사용
특정 타입의 쿠폰 중 남아있는 쿠폰이 있다면, 플레이어에게 사용 처리되도록 하는스크립트 예시에요.
UseRemainCoupon 함수를 이용해서, 남아있는 쿠폰 중 하나를 사용하도록 할 수 있어요.
플레이어에게 쿠폰을 사용 처리할 수 있도록, ClientScript 에서 Server 함수를 호출해요.
--2. player:UseRemainCoupon 함수에 연결되는 함수에요. -- (3-1 샘플 코드 중, DoUseCoupon 함수와 동일한 방식으로 사용할 수 있어요)localfunctionDoUseCoupon(player,couponReturnData) ...end--1. 특정 상황일 때 ClientScript 에서 호출되는 함수에요.localfunctionUseCoupon(player,couponType)--남아 있는 쿠폰 중 하나를 플레이어에게 사용 처리해요. --(남은 쿠폰을 찾을 쿠폰 타입, 남은 쿠폰 사용 처리 함수) player:UseRemainCoupon(couponType, DoUseCoupon)endGame:ConnectEventFunction("UseCoupon", UseCoupon)
GetRemainCouponCount 함수를 이용해서, 남아있는 쿠폰의 수량을 확인할 수 있어요.
ClientScript 에서 Server 함수를 호출하고, Server 에서 처리된 정보를 받아와요.
local CouponUI = Workspace.ScreenUI-- 1. ClientScript 에서 Server 함수를 호출해요.localfunctionRefresh_CouponCountUI() Game:SendEventToServer("ConfirmRemainCouponCount", "ClearReward")endRefresh_CouponCountUI()-- 4. Server 에서 받은 수량 정보로, UI 를 갱신해요.localfunctionDoRefresh_CouponCountUI(count) CouponUI.Text:SetText(count)endGame:ConnectEventFunction("DoRefresh_CouponCountUI", DoRefresh_CouponCountUI)
ServerScript 에서 남아있는 쿠폰의 수량 정보와 함께 Client 함수를 호출해요.
--3. player:GetRemainCouponCount 함수에 연결되는 함수에요.localfunctionDoGetRemainCouponCount(player,count) local playerID = player:GetPlayerID() Game:SendEventToClient(playerID , "DoRefresh_CouponCountUI", count)end--2. 특정 상황일 때 ClientScript 에서 호출되는 함수에요.localfunctionConfirmRemainCouponCount(player,couponType)--남아있는 쿠폰의 수량을 확인해요. --(확인할 쿠폰 타입, 남은 쿠폰 확인 처리 함수) player:GetRemainCouponCount(couponType, DoGetRemainCouponCount)endGame:ConnectEventFunction("ConfirmRemainCouponCount", ConfirmRemainCouponCount)
이벤트 키 사용법
1) 이벤트 키 생성하기
1. 월드 관리 페이지의 우측 상단 리스트 메뉴에서 이벤트 키 설정 클릭해요.
2. 이벤트 키 설정 페이지는 아래와 같이 구성되어 있어요.
번호
항목
설명
1
등록하기 버튼
등록하기 버튼을 눌러 이벤트 키를 등록할 수 있어요.
2
이벤트 키 정보
등록된 이벤트 키 정보가 표시돼요.
3
이벤트 키 참여 리스트
이벤트 키 참여 유저 리스트가 표시돼요.
2.1 등록된 이벤트 키의 상태는 유효 기간에 따라 달라져요.
번호
상태
설명
1
대기
유효기간 이전일 때의 상태에요.
2
진행
유효기간 일 때의 상태에요.
3
종료
유효기간 이후일 때의 상태에요.
4
중지
관리자의 비활성 설정했을 때의 상태에요.
2.2 이벤트 키 상세 페이지에서는 아래 기능들을 이용할 수 있어요.
① : 이벤트 키 복제
② : (상태 별) 이벤트 키 유효 기간 수정, 이벤트 키 진행 중지
2.3 이벤트에 참여한 유저들을 편리하게 구분하여 확인할 수 있어요.
번호
종류
설명
1
이벤트 키 종류
원하는 종류의 이벤트 키 참여 유저들을 확인할 수 있어요.
2
검색 기준
이벤트 키 참여 유저들의 ID, 쿠폰 중 선택하여 검색할 수 있어요.
3. 이벤트 키 등록 화면은 아래와 같이 구성되어 있어요.
번호
항목
설명
1
이벤트 키
이벤트 키의 이름
(영문, 숫자 20자 이내로 입력해요)
2
참여 수
이벤트에 참여할 유저의 수에요.
(제한이 없으면 모든 유저가 참여 가능하고,
숫자를 입력하면 정해진 인원 수만큼 참여할 수 있어요)
3
유효 기간
이벤트에 참여할 수 있는 기간이에요.
(시작 기간이 되어야 사용할 수 있으며,
종료 기간이 되면 사용할 수 없게 됩니다)
4
설명
해당 이벤트 키에 대한 설명이에요.
(생략 가능합니다)
2) Script에서 이벤트 키 연동하기
ServerScript에서 이벤트 키의 처리를 아래와 같이 구현해요.
--2. player:AddEventKey 함수에 연결되는 함수에요.localfunctionDoEventKey(player,eventKeyReturnData) wait(1)local state = eventKeyReturnData.State --이벤트키의 상태local maxCount = eventKeyReturnData.MaxCount --이벤트키의 최대 인원local useCount = eventKeyReturnData.UseCount --이벤트키의 참여자 수local result = eventKeyReturnData.Result --이벤트키 등록 결과--이벤트키 상태 및 등록 수if state == Enum.EventKeyState.Wait thenprint("이벤트키 상태 : 대기")elseif state == Enum.EventKeyState.Doing thenprint("이벤트키 상태 : 진행")elseif state == Enum.EventKeyState.Stop thenprint("이벤트키 상태 : 중지")elseif state == Enum.EventKeyState.End thenprint("이벤트키 상태 : 종료")endprint("이벤트키 등록 수 : ", useCount, " / ", maxCount)--이벤트키 등록 결과가 Success이면 if result == Enum.EventKeyResult.Success thenprint("이벤트키를 등록했습니다!")--이벤트키 사용 결과가 Exist이면elseif result == Enum.EventKeyResult.Exist thenprint("이미 등록한 이벤트키입니다!")--이외에는elseprint("유효하지 않은 이벤트키입니다!")endend-----------------------------------------------------------------------1. 콜라이더 충돌시 호출되는 함수에요.localfunctionEnterTrigger(self,target)if target ==nilornot target:IsCharacter() thenreturnendlocal player = target:GetPlayer()--이벤트키에 플레이어를 등록 처리해요. --(이벤트키 이름, 이벤트키 등록 처리 함수) player:AddEventKey("EventKeyName", DoEventKey)endBoxCollider.Collision.OnBeginOverlapEvent:Connect(EnterTrigger)