개인 자료란 (JE)

  서버 커뮤니티

Profile 독서중 대표칭호 없음
Profile

질문하기 스크립트

쿨타임, 효과해제

2020.07.27 조회 수 1735 추천 수 0
이해도 1.16 
게임버전 (JE) 버킷 
게임버전 (BE) 잘 모르겠습니다. 
스크립트 애드온 Skript 2.5-alpha6 (skUnity Downloads) 

안녕하세요! 두 가지 궁금한 것이 생겨서 질문합니다!

우선 첫 번째로f2e0554d2e470633ee8135b4599a7835.png

잘린 부분은 아이템 설명입니다.

on tool change: 를 이용해서 철 검 아이템을 들었을 때 저항 1 효과를 주게 만드는 구문인데요

제가 궁금한 것은 철 검 아이템에서 다른 아이템으로 바꿀 때 그 저항 효과를 없애주는 구문입니다.

전에 질문 드렸을 때 알려주신 

remove resistance from player

위 구문을 이용하면 될 것 같은데 위 구문 앞에 들어가는 구문을 어떻게 써야 할 지 잘 모르겠습니다 ㅠㅠ


두 번째로

efaa3aa818c3fedbfd8d8e14cb86f374.png

철괴를 우 클릭 할 때 위 효과를 주는 스크립트인데 계속 우 클릭을 하면 효과가 중첩 되더라구요 그래서

철괴를 우 클릭 할 때 한 번 우 클릭하고 쿨타임을 주는 구문을 알고싶습니다.

3개의 댓글

스크립터브혼
2020.07.27
on tool change:
    if tool is iron pickaxe:
        apply potion of blindness of tier 1 to player for 100 tick
    else:
        remove blindness from player

1. 조건문을 활용하면 됩니다.


on unload:
	delete {cooltime::*}
on right click:
	tool is iron ingot
	if {cooltime::%player%} is not set:
		set {cooltime::%player%} to now
		send "실행 - %{cooltime::%player%}%"
	else:
		set {_cooltime} to difference between {cooltime::%player%} and now
		if {_cooltime} >= 5 seconds:
			set {cooltime::%player%} to now
			send "실행 - %{_cooltime}%"
		else:
			send "쿨타임 - %{_cooltime}%"

2. 현재 시간을 표현하는 [now]와 두 값의 차이를 구하는 [Difference]를 사용합니다.
스킬을 사용할 때의 시간을 저장해 두고, 다시 스킬을 사용할 때 저장된 시간과 현재 시간의 차이값을 구하여 지정된 시간(예문에선 5초) 보다 작으면 쿨타임이고, 크면 실행하도록 작성하시면 됩니다.
여러 이벤트에서 저장된 값을 사용하므로 전역변수를 사용해야하고, 계속 유지할 필요가 없는 변수이므로 서버가 종료 될 때 모두 지워질 수 있도록 [on Unload] 이벤트에 목록변수를 활용합니다.

독서중
2020.07.27
@스크립터브혼

감사합니다 !! 그런데 혹시

한 가지만 더 질문 드려도 될까요?

내구도를 무한으로 만드는 스크립트를 만들어 보고싶은데

루프구문으로 계속 돌리면서 해당 아이템을 repair 하면 되는건가요??