플레이어의 체력을 줄이는 함정은 플레이어의 체력을 낮출 수 있는 즐겁고 게임 플레이 요소입니다. 조건부 문을 사용하여 플레이어의 체력을 0으로 설정하면 플레이어의 체력을 0로 설정할 수 있습니다.
함정 설정
이 트랩은 가장 복잡한 이동 기반 도전과 같은 경험에서 특히 잘 작동합니다. 이 단계는 필요한 변수 및 함수를 설정하고 시작하는 것으로 시작합니다. 먼저 코드 상자를 보지 않고 작업을 최대한 많이 수행하십시오.
함정 부품을 생성하고 이름을 지정합니다. 부품에 스크립트를 삽입합니다.
스크립트에 설명 코멘트를 추가한 다음 변수를 사용하여 스크립트의 부모를 참조합니다.
-- 플레이어가 이 부분을 만질 경우 체력을 0으로 설정합니다.local trapPart = script.Parent함수 이름은 onTouch()입니다. 매개 변수는 otherPart입니다.
-- 플레이어가 이 부분을 만질 경우 체력을 0으로 설정합니다.local trapPart = script.Parentlocal function onTouch(otherPart)end함수를 트랩 부품의 Touched 이벤트에 연결하여 부품에 닿는 모든 것을 실행하도록 합니다.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
플레이어 터치 확인
기억하십시오, 매개 변수 otherPart 트랩 부분을 만지는 모든 것을 기록하므로 플레이어의 일부이거나 기본 플레이트인 경우 모두 기록됩니다.
함정이 플레이어를 파괴하지 않고 랜덤 장식 아이템을 파괴하지 않도록 하려면 if/then 문을 사용하여 otherPart 내의 모든 것을 확인하십시오.
특정 개체 찾기
함수 FindFirstChildWhichIsA() 을 사용하여 특정 개체 유형을 검색할 수 있습니다. 이 유형은 아바타 부분을 손으로 만지는 경우에만 트랩을 만지는 플레이어에게 적합하므로 변수를 설정해야 합니다. 변수를 설정해야 합니다.
In onTouch() , type local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- 다른 부품의 부모 개체를 찾습니다.Finds otherPart's parent objectlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Character 의 Humanoid 키를 입력하여 확인하십시오.
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
if 문으로 확인
인간형이 발견된 경우 인간형의 체력을 0으로 설정합니다.
if 문을 사용하여 인간형이 성공적으로 local humanoid에 할당되었는지 확인하십시오.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- 인간형이 발견되었는지 평가합니다.if humanoid thenendendtrapPart.Touched:Connect(onTouch)프린트 문을 추가하고 코드를 확인하십시오.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- 인간형이 발견되었는지 평가합니다.if humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)코드를 실행하고 플레이어가 부품을 만질 때마다 출력을 볼 수 있는지 확인하십시오.
플레이어의 체력 변경
문이 사실이라면 동일한 인간형 변수를 사용하여 플레이어의 체력을 0으로 설정할 수 있습니다.
then 및 end 사이에서 타입 하십시오 humanoid.Health = 0 .
완료된 스크립트local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- 인간형이 발견되었는지 평가합니다.if humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)함정을 테스트하십시오.
요약
이 함정 부는 조건부를 사용하여 인간형 부품을 감지하고 인간형의 건강을 0으로 설정합니다. 이 스크립트는 이전 함정 스크립트의 개선입니다, 그것은 무엇이든 건드리는 개체를 파괴하지 않고 인간형의 건강을 0으로 설정했습니다.
그러나 여전히 몇 가지 결함이 있습니다. 인간은 플레이어가 아닌 캐릭터에서도 발견됩니다. 인간은 플레이할 수 없는 캐릭터에서도 발견됩니다. 스크립트는 플레이어의 체력을 0으로 설정하는 것만 좋습니다. 당신은 체력을 약간