Skocz do zawartości
  • 0

Vouchery z kodem


iYowee

Pytanie

Witam, czy moglby ktos napisac mi vouchery z kodem ktore mozna wygenerowac za pomoca komendy /voucher utworz <ranga> a wykorzystac /voucher <kod> kod zeby skladal sie z 6 losowych liter/cyfer voucher powinien byc jednorazowy i jezeli sie da prosze o to zeby dalo sie utworzyc ich wiecej niz 1 

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/
Udostępnij na innych stronach

18 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0



w domyśle ustawione jest na voucher na 30d jeżeli chcesz to zmienić to podmień w 24 linijce ilość dni

Kod zawiera:.

  • dodawanie kodów /voucher utwórz <ranga>
  • wykorzystywnie kodu: /voucher <kod>
  • blokade wykorzystanych kodów
  • blokadę utworzenia ponownie tego samego kodu (szana mniejsza niż na wygraną 6 w totka ale nie jest to nie możliwe)
  • powiadomienie gdy kod nie istnieje


Czego kod nie zawiera:

  • kod nie potrafi wykryć czy ranga istnieje na serwerze jeżeli się pomylisz w nazwie rangi utworzysz voucher na nieistniejącą rangę i tyle
Edytowane przez Saanjuk
Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343832
Udostępnij na innych stronach

  • 0

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.

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343838
Udostępnij na innych stronach

  • 0
Cytat

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.

UPS :kappa: poprawione
 

Cytat

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.

tutaj spełniam wymóg zleceniodawcy:
 

Cytat

kod zeby skladal sie z 6 losowych liter/cyfer voucher powinien byc jednorazowy

natomiast co do tego:
 

Cytat

gdy wykorzystamy wszystkie możliwości tworzenia kodu i skrypt nie może stworzyć nowego kodu

z samych cyfr przy 6 znakowym kodzie masz 1 000 000 kombinacji
ze znaków alfanumerycznych uwzględniając wielkość znaków możemy ułożyć 44 261 653 680 kombinacji
skrypt wykorzystuje również znajki specjalne takie jak: ()[]|\/. (na takie trafiłem testując a pewnie wykorzystuje nawet więcej)

nie sądzę że istnieje możliwość wykorzystania wszystkich vocherów na pojedynczym serwerze minecraft...


 

Cytat

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

no nie do konca tak... (jak się już czepiać to wszystkiego xD)
Zapisuje go w postaci:
{vouchers::KOD::RANGA}
po wykorzystaniu:
:{vouchers::KOD::expired}

więc przed wykorzystaniem:

{vouchers:1} = 123456

{vouchers::123456::1} = "VIP"

po wykorzystaniu:
{vouchers:1} = 123456

{vouchers::123456::1} = "expired".

Edytowane przez Saanjuk
Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343840
Udostępnij na innych stronach

  • 0
Godzinę temu, knugi napisał:

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.

Zacznijmy od tego, że nie istnieje w Skript efekt generujący w taki sposób ciąg znaków, więc o ile powyższy skrypt nie wykorzystuje składni któregoś z dodatków, Skript zwróci błąd. Poniżej przykład jak można to zrobić.

set {_code} to ""
loop {@codeLength} times:
	set {_char} to random element of (alphanumeric characters between "0" and "z") # W sumie 62 możliwe znaki
	set {_code} to "%{_code}%%{_char}%"

Co do samego procesu generowania kodu, autor kodu napisał, że prawdopodobieństwo wygenerowania tego samego kodu dwa jest pomijalnie małe i jest to prawda, bo wynosi ono:

t - wygenerowanie kodu x
P(t) = 1 / 36^6

