Skocz do zawartości
  • 0

Obrażenia od wagonika


Pytanie

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
6 minut temu, MikuChan napisał:

Witajcie, chciałbym wiedzieć jak zrobić w skripcie tak, żeby gdy gracz dotyka wagoniku to zadawałoby mu to obrażenia.

Bardzo potrzebne!

Musiałbyś sprawdzać czy w promieniu 1 metra od gracza znajduje się jakikolwiek wagonik. Wtedy zadawałoby mu to obrażenia.

Tutaj trzeba by było również zapisywać graczowi jakąś zmienną, aby nie otrzymywał zbyt często obrażeń.

Możesz w tym skrypcie albo użyć eventu 'on any move' (wymagany dodatek SkQuery), albo periodicala (np. 'every 1 second'). Na twoim miejscu zdecydowanie użyłbym tego pierwszego.

Wtedy zapętlasz wszystkie entity w promieniu 1 metra od gracza (loop all entities in radius 1 around player), sprawdzasz czy 'loop-entity is a minecart' i jeżeli warunek jest spełniony, zadajesz graczowi obrażenia.

Tak jak wspomniałem wcześniej, warto tutaj sobie zrobić jakąś zmienną, aby gracz nie umarł tak od razu (np. set {twojaZmienna::%player%} to now). Przed zadawaniem obrażeń sprawdź w ogóle czy zmienna jest ustawiona i jeżeli jest, sprawdź czy różnica czasu między czasem obecnym (now), a czasem w zmiennej jest większa, bądź równa jednej sekundzie.

Możesz nawet dać '0.5 seconds', powinno również bezproblemowo zadziałać.

EDIT:

Nie zauważyłem, że to zlecenie... :facepalm:

Tak więc koniec końców będzie to wyglądało tak.

on any move:
	loop all entities in radius 1 around player:
		loop-entity is a minecart
		{damagedByMinecart::%player%} is set:
			difference between {damagedByMinecart::%player%} and now is less than 1 second
			stop
		set {damagedByMinecart::%player%} to now
		damage player by 1 hearts

 

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/45495-obra%C5%BCenia-od-wagonika/#findComment-286603
Udostępnij na innych stronach

  • 0

Niestety, to nie działa. Nie wypisuję mi błędów.

Wydaję mi się, że dzięki skript-mirror mogę importować event z kolizjami entity.

Czy znasz może taki event?

 

 

Edytowane przez MikuChan
Odnośnik do komentarza
https://skript.pl/temat/45495-obra%C5%BCenia-od-wagonika/#findComment-286611
Udostępnij na innych stronach

  • 0
1 godzinę temu, MikuChan napisał:

Niestety, to nie działa. Nie wypisuję mi błędów.

Wydaję mi się, że dzięki skript-mirror mogę importować event z kolizjami entity.

Czy znasz może taki event?

 

 

Tak, znam. Jest to VehicleEntityCollisionEvent.

Nie używaj skript-mirror, użyj skript-reflect.

Skrypt nietestowany.

import:
	org.bukkit.event.vehicle.VehicleEntityCollisionEvent
	
on VehicleEntityCollisionEvent:
	event.getEntity() is a player
	event.getVehicle() is a minecart
	{damagedByMinecart::%name of event.getEntity()%} is set:
		difference between {damagedByMinecart::%name of event.getEntity()%} and now is less than 1 second
		stop
	set {damagedByMinecart::%name of event.getEntity()%} to now
	damage event.getEntity() by 1 hearts

 

Odnośnik do komentarza
https://skript.pl/temat/45495-obra%C5%BCenia-od-wagonika/#findComment-286639
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...