Wybacz @Saanjuk ale Twój kod ma dwa małe błądy.
W utworzeniu kodu sprawdzasz utworzony kod czy nie został wcześniej wygenerowany, i nawet jeżeli nie był wygenerowany to drugi raz i tak go generuje.
set {_code} to random 6 char string from `a-Z0-9` #Tworzysz kod
if {vouchers::*} contains {_code}: #Sprwadzasz go
send "&c&lBłąd! &cTaki kod został już utworzony!" #Wysylasz blad i generujesz nowy
send "&eGeneruje nowy kod..."
set {_code} to random 6 char string from `a-Z0-9` #Ale jezeli go nie bylo to i tak generujesz nowy ktory i tak moze sie powtorzyc
A drugi błąd to taki, że w ogóle nie usuwasz zmiennych co zapełnia bazę danych i zabiera miejsce na dysku.
Po co przetrzymywać kod w takiej postaci?
{vouchers:1} = 123456
{vouchers::123456::1} = "VIP"
{vouchers::123456::2} = "expired".
Można to po prostu zrobić w {vouchers::%kod%"} = "ranga".
I jak się to wykorzysta to kasować zmienną. A że drugi raz powtórzy się ten sam kod jak ktoś go wykorzysta to nic nie znaczy o niczym nie świadczy.
Patrząc z drugiej strony, to gdy wykorzystamy wszystkie możliwości tworzenia kodu i skrypt nie może stworzyć nowego kodu? Zrobiłeś obejście który napisałem w punkcie pierwszym, ale że nie usuwasz zmiennych dalej jest expire w nim i gracz nie mógłby go wykorzystać. A to jest błąd poważny.
Spróbuj zrozumieć to co napisałem i napisz czy mam rację czy się z tym nie zgadzasz.
Pozdrawiam #Knugi
P.S Autorze tematu, mimo że nie napisałem skryptu, to nie myśl że Tobie nie pomagam. Pomagam Tobie uzyskać lepszy skrypt autorstwa pana powyżej oraz pomagam panu wyżej pisać lepsze skrypty.