t' - wygenerowanie tego samego kodu x dwa razy
P(t') = 1 / (36^6)^2 = 1 / 36^12 ~= 2.11 * 10^-19

Zbiór znaków spełniających wyrażenie regularne "[0-9a-zA-Z]" co prawda wynosi 62, jednak z tego co wiem, Skript nie zwraca uwagi na wielkość liter (domyślnie), więc odjąłem 26 znaków alfabetu - nie ma znaczenia czy dużych, czy małych.

Niemniej jednak, powyższe obliczenia mają sens gdy mamy do czynienia z generatorem znaków (a właściwie liczb, bo znaki mają reprezentację liczbową w tablicy ASCII) prawdziwie losowym. Niestety, do dyspozycji mamy generatory pseudolosowe, które mają tendencję do częstego wykorzystywania jednego fragmentu dziedziny liczb, więc prawdopodobieństwo rośnie. O ile? Nie wiem, ale na pewno jego rząd wielkości jest większy niż 10^-19. Być może nadal jest niewyobrażalnie małe, ale zawsze warto pisać taki kod, który zadziała poprawnie nieważne co się stanie.

Dlatego też kod powinien być generowany przy pomocy pętli while, która działa tak długo aż wygenerowany kod nie jest unikalny.

Godzinę temu, knugi napisał:

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. 

Całkowita zgoda. Jest to zaśmiecanie pliku variables.csv, a system zmiennych globalnych w Skript jest cóż... niewydajny.

Abstrahując od powyższej dyskusji, miło Cię ponownie widzieć Knugi.

26 minut temu, Saanjuk napisał:

nie sądzę że istnieje możliwość wykorzystania wszystkich vocherów na pojedynczym serwerze minecraft...

Zarzut szerzej dotyczy samego "niesprzątania po sobie" i ryzyka nadpisania czyjegoś vouchera. Nikt nie wykorzysta wszystkich kodów, to oczywiste. Niemniej jednak, tłumaczenie się z nieczyszczenia zmiennych w ten sposób świadczy o pewnym niedbalstwie.

EDIT:

Teraz przeczytałem w treści zlecenia o tym, że każdy kod musi być jednorazowy. Mój błąd.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343841
Udostępnij na innych stronach

  • 0
6 minut temu, Saanjuk napisał:

uwzględniając wielkość znaków

A skript wielkości znaków nie uwzględnia tak btw. 

6 minut temu, Saanjuk napisał:

no nie do konca tak... (jak się już czepiać to wszystkiego xD)
Zapisuje go w postaci:
{vouchers::KOD::RANGA}
po wykorzystaniu:
:{vouchers::KOD::expired}

Tak napisałem. 123456 to był kod. 

a w {vouchers::1} zapisujesz 123456

add {_code} to {vouchers::*}

I przy tym mnożysz niepotrzebne zmienne które zostają w bazie danych.

55 minut temu, knugi napisał:

gdy wykorzystamy wszystkie możliwości tworzenia kodu i skrypt nie może stworzyć nowego kodu?

To było czysto teoretyczne, ale im więcej kodów utworzysz to tym częściej można trafić na ten sam kod. (oczywiście mniej niż 1%).

Według mojej interpretacji:
Generujesz voucher o kodzie 123456 i rangą VIP

ktoś go sobie zużywa, usuwasz zmienną {vouchers::123456::1} co oznacza VIP

ale dalej pozostaje {vouchers::123456::2} jako expired (nie wiem czy on się przenosi na pierwsze miejsce, bo dawno skryptów nie pisałem, ale on tam jest).
I jeżeli drugi raz wygenerujesz kod 123456 i dodasz do {vouchers::123456::*} może ustawić się jako liczba 2 albo 3 (ewentualnie 1 wtedy nie będzie problemu) i w pętli loop {vouchers::123456::*} zadziała warunek to nie otrzymasz vipa. phi wracaj, jest jeszcze gorzej bo na tym warunku nie wychodzisz z pętli tylko ona wyświetli błąd i pójdzie dalej, więc i tak otrzymasz tego vipa.

Więc to nie jest krytyczny błąd, tylko niektórzy gracze otrzymają nie potrzebną wiadomość. Ukryty błąd logiczny. 

Witam @Kormic, dziękuję za odpowiedź szczerze do mnie pozytywną.
Pozdrawiam #Knugi

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343843
Udostępnij na innych stronach

  • 0
5 minut temu, Kormic napisał:

Zacznijmy od tego, że nie istnieje w Skript efekt generujący w taki sposób ciąg znaków, więc o ile powyższy skrypt nie wykorzystuje składni któregoś z dodatków, Skript zwróci błąd. Poniżej przykład jak można to zrobić.

Tak ważny szczegół... Srypt wymaga addonu SkQuery aby działał w formie w jakim go przedstawiłem

 

 

8 minut temu, Kormic napisał:

Dlatego też kod powinien być generowany przy pomocy pętli while, która działa tak długo aż wygenerowany kod nie jest unikalny.

Ryzyko powtórzenia się kodu jest tak niewielkie że nie zakładałem nawet możliwości 2 trafień z rzędu w istniejący kod czy aż tak poteżne zabezpieczenie tak prostego skryptu nie jest wyrazem przerostu formy nad treścią?



Co do nie usuwania zmiennych jak inaczej zapewnić że kod jest jednorazowego użytku? Jeżeli nie posiadamy listy już wykorzystanych kodów nie jesteśmy w stanie zapewnić że kod jest jednorazowy. Ryzyko wygenerowania kodu drugi raz jest niewielkie ale możliwe, w przypadku usuwania zmiennych z kodami wykorzystanymi które stanowią historię kodów możliwe jest wygenerowanie kodu wykorzystanego dosłownie chwile temu co nie zapewnia warunku jednorazowości 

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343844
Udostępnij na innych stronach

  • 0
3 minuty temu, Saanjuk napisał:

Ryzyko powtórzenia się kodu jest tak niewielkie że nie zakładałem nawet możliwości 2 trafień z rzędu w istniejący kod czy aż tak poteżne zabezpieczenie tak prostego skryptu nie jest wyrazem przerostu formy nad treścią?

Nie, można by było to zrobić prościej czytając ze zrozumieniem autora tematu:

Jednorazowy, czyli jak wygenerujesz kod 123456 pierwsza osoba która go wpisze otrzyma rangę. Usuwasz zmienną i druga osoba w tym samym czasie nie dostanie vipa z tym samym kodem, a że za miesiąc albo za rok wylosuje znowu ten sam kod który i tak będzie tylko na jedną osobę to co to zmienia, że znowu wylosowało ten sam kod który był ileś czasu temu? Po co to robić? To jest utrudnianie sobie życia.

 

6 minut temu, Saanjuk napisał:

Srypt wymaga addonu SkQuery

Tego nie napisałeś w pierwszej odpowiedzi, ale daruję. Nie o wszystko musimy się czepiać :) 

 

