전략게시판

전략게시판 [스튜디오]
식별ID로 벤리스트 + 이외 기타 사용법?
2021.08.17 16:17 조회 : 2322
Lv. 128익스트림트롤 동물 작성자 게시물 더보기
간단한 예시를 들자면은..

1.맵 두개를 만든다 (A맵, B맵)

2.둘 다 같은 저장그룹에 넣는다

(A맵은 플레이어 식별ID를 부여하는 전용방이고,
B맵은 본격적으로 플레이어가 게임을 할 방이라고 치자.)

4.A맵에 들어가면 해당 플레이어에게 식별ID를 부여한다.

ex)
function Game.Rule:OnPlayerJoiningSpawn(player)
local ID = player:GetGameSave('ID')
if ID == nil then
player.user.ID = player.name
end
player:SetGameSave('ID', player.user.ID)
end


5.A맵을 들어가지 않고 B맵을 먼저 들어가면 해당 플레이어는 게임이 불가능한 상태로 만든다.

ex)

local BanList = {}

function Ban()
for k,v in pairs(BanList) do
v:Kill()
end
end

function Game.Rule:OnPlayerJoiningSpawn(player)
if player:GetGameSave('ID') == nil then
table.insert(BanList, player)
--player:Kill()을 안 넣고 벤리스트 테이블에 넣는 이유는
--가끔씩 스크립트가 십혀서 안 먹는 경우가 있음. 여러번 발동해야됨
--Toggle(On)블록 + Blank블록(1초) + 스크립트함수블록(Ban)
--이 세개 블록을 설치해서 1초마다 발동하는 방법이 편해서 사용함
end
end

대충 이런식으로 만들면 플레이맵에 메리트를 줄 수 있는 게 몇 가지인지 생각해봤는데

1.맵 연계
A맵을 깼을 때 식별ID를 주는 방식이면, A맵을 깨야 다음 맵인 B맵을 플레이할 수 있도록 유도 가능
( 위 기능은 단순하게 벤리스트지만, 벤리스트 대신 플레이하지 못하게 하는 다른 여러 방식도 ㄱㅊ)
(맵이 많아지면 (ex)1~10단계맵) ID값 대신 그 맵의 단계를 저장해서 그걸로 체크하는 방법도 ㄱㅊ은듯)

2.벤리스트 상위호환 (이 경우는 거의 없겠지만)
플레이어 이름 대신 ID로 식별해서 벤을 때리는 방식이라 이름을 바꿔도 벤리스트 회피불가

3.기타 이름 관련 저장기능
2번이랑 마찬가지로 이름을 바꿔도 식별ID가 남아있어서
해당 ID 관련 설정들을 언제나 적용가능




사실 쓸사람 거의 없긴 한데

아무튼 있음 좋으니까?

ㅁㄴㅇㄹ 다른분들 뭐 기발한거 있으면 아이디어좀


추천 : 1
댓글을 남기시려면 로그인 해주세요
댓글 : 1
  • 아 그리고 가끔씩 맵 깨지고 발판 사라질 때 루아로 확인할 수 있는 방법 아시는 분 댓글점 Lv. 128익스트림트롤 2021.08.17