Skocz do zawartości
  • 0

Memory leak w pętlach "while" - bardzo ważne


Pytanie

Hej,


Dzisiaj przypadkiem znalazłem konkretny memory leak.


Gdy wrzucę ten skrypt na swój serwer, po ok. 4 godzinach (zależnie od liczby graczy) wywala on serwer z powodu braku wolnego RAM'u.


Nie trzeba się zastanawiać - to przez pętlę while. Tylko dlaczego? Gdzie popełniłem błąd, że dzieją się takie cuda? Dlaczego skript zapycha mi RAM przez ten skrypt?


Po usunięciu tego skryptu, serwer mógłby działać nawet kilka stuleci. Z tym skryptem zaś, kilka godzin + dłużej, jeśli dodam więcej RAM'u.


Będę wdzięczny za jakieś sugestie ;x



command detector <player>:
trigger:
if sender is console:
if player-argument is in the region "arenabp":
if {skan::%player-argument%} is true:
stop
else:
set {skan::%player-argument%} to true
set {_locx%player-argument%} to x-location of player-argument
set {_licznik%player-argument%} to 0
while {_locx%player-argument%} is x-location of player-argument:
if {_locx%player-argument%} is x-location of player-argument:
if {_licznik%player-argument%} <= 10:
add 1 to {_licznik%player-argument%}
if {_licznik%player-argument%} = 5:
send "&4&lTańcz! Inaczej zostaniesz usunięty z areny!" to player-argument
wait 28 ticks
else:
delete {skan::%player-argument%}
wait 1 tick
kick player-argument due to "&4&lDziwne zachowanie na parkiecie (Cheaty?)"
stop
else:
delete {skan::%player-argument%}
stop
delete {skan::%player-argument%}

Odnośnik do komentarza
https://skript.pl/temat/9542-memory-leak-w-p%C4%99tlach-while-bardzo-wa%C5%BCne/
Udostępnij na innych stronach

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

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ę...