Skocz do zawartości
  • 0

Antyrelog


Nieaktywny

Pytanie

Witam napisałem se skript na antyrelog i jest problem kiedy bije gracza to cały czas wyskakuje mi walkatxt ( Jestes w walce, nie logaj ! ) A chciałbym żeby to tylko raz wyskoczyło a jak się skończy walka i uderzysz to znowu tylko 1 raz

 

options:

        logo:&7[&6AntyLogout&7]
        ochrona:1 minute
        walkatxt:&4Jestes w walce, nie logaj !
        koniecwalki:&aNie jestes juz w walce, mozesz logac !
        czaswalki:20
        txtlogout:&aGracz &c%player% &awylogowal sie podczas walki !

on first join:
        wait 10 second
        set {ochrona.%player%} to true
        send "{@logo} &aJestes chroniony przez {@ochrona}"
        wait {@ochrona}
        set {ochrona.%player%} to false

on damage:
        victim is player
        attacker is player
        if {ochrona.%victim%} is true:
                cancel event
        if {ochrona.%attacker%} is true:
                cancel event
        else:
                if {inbattle.%victim%} is true:
                        set {walka.%victim%} to {@czaswalki}
                        stop
                send "{@logo} {@walkatxt}" to victim
                set {inbattle.%victim%} to true
                set {walka.%victim%} to {@czaswalki}
                while {walka.%victim%} is more than 0:
                        {walka.%victim%} is not set:
                                stop
                        subtract 1 from {walka.%victim%}
                        wait 1 second
                delete {inbattle.%victim%}
                delete {walka.%victim%}
                send "{@logo} {@koniecwalki}" to victim

on damage:
        victim is player
        attacker is player
        if {ochrona.%victim%} is true:
                cancel event
        if {ochrona.%attacker%} is true:
                cancel event
        else:
                if {inbattle.%attacker%} is true:
                        set {walka.%attacker%} to {@czaswalki}
                        send "{@logo} {@walkatxt}" to attacker
                        stop
                send "{@logo} {@walkatxt}" to attacker
                set {inbattle.%attacker%} to true
                set {walka.%attacker%} to {@czaswalki}
                while {walka.%attacker%} is more than 0:
                        {walka.%attacker%} is not set:
                                stop
                        subtract 1 from {walka.%attacker%}
                        wait 1 second
                delete {inbattle.%attacker%}
                delete {walka.%attacker%}
                send "{@logo} {@koniecwalki}" to attacker

on quit:
        if {inbattle.%player%} is true:
                kill player
                broadcast "{@logo} {@txtlogout}"
                delete {inbattle.%player%}
                delete {walka.%player%}

on death:
        if {inbattle.%player%} is true:
                delete {inbattle.%victim%}
                delete {walka.%victim%}
                delete {inbattle.%attacker%}
                delete {walka.%attacker%}

on join:
        {inbattle.%player%} is set:
                delete {inbattle.%player%}
        {walka.%player%} is set:
                delete {walka.%player%}
Odnośnik do komentarza
https://skript.pl/temat/12664-antyrelog/
Udostępnij na innych stronach

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

  • 0

Dlaczego cały czas wyskakuje? Ponieważ podczas eventu "on damage" sprawdzasz czy ktoś ma ochronę, a jeżeli nie to włączasz mu tryb walki i wysyłasz wiadomość. Potraktujmy to jako pętlę, gdyż gracz cały czas jest atakowany. Każdy atak sprawdza, czy gracz posiada ochronę, jeżeli nie to wykonuje cały skrypt poniżej, między innymi wysłanie wiadomości. Nie mam zamiaru tobie dawać całego rozwiązania, po prostu musisz przerobić warunki.

P.S. masz dwa razy to samo w skrypcie w on damage ;)

Edytowane przez nicku1
Odnośnik do komentarza
https://skript.pl/temat/12664-antyrelog/#findComment-92120
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ę...