7 minut temu, Saanjuk napisał:

Co do nie usuwania zmiennych jak inaczej zapewnić że kod jest jednorazowego użytku?

np zamiast dodawać go do {vouchers::*} można zrobić tak:
{vouchers::%{_kod}%} :: ranga

przy generowaniu kodu pętla while czy dany kod istnieje czy nie (is set), jeżeli nie to ustawia {vouchers::123456} to "VIP"

przy wykorzystaniu kodu ustawiasz zmienną {vouchers::%{_kod}%} na true/false i tyle. Potem tylko jeden warunek czy to jest boolean i tyle.

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343845
Udostępnij na innych stronach

  • 0

 

17 minut temu, knugi napisał:

Według mojej interpretacji:
Generujesz voucher o kodzie 123456 i rangą VIP

ktoś go sobie zużywa, usuwasz zmienną {vouchers::123456::1} co oznacza VIP

ale dalej pozostaje {vouchers::123456::2} jako expired (nie wiem czy on się przenosi na pierwsze miejsce, bo dawno skryptów nie pisałem, ale on tam jest).
I jeżeli drugi raz wygenerujesz kod 123456 i dodasz do {vouchers::123456::*} może ustawić się jako liczba 2 albo 3 (ewentualnie 1 wtedy nie będzie problemu) i w pętli loop {vouchers::123456::*} zadziała warunek to nie otrzymasz vipa. phi wracaj, jest jeszcze gorzej bo na tym warunku nie wychodzisz z pętli tylko ona wyświetli błąd i pójdzie dalej, więc i tak otrzymasz tego vipa.

