이해도 | 초보자(스크립트 구성요소나 기본문법은 알아요) |
---|---|
게임버전 (JE) | 1.17.1 |
게임버전 (BE) | 관련없음 |
스크립트 버전 | 2.6 |
스크립트 애드온 | 글에 파일 있음 |
새 폴더.zip command /좀비갑옷:
trigger:
set {_염색.%player%} to 1 leather chestplate
colour {_염색.%player%} (0, 161, 16)
give {_염색.%player%} with no nbt named "&a좀비 흉갑" with lore "&4힘: &f+3" and "&c체력: &f+15 " and "&a방어력: &f+1" and "&b이동속도: &f+0.05" to player
set {_염색.%player%} to 1 leather leggings
colour {_염색.%player%} (0, 161, 16)
give {_염색.%player%} with no nbt named "&a좀비 레깅스" with lore "&4힘: &f+3" and "&c체력: &f+5 " and "&a방어력: &f+3" and "&b이동속도: &f+0.05" to players
set {_염색.%player%} to 1 leather boots
colour {_염색.%player%} (0, 161, 16)
give {_염색.%player%} with no nbt named "&a좀비 신발" with lore "&4힘: &f+3" and "&c체력: &f+5 " and "&a방어력: &f+1" and "&b이동속도: &f+0.5" to player
give 1 zombie head with no nbt named "&a좀비 투구" with lore "&4힘: &f+10" and "&c체력: &f+5 " and "&a방어력: &f+1" and "&b이동속도: &f+0.05" to player
every 1 tick:
loop all players:
if loop-player's chestplate is not air:
set {_lore::*} to uncolored lore of loop-player's chestplate
loop {_lore::*}:
if {_lore::%loop-index%} contains "힘":
set {_Strength} to "%{_lore::%loop-index%}%"
replace all "힘" and ":" and " " and "+" with "" in {_Strength}
set {chestplate::%loop-player%::Strength} to {_Strength} parsed as number
if {_lore::%loop-index%} contains "체력":
set {_Health} to "%{_lore::%loop-index%}%"
replace all "체력" and ":" and " " and "+" with "" in {_Health}
set {chestplate::%loop-player%::Health} to {_Health} parsed as number
if {_lore::%loop-index%} contains "방어력":
set {_Defense} to "%{_lore::%loop-index%}%"
replace all "방어력" and ":" and " " and "+" with "" in {_Defense}
set {chestplate::%loop-player%::Defense} to {_Defense} parsed as number
if {_lore::%loop-index%} contains "이동속도":
set {_Speed} to "%{_lore::%loop-index%}%"
replace all "이동속도" and ":" and " " and "+" with "" in {_Speed}
set {chestplate::%loop-player%::Speed} to {_Speed} parsed as number
else:
delete {chestplate::%loop-player%::Strength}
delete {chestplate::%loop-player%::Speed}
delete {chestplate::%loop-player%::Defense}
delete {chestplate::%loop-player%::health}
if loop-player's leggings is not air:
set {_lore::*} to uncolored lore of loop-player's leggings
loop {_lore::*}:
if {_lore::%loop-index%} contains "힘":
set {_Strength} to "%{_lore::%loop-index%}%"
replace all "힘" and ":" and " " and "+" with "" in {_Strength}
set {leggings::%loop-player%::Strength} to {_Strength} parsed as number
if {_lore::%loop-index%} contains "체력":
set {_Health} to "%{_lore::%loop-index%}%"
replace all "체력" and ":" and " " and "+" with "" in {_Health}
set {leggings::%loop-player%::Health} to {_Health} parsed as number
if {_lore::%loop-index%} contains "방어력":
set {_Defense} to "%{_lore::%loop-index%}%"
replace all "방어력" and ":" and " " and "+" with "" in {_Defense}
set {leggings::%loop-player%::Defense} to {_Defense} parsed as number
if {_lore::%loop-index%} contains "이동속도":
set {_Speed} to "%{_lore::%loop-index%}%"
replace all "이동속도" and ":" and " " and "+" with "" in {_Speed}
set {leggings::%loop-player%::Speed} to {_Speed} parsed as number
else:
delete {leggings::%loop-player%::Strength}
delete {leggings::%loop-player%::Speed}
delete {leggings::%loop-player%::Defense}
delete {leggings::%loop-player%::health}
if loop-player's boots is not air:
set {_lore::*} to uncolored lore of loop-player's boots
loop {_lore::*}:
if {_lore::%loop-index%} contains "힘":
set {_Strength} to "%{_lore::%loop-index%}%"
replace all "힘" and ":" and " " and "+" with "" in {_Strength}
set {boots::%loop-player%::Strength} to {_Strength} parsed as number
if {_lore::%loop-index%} contains "체력":
set {_Health} to "%{_lore::%loop-index%}%"
replace all "체력" and ":" and " " and "+" with "" in {_Health}
set {boots::%loop-player%::Health} to {_Health} parsed as number
if {_lore::%loop-index%} contains "방어력":
set {_Defense} to "%{_lore::%loop-index%}%"
replace all "방어력" and ":" and " " and "+" with "" in {_Defense}
set {boots::%loop-player%::Defense} to {_Defense} parsed as number
if {_lore::%loop-index%} contains "이동속도":
set {_Speed} to "%{_lore::%loop-index%}%"
replace all "이동속도" and ":" and " " and "+" with "" in {_Speed}
set {boots::%loop-player%::Speed} to {_Speed} parsed as number
else:
delete {boots::%loop-player%::Strength}
delete {boots::%loop-player%::Speed}
delete {boots::%loop-player%::Defense}
delete {boots::%loop-player%::health}
if loop-player's helmet is not air:
set {_lore::*} to uncolored lore of loop-player's helmet
loop {_lore::*}:
if {_lore::%loop-index%} contains "힘":
set {_Strength} to "%{_lore::%loop-index%}%"
replace all "힘" and ":" and " " and "+" with "" in {_Strength}
set {helmet::%loop-player%::Strength} to {_Strength} parsed as number
if {_lore::%loop-index%} contains "체력":
set {_Health} to "%{_lore::%loop-index%}%"
replace all "체력" and ":" and " " and "+" with "" in {_Health}
set {helmet::%loop-player%::Health} to {_Health} parsed as number
if {_lore::%loop-index%} contains "방어력":
set {_Defense} to "%{_lore::%loop-index%}%"
replace all "방어력" and ":" and " " and "+" with "" in {_Defense}
set {helmet::%loop-player%::Defense} to {_Defense} parsed as number
if {_lore::%loop-index%} contains "이동속도":
set {_Speed} to "%{_lore::%loop-index%}%"
replace all "이동속도" and ":" and " " and "+" with "" in {_Speed}
set {helmet::%loop-player%::Speed} to {_Speed} parsed as number
else:
delete {helmet::%loop-player%::Strength}
delete {helmet::%loop-player%::Speed}
delete {helmet::%loop-player%::Defense}
delete {helmet::%loop-player%::health}
every 1 tick:
loop all players:
set {Strength.%loop-player%} to {helmet::%loop-player%::Strength}+{chestplate::%loop-player%::Strength}+{leggings::%loop-player%::Strength}+{boots::%loop-player%::Strength}
set {Defense.%loop-player%} to {helmet::%loop-player%::Defense}+{chestplate::%loop-player%::Defense}+{leggings::%loop-player%::Defense}+{boots::%loop-player%::Defense}
set {Health.%loop-player%} to {helmet::%loop-player%::Health}+{chestplate::%loop-player%::Health}+{leggings::%loop-player%::Health}+{boots::%loop-player%::Health}
set {Speed.%loop-player%} to ({helmet::%loop-player%::Speed}+{chestplate::%loop-player%::Speed}+{leggings::%loop-player%::Speed}+{boots::%loop-player%::Speed})
set loop-player's max health to {Health.%loop-player%}+10
on damage:
if attacker is player:
if {Strength.%attacker%} is set:
set damage to damage+({Strength.%attacker%})
if victim is player:
if {Defense.%victim%} is set:
set damage to damage/({Defense.%victim%}+0.1)
else:
set damage to damage
every 1 tick:
loop all players:
if {Speed.%loop-player%} is set:
add {Speed.%loop-player%} to walk speed of loop-player
every 1 tick:
loop all players:
if {helmet::%loop-player%::Speed} is not set:
if {chestplate::%loop-player%::Speed} is not set:
if {leggings::%loop-player%::Speed} is not set:
if {boots::%loop-player%::Speed} is not set:
reset walk speed of loop-player
command /방어력:
trigger:
message {Defense.%player%}
command /체력:
trigger:
message ({Health.%player%}+10)
command /힘:
trigger:
message {Strength.%player%}
command /속도:
trigger:
message {Speed.%player%}
어떤 문제인지 모르겠지만 처음엔 괜찮았다가 갑자기 무적이 됩니다. 스피곳이랑 페이퍼 계속 바꿔가면서 서버열어도 둘다 똑같습니다. 사용한 애드온은 모두 넣어놨습니다.
qsef1256
2021.11.29논리 오류로 추정됩니다. 이렇게 긴 코드는 어디가 문제인지 즉시 분석해드릴 수는 없습니다.
돈 주시면 해드리겠지만, 이렇게 긴 코드는 분석에 시간이 좀 걸립니다, 그리고 전 바빠요.문제가 있다고 의심되는 부분의 값을 broadcast 명령어로 띄워보세요. 그게 어디에 문제가 생겼는지 파악하는 디버깅의 시작 점이 될 것입니다.
한양123
2021.11.29on damage:
if attacker is player:
if {Strength.%attacker%} is set:
set damage to damage+({Strength.%attacker%})
if victim is player:
if {Defense.%victim%} is set:
set damage to damage/({Defense.%victim%}+0.1)
지금 가장 의심되는 구문인데 방어력이 설정되고 다시 방어력이 줄어들어도 그대로 유지가 됩니다. 방어력 값이 0이라 표시되지만 적용된 방어력은 전에 적용됬던 방어력으로 적용되는것 같은데 고칠 방법을 도저히 모르겠습니다
qsef1256
2021.12.04그러면 방어력을 적용하는 구문을 살펴보셔야죠. 제대로 방어력이 적용이 안되어서 발생하는 문제로 보여요.