Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Ustawienie czasu? -> Skrypt


Rekomendowane odpowiedzi

Opublikowano

Witam!

Mam pewien problem. Mianowicie chodzi mi o ustalenie czasu w:

wait * seconds

Tworzę swój skrypt i potrzebuję, aby poprzez komendę ustalał się czas. 

Próbowałem już z:

set {_time} to arg 2 parsed as time

Potem w nastepnych linijakch dawałem:

wait {_time} seconds


wait %arg 2% seconds

wait arg 2 seconds



set {czas.%player%::*} to arg 2
wait {czas.%player%::*} seconds


Jednak zawsze pojawia mi się błąd:

 

s4dw65.jpg

 

Chodzi mi o to, co zaznaczyłem na zielono. Czy mógłby mi ktoś napisać przykładową komendę, gdzie ten czas będzie ustalany?

 

 

Za pomoc daje limit likow.

Chcesz coś ode mnie? Oznacz mnie w poście, a szybciej to zobaczę!

Opublikowano

Ty nie rozumiesz chyba o co chodzi w skryptach. Jak masz tylko sobie nabijać posty to nie pisz nic.

Chcesz coś ode mnie? Oznacz mnie w poście, a szybciej to zobaczę!

Opublikowano

Screen nie działa, popraw go.

Podaj mi swoje ustawienia z configu Skripta, u mnie to linijka 116 o treści

 

number accuracy: 2

No i jak już jesteśmy w temacie czasu to możesz też zajrzeć do mojego tematu o formacie czasowym -> klik

Tam znajdziesz wszystko, np. jak się zapisuje czas, potem jak się go rozdziela na sekundy/minuty/godziny/dni i ewentualnie jak obliczać sekundy kiedy nie są one wyświetlane (przykład: HH:MM - brak sekund).

Jak już poprawisz screena i nie znajdziesz tego czego szukasz to podbij temat, zobaczymy co da się zdziałać.

417711489342956987022.png

Opublikowano

sproboj

 

wait {_time} seconds

 

lub

 

wait %{_time}% seconds

Opublikowano

Dobra, przeczytałem dokładniej temat i mam nadzieję, że rozumiem o co tobie chodzi.

Mianowicie chcesz ustalić zmienną do liczby i wstawić ją w "wait {zmienna} seconds". Można tak zrobić pod warunkiem, że zamiast

set {zmienna} to arg 2 parsed as time

zrobisz

set {zmienna} to arg 2 parsed as number

Wtedy możesz to wstawić w "wait".

Możesz również skorzystać z tego kodu, mam nadzieję że obsługa jest wystarczająco wyjaśniona.

command /ustaw [<text>]:
    trigger:
        if arg is not set:
            send "Uzycie komendy /ustaw <okres czasu>"
            send "Przyklad /ustaw 5 seconds"
            stop
        set {_czas} to arg parsed as time span
        set {_now} to now
        send "Zaczynamy!"
        wait {_czas}
        set {_now} to difference between {_now} and now
        set {_now} to difference between {_czas} and {_now}
        send "Zakonczono, ustawiony okres czasu to: %{_now}%"

Lub od razu w komendzie mieć ustalone, że to argument jest okresem czasu:

command /ustaw [<time span>]:
    trigger:
        if arg is not set:
            send "Uzycie komendy /ustaw <okres czasu>"
            send "Przyklad /ustaw 5 seconds"
            stop
        set {_czas} to arg
        set {_now} to now
        send "Zaczynamy!"
        wait {_czas}
        set {_now} to difference between {_now} and now
        set {_now} to difference between {_czas} and {_now}
        send "Zakonczono, ustawiony okres czasu to: %{_now}%"

Wygląda to tak:

ni-qzcrzueuwhqxccaycsrf.jpg

 

Oczywiście ja mam w configu "number accuracy" ustawione na 0, więc mi nie wyświetla wartości setnych (np. 4.33 seconds).

417711489342956987022.png

Opublikowano

Dałem ci do wyboru dwa skrypty, w jednym jest [<text>] i parsowanie, a w drugim jest [<time span>] i nic więcej.

