Skocz do zawartości
  • 0

Dlaczego skrypt nie dodaje graczy do zmiennej


Pytanie

Witam.

Tworzę skrypt, który ma dodawać gracza do zmiennej po dołączeniu (a jeśli gracz już w tej zmiennej się znajduje, nie dodaje go ponownie), jednak coś nie działa, a mianowicie w ogóle nie dodaje graczy. Oto kod:

	variables:
    {zweryfikowani.ilosc} = 0
	on join:
    wait 2 seconds
    loop {zweryfikowani::*}:
        if loop-value is player:
            stop loop
            stop
        else:
            add "%player%" to {zweryfikowani::*}
            add 1 to {zweryfikowani.ilosc}
	

Czy wie ktoś, jak to naprawić?

Pozdrawiam i liczę na szybką odpowiedź.

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/
Udostępnij na innych stronach

11 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
variables:
	{zweryfikowani::ilosc} = 0
on join:
	if {zweryfikowani::gracze::*} contain player:
		stop
	else:
		add player to {zweryfikowani::*}
		add 1 to {zweryfikowani::ilosc}

nie lepiej tak?:

variables:
	{zweryfikowani::ilosc} = 0	
on first join:
	add player to {zweryfikowani::*}
	add 1 to {zweryfikowani::ilosc}

 

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/#findComment-193414
Udostępnij na innych stronach

  • 0
2 minuty temu, Rejszpat napisał:

zamień 


add "%player%" to {zweryfikowani::*}

na


add player to {zweryfikowani::*}

 

Nadal nie działa.

 

2 minuty temu, xAxee napisał:

variables:
	{zweryfikowani::ilosc} = 0
on join:
	if {zweryfikowani::gracze::*} contain player:
		stop
	else:
		add player to {zweryfikowani::*}
		add 1 to {zweryfikowani::ilosc}

nie lepiej tak?:


variables:
	{zweryfikowani::ilosc} = 0	
on first join:
	add player to {zweryfikowani::*}
	add 1 to {zweryfikowani::ilosc}

 

Wtedy nie doda graczy, którzy już przedtem wchodzili na serwer.

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/#findComment-193419
Udostępnij na innych stronach

  • 0
2 minuty temu, Ozelot napisał:

Nadal nie działa.

 

Wtedy nie doda graczy, którzy już przedtem wchodzili na serwer.

on join:
    if {zweryfikowani::%player%} is set:
        stop
    else:
        add player to {zweryfikowani::*}

 

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/#findComment-193420
Udostępnij na innych stronach

  • 0
  • player nie równa się "%player%"
  • Nie musisz zatrzymywać pętli jeżeli zatrzymujesz cały kod
  • Nie musisz robić zmiennej z ilością graczy - wystarczy zamiast niej używać - size of {zmienna::*}
  • if loop-value is player:
    	stop loop
    	stop
    else:
    	add "%player%" to {zweryfikowani::*}
    Czyli jeżeli wynik pętli nie jest szukanym graczem to doda tego gracza do zmiennej... Więc jeżeli mamy 10 osób w zmiennej i żadna nie jest naszym graczem to do zmiennej zostanie dodanych 10 nowych wyników.
    loop {zmienna::*}:
    	if loop-value is player:
    		set {_} to true
    		stop loop
    if {_} is true:
    	add player to {zmienna::*}

     

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/#findComment-193421
Udostępnij na innych stronach

  • 0
3 minuty temu, LuckyPotato napisał:
  • player nie równa się "%player%"
  • Nie musisz zatrzymywać pętli jeżeli zatrzymujesz cały kod
  • Nie musisz robić zmiennej z ilością graczy - wystarczy zamiast niej używać - size of {zmienna::*}
  • 
    if loop-value is player:
    	stop loop
    	stop
    else:
    	add "%player%" to {zweryfikowani::*}
    Czyli jeżeli wynik pętli nie jest szukanym graczem to doda tego gracza do zmiennej... Więc jeżeli mamy 10 osób w zmiennej i żadna nie jest naszym graczem to do zmiennej zostanie dodanych 10 nowych wyników.
    
    loop {zmienna::*}:
    	if loop-value is player:
    		set {_} to true
    		stop loop
    if {_} is true:
    	add player to {zmienna::*}

     

Wciąż nie działa.

Kod teraz wygląda tak:

	on join:
    wait 2 seconds
    loop {zweryfikowani::*}:
        if loop-value is player:
            set {_} to true
            stop loop
    if {_} is true:
        add player to {zweryfikowani::*}
        add 1 to {zweryfikowani.ilosc}
	

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/#findComment-193422
Udostępnij na innych stronach

  • 0
on join:
    loop {zweryfikowani::*}:
        if loop-value is name of player:
            set {_} to true
            stop loop
    if {_} is true:
        add name of player to {zweryfikowani::*}

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/#findComment-193423
Udostępnij na innych stronach

  • 0

Mam jeszcze jedno pytanie.

Mam kawałek takiego kodu, który również nie działa:

	 
	            loop all players:
                if player's ip is equal to loop-player's ip:
                        kick player due to " "
	 
	

Ma to działać tak, że gdy gracz jest na serwerze, a drugi gracz wejdzie z jego ip, ma go wyrzucać. Jednak wyrzuca każdego, gracza przy wejściu, ponieważ pętla wykrywa również tego gracza, który wchodzi na serwer i widzi go jako "multikonto". Czy da się dodać tu coś typu "if loop-player is player", aby nie wyrzucało każdego?

Pozdrawiam i liczę na szybką odpowiedź.

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/#findComment-193443
Udostępnij na innych stronach

  • 0

Zbędnie zapętlasz :bankappa: 

on join:
	loop all players:
		if ip of loop-player is ip of player:
			if loop-player is not player:
				kick loop-player due to "" #możliwe, że nie loop-player tylko player, bo nie wiem kogo chcesz wyrzucić.#

 

Odnośnik do komentarza
https://skript.pl/temat/29361-dlaczego-skrypt-nie-dodaje-graczy-do-zmiennej/#findComment-193450
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ę...