2014-03-27 6 views
0

나는 약간의 게임을 만들었고 플레이어 이름이 이미 "banlist"에 있는지 확인하고 싶습니다. 이름이 여러 개인 경우 어떻게해야합니까? 예를 들어 나는이 같은 playerlist 있습니다항목이 목록에 있는지 확인하는 방법은 무엇입니까?

PlayerList = {'Player 1', 'Player 2', 'Player 3'} 

을 그리고 몇 선수를 금지하고 게임에 몇 가지 물건을에서 그들을 금지하는 금지 목록에 추가 할 수 있어야합니다. 어떻게해야합니까? 다음과 같이 1 명의 플레이어 이름으로이 작업을 수행 할 수 있습니다.

if (Player_Name ~= 'Player 2') then 
print('Hello!!') 
else 
print('You are banned!') 
end 

하지만 "플레이어 2"에서만 작동합니다. 여러 이름을 어떻게 추가 할 수 있습니까? 이 같은 사용 "또는"하고 싶지 않은 :

if (Player_Name ~= 'Player 2' or Player_Name ~= 'Player 3') then 
print('Hello!!') 
else 
print('You are banned!') 
end 

200 개 이상을 포함 할 수 있습니다 내 목록, 나는 200 "또는"이상 추가하지 않기 때문에. 플레이어가 내가 만든 banlist에 있는지 간단히 확인할 수 있습니까? 예를 들면 :

BanList = {'Player 2', 'Player 3'} 

아마 (이 나던 일 년 OFC)이 같은 당신은 당신의 BanList에있는 모든 항목을 반복하고 그 중 하나가 포함되어 있는지 확인하기 위해 루프를 사용할

if (Player_Name ~= BanList) then 
print('Hello!!') 
else 
print('You are banned!') 
end 
+0

작업이 이미 결정되었으므로 "lua list contains"키워드를 사용하십시오. – user2864740

답변

1

플레이어.

BanList = { 'Player 2', 'Player 3' } 

function isBanned(playerName) 
    for _,name in pairs(BanList) do 
     if name == playerName then 
      return true 
     end 
    end 
    return false 
end 

if isBanned(Player_Name) then 
    print('You are banned!') 
else 
    print('Hello!!') 
end 
+0

질문이 하나 더 있습니다. 어떻게 플레이어를 BanList에 추가 할 수 있습니까? 예를 들어 게임에/을 입력하면 즉각적으로 목록에 추가됩니다. 지금은 목록을 업데이트 할 사람을 추가 할 때마다 게임을 다시 시작해야합니다. Like/ban Player 5 –

+0

'table.insert (BanList, playerName) ' – Mud

+0

이것은 이상합니다. .lua 파일을 게임에서 실행하고 플레이어를 BanList에 추가하면 게임에서 작동하지만 게임을 닫고 다시 시작하면 플레이어가 .lua 파일에 추가되지 않습니다. 목록에 추가하지만 메모장이나 .lua로 내 .lua 파일을 열면 거기에 이름이 추가 된 것을 볼 수 없습니다. 파일에 영구 저장하려면 어떻게해야합니까? –

관련 문제