Więc to nie jest krytyczny błąd, tylko niektórzy gracze otrzymają nie potrzebną wiadomość. Ukryty błąd logiczny. 

 


Wg mojej interpretacji:

generuje kod i zapisuje do  jako {vouchers::123456::1} co oznacza vip 
gracz wykorzystuje kod usuwam  {vouchers::123456::1} - lista {vouchers::123456} jest pusta
dodaje do pustej listy "kod" `expired` a więc uzyskuje:
{vouchers::123456::1} = expired
jedyna możliwość nadpisania to gdy generując kod jakimś cudem ustrzelisz 2 kody już istniejące 

możliwe że masz rację siedzisz w Sk dłużej niż ja.

Natomiast cała dyskucja nad tym prostym skryptem wydaje mi się bezcelowa... 
nawet jeżeli jakimś cudem nadpiszesz taki kod poprzez ustrzelenie 2 juz wygenerowanych kodów gracz rangę dostanie więc prawdopodobnie na wygenerowaną wiadomość o tym że kod jest juz wykorzystany nawet nie zwróci uwagi


 

4 minuty temu, knugi napisał:

przy wykorzystaniu kodu ustawiasz zmienną {vouchers::%{_kod}%} na true/false i tyle. Potem tylko jeden warunek czy to jest boolean i tyle.

czyli nadal nie sprzątasz tej zmiennej... zmieniasz tylko jej format z "RANGA" na boolean 

Edytowane przez Saanjuk
Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343846
Udostępnij na innych stronach

  • 0
1 minutę temu, Saanjuk napisał:

czyli nadal nie sprzątasz tej zmiennej... zmieniasz tylko jej format z "RANGA" na boolean 

Jedynie odpowiedziałem Tobie na pytanie jak zrobić aby nie wygenerować drugi raz tego samego kodu bez zbędnych innych zmiennych. Dalej jest to śmietnik w bazie, ale już wtedy potrzebny gdy chcemy tę niepotrzebną opcję uzyskać.

3 minuty temu, Saanjuk napisał:

Wg mojej interpretacji:

generuje kod i zapisuje do  jako {vouchers::123456::1} co oznacza vip 
gracz wykorzystuje kod uswuam  {vouchers::123456::1} - lista {vouchers::123456} jest pusta
dodoaje do pustej listy "kod" `expired` a więc uzyskuje:
{vouchers::123456::1} = expired

Tak, w tym momencie mnie poprawiłeś. Zgadzam się z Tobą. Ale i tak wyświetli mu błąd jak drugi raz wstrzeli się w ten sam kod jakimś cudem i dostanie rangę. A dodawanie kodu do listy w tej postaci:

add {_code} to {vouchers::*}

to jest zaśmiecanie bazy. bo można zrobić to sposobem co opisałem wyżej.

Rozejdźmy się w dobrych humorach, piwko stawiam napisz na PW wyślę bliczka na browarka wypijemy razem, pogadamy.

Pozdrawiam #Knugi

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343847
Udostępnij na innych stronach

  • 0

Wydaje mi się, że najprościej będzie zapytać samego Zleceniodawcę co miał na myśli z tym, że kody mają być jednorazowe.

@iYowee Prosiłbym o wyjaśnienie co oznacza ta jednorazowość kodu. Oznacza to, że nie mogą istnieć dwa takie same kody jednocześnie (co jest oczywiste), czy też tylko raz może zostać wygenerowany i już nigdy później nie może zostać ponownie wygenerowany (nieważne czy 5 dni, czy 10 lat).

Obu Panów natomiast zapraszam do przeczytania moich wiadomości na czatboxie, bo dyskusja skupia się na czymś, co jest niejednoznaczne.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343848
Udostępnij na innych stronach

  • 0
24 minuty temu, Kormic napisał:

