Skocz do zawartości

KPVP - skrypt na pojedynki 1vs1


KrestoR

Rekomendowane odpowiedzi

Witam chciałbym się podzielić z wami moim pomysłem jaki mi wpadł do głowy, otóż zrobiłem całkiem prosty skrypt na pojedynki 1 vs 1. W skrypcie jest config który też będzie miał znaczne zmiany w przyszłości.

Czym wyróżnia się mój skrypt od innych których jest tu takich od pewnie cholery? Nie wiem, jedyne czym może to przyjmowanie i odrzucanie zaproszeń przez klikniecie w [V] albo [X] i po zakończonej walce, wygrany zostaje teleportowany tam skąd przyjął zaproszenie

Skrypt będzie aktualizowany co jakiś czas, więc to nie jest jego oficjalna wersja 

 

komendy: 

/1v1 wyzwij [nick gracza] - wyzywa podanego gracza na pojedynek (musi być ten gracz online)

/1v1 ustaw - ustawia lokalizacje areny, tam gdzie stoi gracz

Wymagania:

Skript 2.7+

Aktualizacje:

1.0 - Pierwsze wydanie

Edytowane przez KrestoR
Odnośnik do komentarza
Udostępnij na innych stronach

Chyba jakoś tak...
 

		set {_time} to 5
					loop {_time} time:
						send "%{_time}% sek." to player #arg-1, arg-2, attacker 
						set {_time} to {_time} -1
						wait 1 seconds
					send "GO!" to player #arg-1, arg-2
		#lub

		set {_time} to 5
					loop {_time} time:
						send subtitle "%{_time}% sek." to player #arg-1, arg-2
						set {_time} to {_time} -1
						wait 1 seconds
					send subtitle "GO!" to player #arg-1, arg-2

 

Edytowane przez luk4sMC
Odnośnik do komentarza
Udostępnij na innych stronach

1. Raz używasz list zmiennych, a raz zwykłych zmiennych mimo to, że operujesz na graczach. Użyj samych list zmiennych.

Skoro je używasz, nie muszę ci raczej tłumaczyć dlaczego są lepsze.

2. Zalecam oduczyć się nawyku zagnieżdżania w sobie warunków. Przez takie coś kod jest mniej czytelny.

# Jak ty to robisz:

if arg-1 is set:
	if arg-2 is set:
		if arg-3 is set:
			# Dalszy kod
		else:
			send "Podaj argument nr 3!"
	else:
		send "Podaj argument nr 2!"
else:
	send "Podaj argument nr 1!"		

# Jak ja bym to zrobił:

if arg-1 is not set:
	send "Podaj argument nr 1!"
	stop
if arg-2 is not set:
	send "Podaj argument nr 2!"
	stop
if arg-3 is not set:
	send "Podaj argument nr 3!"
	stop
# Dalszy kod

Widać różnicę, prawda?

3. W skrypcie masz błąd, gdyż żaden kod nie jest przynależny do warunku w 46. linijce.

4. Co do odliczania, Lukas już o tym napisał (chociaż mu się trochę kod rozjechał), ale ja zrobiłbym je w ten sposób.

loop 5 times:
	send "%6 - loop-number%..." to player
	wait 1 second
# Dalszy kod

5. Powinieneś użyć eventu 'on death of player', gdyż w twoim kodzie event będzie wywoływany przy śmierci dowolnego entity.

Tak więc jeżeli na serwer wejdzie gracz o nazwie "sheep", przy śmierci dowolnej owcy kod się wykona dalej.

Nie sprawdzasz również czy 'attacker' w ogóle jest w tym evencie (attacker is set).

6. Zrobiłbym na twoim miejscu coś z tymi nieregularnymi przerwami na początku skryptu, nie są również mile widziane.

Edytowane przez Kormic
Odnośnik do komentarza
Udostępnij na innych stronach

  • Szifter zablokował(a) ten temat
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ę...