Skocz do zawartości
  • 0

doesn't czy don't?


Invictus
 Udostępnij

Pytanie

Witam.

Przy pisaniu skryptów ciągle mam problemy z tymi dwoma wyrażeniami.

Konkretnie chodzi o to, że gdy chcę sprawdzić np jeśli zmienna nie zawiera danego wyrazu, to skrypt kończy działanie.

Ostatni raz miałem ten problem w gildiach:

if {gildie.%{_gildia}%.lider} isn't "%player%":  if {gildie.%{_gildia}%.oficerowie::*} doesn't contain "%player%":    send "&cTylko zalozyciel lub oficerowie mogą ..."    stop<Dalsza czesc skryptu>

W drugim wierszu zawsze wychodzi że nick gracza jest na liście oficerów, chodź tak nie jest.

Próbowałem również z don't, ale też nie działa.

 

W tym przypadku jak przerobiłem kod, to akurat wyszło na lepiej, ale nie zawsze tak jest.

A przerobiłem go tak:

if {gildie.%{_gildia}%.czlonkowie::*} contain "%player%":  send "&cTylko zalozyciel lub oficerowie moga..."  stop<Dalsza czesc skryptu>

No i ten sam gracz co wcześniej nie mógł użyć komendy, ponieważ był na liście czlonkow gildii, a nie oficerow lub zalozycielem.

 

 

Ktoś wie o co z tym chodzi? Bo ja tego rozkminić nie mogę :/

Spędziłem już w chuj czasu na takie sprawdzanie co nie działa, bo niestety skript takich błędów już nie wyłapuje.

Odnośnik do komentarza
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

"is not"

 

Warunek "contain" nie łączy się z "is" ... Przeczytaj dokumentacje, a potem się wypowiadaj.

 

 

 

loop {gildia::oficerowie::*}:    if loop-value is player:        send "Tylko..."    else:        kodzik dalszy

 

Taki sposób odpada, ponieważ piszę skrypty na zasadzie: jeśli coś nie spełnia warunku - skrypt STOP.

Bo w przypadku sposóbu "if-then-else" kod wygląda jak pozioma piramida...

 

A po co powiększać kod jak można go zapisać prościej? Tylko właśnie nie wiem dlaczego nie działa :/

 

Teraz mam problem z tym:

		if arg 1 is "dom" or "baza":			if player has permission "skript.admin":				if arg 2 isn't set:					if {gildie.gracza.%player%} isn't set:						send "{@prefix} &cNie posiadasz gildii. Mozesz wpisac skrot gildii, do ktorej chcesz sie teleportowac."						stop					teleport the player to {gildie.%{gildie.gracza.%player%}%.dom}					send "{@prefix} &aTeleportacja..."					stop				if {gildie.tagi::*} doesn't contain "%arg 2%":					send "{@prefix} &cTaka gildia nie istnieje."					stop				teleport the player to {gildie.%arg 2%.dom}				send "{@prefix} &aTeleportacja..."				stop

Wpisuje byle co jako argument 2, a i tak skrypt próbuje mnie teleportować :/

Próbowałem z "don't" oraz "doesn't"

 

 

 

 

@EDIT:

 

A w tym przypadku działa "don't" i "doesn't"........

	if arg 1 is "asojusz" or "aally"		<inne warunki>		if {gildie.tagi::*} don't contain "%arg 2%":			send "{@prefix} &cTaka gildia nie istnieje."			stop

Ja już tego w ogóle nie ogarniam.

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

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

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