Wydaje mi się, że najprościej będzie zapytać samego Zleceniodawcę co miał na myśli z tym, że kody mają być jednorazowe.

@iYowee Prosiłbym o wyjaśnienie co oznacza ta jednorazowość kodu. Oznacza to, że nie mogą istnieć dwa takie same kody jednocześnie (co jest oczywiste), czy też tylko raz może zostać wygenerowany i już nigdy później nie może zostać ponownie wygenerowany (nieważne czy 5 dni, czy 10 lat).

Obu Panów natomiast zapraszam do przeczytania moich wiadomości na czatboxie, bo dyskusja skupia się na czymś, co jest niejednoznaczne.

Pozdrawiam.

jednorazowosc chodzilo o to ze jak sie raz wykorzysta kod to drugi raz nie mozna - prosze o poprawiony skrypt w calosci

 

Edytowane przez iYowee
Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343849
Udostępnij na innych stronach

  • 0

Kod nie wymagający addonów oparty na czystym Skript (metoda generowania zaproponowana przez @Kormic) jak również mniej zaśmiecający baze danych (tak uwzględniłem uwagi @knugi - nie jestem alfą i omegą) co za tym idzie bardziej optymalny w 2 wersjach: 

Kod nie może zostać wygenerowany 2 raz (zapisuje się jako wykorzystany gdy ktoś go użyje):

https://code.skript.pl/WAbDwN2O

Kod może zostać wygenerowany 2 raz o ile nie istnieje w bazie (po wykorzystaniu kod znika z bazy danych i może zostać wygenerowany ponownie jako aktywujący range, w bazie danych trzymamy tylko kody niewykorzystane):
https://code.skript.pl/MBxPadVN

 

Edytowane przez Saanjuk
Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343850
Udostępnij na innych stronach

  • 0
6 minut temu, Saanjuk napisał:

Kod nie wymagający addonów oparty na czystym Skript (metoda generowania zaproponowana przez @Kormic) jak również mniej zaśmiecający baze danych (tak uwzględniłem uwagi @knugi - nie jestem alfą i omegą) co za tym idzie bardziej optymalny w 2 wersjach: 

Kod nie może zostać wygenerowany 2 raz (zapisuje się jako wykorzystany gdy ktoś go użyje):

https://code.skript.pl/WAbDwN2O

Kod może zostać wygenerowany 2 raz o ile nie istnieje w bazie (po wykorzystaniu kod znika z bazy danych i może zostać wygenerowany ponownie jako aktywujący range, w bazie danych trzymamy tylko kody niewykorzystane):
https://code.skript.pl/MBxPadVN

 

mozna zmienic skrypt aby ustawic za pomoca komendy czas trwania rangi oraz liste aktywnych voucherow?

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343851
Udostępnij na innych stronach

  • 0

Dodałem jeszcze komendę "/voucher reset" która pozwala na wyczyszczenie całej listy (np po testach lub gdyby coś poszło nie tak i chciałbyś wykasować listę)

Aby możliwe było skasowanie listy należy użyć komendy "/voucher reset"- wyskakuje komunikat o konieczności potwierdzenia że chcesz podjąć taką akcje masz na to 30 sekund  jeżeli chcesz kontynuować wpisujesz "/voucher reset confirm" i lista zostaje wyczyszczona 

Nieco musiałem się nakombinować aby w jednej zmiennej ukryć i rangę i czas na którą ma być przyznawana ale na szczęście z pomocą dokumentacji się udało :P

składnia komendy dodającej voucher:
/voucher utworz <ranga> <czas>

Ranga nie może zawierać spacji!
Czas podajemy tak jak w komendzie od luckprems np: 1d, 1w, 30d 

Wersja z zapisem archiwalnych kodów wykorzystanych:

https://code.skript.pl/17cnVTxJ
Komenda /voucher list nie pokazuje kodów wygasłych (zużytych)

Wersja bez historii kodów gdy kod zostanie zużyty znika z listy kodow (bazy danych):
https://code.skript.pl/JXMhEIbq

 