Zastosuj się do tego to nie będziesz miał błędów.

Teraz dam ci przykład tego co ty zrobiłeś ( xD):

command /test <time span>:
    trigger:
        set {_arg} to arg parsed as time span

Parsowanie wcześniej parsowanego argumentu.

417711489342956987022.png

Opublikowano

A mam pytanie. Bo ja uzywam to do banów, i mam takie cos:

command /.... [<player>] [<text>] [<text>] [<text>]:

I w arg 2 Wpisywalem liczba na ile, a w arg 3 wpisywalem dlugosc fizyczna, czyli seconds, minutes, hours, itp.

a w arg 4 powod. Czy nie daloby sie to jakos polaczyc ?

Chcesz coś ode mnie? Oznacz mnie w poście, a szybciej to zobaczę!

Opublikowano

A mam pytanie. Bo ja uzywam to do banów, i mam takie cos:

command /.... [<player>] [<text>] [<text>] [<text>]:

I w arg 2 Wpisywalem liczba na ile, a w arg 3 wpisywalem dlugosc fizyczna, czyli seconds, minutes, hours, itp.

a w arg 4 powod. Czy nie daloby sie to jakos polaczyc ?

Połączyć? Nie rozumiem, kodu nie widzę wiem nie wiem co chcesz łączyć.

Jeśli chodzi ci o zwykłe skrócenie do [<time span>] to usuń te 2 środkowe [<text>] i poprzestawiaj sobie numery argumentów w kodzie.

Czyli ostatni [<text>] będzie arg 3, a [<time span>] będzie arg 2.

417711489342956987022.png

Opublikowano

Chodzi mi o to, ze mam 3 osobne argumenty.

1 argument to jest Liczba, czyli np. ile sekund ma to trwac.

2 argument to jest fizyczna jednostka, czyli np. seconds.

I jak to polaczyc?

Bo jak dam to w 1 argumencie to sie nie zmiensci, poniewaz w srodku argument obejmuje tylko 1 slowo.

I ja np. mam komende:

/ban bleble 1 seconds test

To 1 i seconds to sa 2 osobne argumenty, ichce to polaczyc aby bylo jakos z tego 1 argument, i byl Time Span

Chcesz coś ode mnie? Oznacz mnie w poście, a szybciej to zobaczę!

Opublikowano

Możesz przestawić <time span> na arg 3 i wtedy obejmie ci i liczbę i jednostkę czasu, lub możesz zrobić coś takiego:

command /test <player> <text> <text>:
    trigger:
        set {_arg2} to arg 2
        replace all "_" with " " in {_arg2}
        set {_arg2} to {_arg2} parsed as time span
        wait {_arg2}
        send "Gotowe!"

Użycie komendy tym sposobem to nic innego jak zastąpienie spacji podkreśleniem --> /test jakisgracz 12_seconds blabla

Chociaż bardziej polecam zrobić tak jak pisałem na początku, ustawić <time span> jako ostatni argument i wtedy możesz bez limitu sobie tam pisać.

417711489342956987022.png

Opublikowano

Ale jak ustawie na ostatnim miejscu time span, to wtedy moj powod bedzie mogl miec max. 1 slowo.

 

Ale dzięki za pomoc. Obiecane like leci.

Chcesz coś ode mnie? Oznacz mnie w poście, a szybciej to zobaczę!

Opublikowano

Ale jak ustawie na ostatnim miejscu time span, to wtedy moj powod bedzie mogl miec max. 1 slowo.

 

Ale dzięki za pomoc. Obiecane like leci.

Ewentualnie możesz jeszcze zrobić coś takiego, ale to będzie zawsze w sekundach liczone.

 

command /test <player> <number> <text>:
    trigger:
        set {_arg2} to "%arg 2% seconds" parsed as time span
        wait {_arg2}
        send "Gotowe!"

Użycie komendy wyglądałoby tak /test player 286 tekst

I te 286 jest zamieniane na "286 seconds".

417711489342956987022.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...