Edytowane przez Saanjuk
Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343852
Udostępnij na innych stronach

  • 0
9 godzin temu, Saanjuk napisał:

Dodałem jeszcze komendę "/voucher reset" która pozwala na wyczyszczenie całej listy (np po testach lub gdyby coś poszło nie tak i chciałbyś wykasować listę)

Aby możliwe było skasowanie listy należy użyć komendy "/voucher reset"- wyskakuje komunikat o konieczności potwierdzenia że chcesz podjąć taką akcje masz na to 30 sekund  jeżeli chcesz kontynuować wpisujesz "/voucher reset confirm" i lista zostaje wyczyszczona 

Nieco musiałem się nakombinować aby w jednej zmiennej ukryć i rangę i czas na którą ma być przyznawana ale na szczęście z pomocą dokumentacji się udało :P

składnia komendy dodającej voucher:
/voucher utworz <ranga> <czas>

Ranga nie może zawierać spacji!
Czas podajemy tak jak w komendzie od luckprems np: 1d, 1w, 30d 

Wersja z zapisem archiwalnych kodów wykorzystanych:

https://code.skript.pl/17cnVTxJ
Komenda /voucher list nie pokazuje kodów wygasłych (zużytych)

Wersja bez historii kodów gdy kod zostanie zużyty znika z listy kodow (bazy danych):
https://code.skript.pl/JXMhEIbq

 

Jest jeden problem poniewaz jezeli wygeneruje kod i znajduja sie w nim wielkie litery to jak wchodze w ta liste to pokazuja sie tylko male, mozna by bylo zrobic ze gdy argument 3 nie jest ustawiony to ranga jest permamenta oraz ustawic dlugosc voucheru na 10 znakow?

 

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343856
Udostępnij na innych stronach

  • 0
54 minuty temu, iYowee napisał:

znajduja sie w nim wielkie litery to jak wchodze w ta liste to pokazuja sie tylko male

to dlatego że:

13 godzin temu, Kormic napisał:

Zbiór znaków spełniających wyrażenie regularne "[0-9a-zA-Z]" co prawda wynosi 62, jednak z tego co wiem, Skript nie zwraca uwagi na wielkość liter (domyślnie), więc odjąłem 26 znaków alfabetu - nie ma znaczenia czy dużych, czy małych


 

 

Godzinę temu, iYowee napisał:

mozna by bylo zrobic ze gdy argument 3 nie jest ustawiony to ranga jest permamenta oraz ustawic dlugosc voucheru na 10 znakow?

można wiele rzeczy zrobić akurat ten kod jest skonstruowany w taki sposób że to dosyć dużo zmienia więc zalecam wyczyszczenie listy kodów po aktualizacji

wersja z archiwum kodów wykorzystanych:
https://code.skript.pl/1egb5ldw

wersja bez archiwum kodów wykorzystanych:
https://code.skript.pl/UZsA3xBO



Przy okazji poprawiłem bubel w ponownym generowaniu kodu jeżeli wygenerowany by juz istniał
Dodałem wyświetlanie że lista jest pusta jeżeli nie ma na niej aktywnych voucherów

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343858
Udostępnij na innych stronach

  • 0
11 godzin temu, Saanjuk napisał:

to dlatego że:


 

 

można wiele rzeczy zrobić akurat ten kod jest skonstruowany w taki sposób że to dosyć dużo zmienia więc zalecam wyczyszczenie listy kodów po aktualizacji

wersja z archiwum kodów wykorzystanych:
https://code.skript.pl/1egb5ldw

wersja bez archiwum kodów wykorzystanych:
https://code.skript.pl/UZsA3xBO



Przy okazji poprawiłem bubel w ponownym generowaniu kodu jeżeli wygenerowany by juz istniał
Dodałem wyświetlanie że lista jest pusta jeżeli nie ma na niej aktywnych voucherów

a moglbys ustawic na 10 znakow te vouchery i dodac permamentne rangi

Odnośnik do komentarza
https://skript.pl/temat/57854-vouchery-z-kodem/#findComment-343899
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

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

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