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

[Poprawa] Czekanie s w funkcji chat i say


Rekomendowane odpowiedzi

Opublikowano

Mam np takie coś i nie chce aby od razu wszystko na raz się wyświetliło, chcę aby czekało np. po dwie sekundy

quest wprowadzenie begin
    state start begin
        when login with pc.level>=1 begin
            chat("się zaczeło ")
wait(3)
            say("blabla ")
            say("dalsze bla bla ")
wait(1)
            chat("hmm ")
            chat("hmm... ")
wait(1)
            chat("to lecimy ")
        end
    end
end
 

tak jak pisałem, chce aby np. w wait czekalo z 3s, czy moze jakeis timery musze zastosowac?

za pomoc plusik poleci :X.

 

wait, sleep, delay, o coś takiego mi chodzi ^^

 

2.Dlaczego jeżeli w tym quescie mam polskie znaki to widać jakieś inne w ogóle litery?

A w innych questach takiego problemu nie ma, wszystko widać np. ąźćśó

Musiałem sformatować na ANSI

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

Jeśli mam rację to to jest python czyli robisz

import time
i w kodzie
time.sleep(3)

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

Nie nie, to jest LUA i tak myślę że chyba nie można importować różnych bibliotek tym kodem, timery też robiłem i nic, może po prostu źle robię.

@tak zauważyłem, ty to hP4H, pamiętam Cię z czatu i forum :D.

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

local clock = os.clock

function sleep(n) -- seconds

local t0 = clock()

while clock() - t0 <= n do end

end

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

Jestem trochę jeszcze w tym nieobeznany (piszę questy od wczoraj),

błąd

Calls undeclared function!:

clock

sleep

abort (core dumped)

 

tam gdzie (n) seconds mam wprowadzic ile sekund ma czekac?

Chodzi mi po prostu o taka funkcje jakby sleep w autoit

quest wprowadzenie begin
    state start begin
        when login with pc.level>=1 begin
            chat("tekst ")
            set_state( punkt1 )
        end
    end
    state punkt1 begin
        when letter begin
            send_letter("Rozpoczecie")
        end
        when button or info begin
            say_title("")
            say("tekst, ")
            say("tekst ")
            
            chat("tekst ")
            chat("tekst ")
            local clock = os.clock
            function sleep(n)  -- seconds
            local t0 = clock()
            while clock() - t0 <= n do end
            chat("tekst ")
        end
    end
end
end

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

quest wprowadzenie begin

state start begin

when login with pc.level>=1 begin

chat("się zaczeło ")

 

local t0 = os.clock()

local t1 = os.clock()

while t1 < (t0 + LICZBA_SEKUND) do

t1 = os.clock()

end

 

say("blabla ")

end

end

end

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

No jak nie, powinno działać...<br />No chyba, że potrzeba to jakoś zaincludować, nie wiem, ale kod powinien być ok.

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

no mam takie cos

519cb5a2a51a2.png

pozniej dam ci liki bo sie skonczyly ; []

 

 

Znalazlem do metina

 

os.clock() - zwraca czas systemowy w sekundach
os.date() - zwraca systemową datę i czas w formacie : d/m/y h:m np : 13/05/05 10:32
os.difftime() - zwraca różnicę między jednym a drugim czasem tj między dwiema zmiennymi z funkcją os.clock
os.execute() - wykonuje plik np : os.execute("język pliku /ścieżka/plik.format") -- os.execute("php /home/badar/select.php")
os.exit() - zabija proces po podaniu jego nazwy np : os.exit(badar.sh)
os.getenv() - zwraca format pliku, jakim posługuje się proces np : os.getenv(badar) zwróci np badar.sh
os.remove() - usuwa plik np : os.remove("/badar/home/plik")
os.rename() - zmienia nazwę pliku np : os.rename("badar", "matias")
os.time() - zwraca obecny czas systemowy gdy podamy argument "*t"
os.tmpname() - tworzy losowy plik, ale go nie otwiera

[size=3][font=tahoma,geneva,sans-serif][b]Podsumowując najczęściej używanymi funkcjami są : os.remove, os.execute .
Osobiście używałem tych dwóch przez cały czas - reszta nie była mi potrzebna .

Myślę, że tyle wystarczy - przejdźmy do modułu math[/b][/font][/size]

 

hmm sprawdzę OX'a bo tam jest czekanie 5/10 s

Nic tu z czasem nie widzę

 

 

 
quest oxevent_manager begin
    state start begin
        when 20011.chat."Konkurs OX" begin
            if game.get_event_flag("oxevent_status") == 0 then
                say_title("Uriel:")
                say("Hey - ty! Tak, ty - wyglądasz na inteligentną ")
                say("osobę... Jest konkurs, który nazywa się Konkurs. ")
                say("OX. Możesz wykazać się w nim swoją wiedzą. ")
                say("Jeśli wygrasz, otrzymasz niezłą nagrodę. ")
                say("")
                wait()
                say_title("Uriel:")
                say("Kiedy Konkurs się zacznie, mogę Cię wpuścić jako ")
                say("uczestnika. Jeżeli chcesz, możesz wejść tylko ")
                say("popatrzeć. ")
                say("Czas rozpoczęcia nie jest jeszcze określony.")
                say("Kiedy ustalę termin, dam Ci znać! Bądź gotowy! ")
                say("")
            elseif game.get_event_flag("oxevent_status") == 1 then
                say_title("Uriel:")
                say("Hey - ty! Tak, ty - wyglądasz na inteligentną ")
                say("osobę... Jest konkurs, który nazywa się Konkurs")
                say("OX. Możesz wykazać się w nim swoją wiedzą. ")
                say("Jeżeli wygrasz, otrzymasz niezłą nagrodę. ")
                say("")
                wait()
                say_title("Uriel:")
                say("Czy chcesz wziąć udział w Konkursie?")
                say("Jeśli chcesz, możesz tylko pooglądać. ")
                local s = select("Weź udział ", "Oglądaj", "Anuluj")
                if s == 1 then
                    pc.warp(896500, 24600)
                elseif s == 2 then
                    pc.warp(896300, 28900)
                end
            elseif game.get_event_flag("oxevent_status") == 2 then
                say_title("Uriel:")
                say("Hey - ty! Tak, ty - wyglądasz na inteligentną ")
                say("osobę... Jest konkurs, który nazywa się Konkurs")
                say("OX. Możesz wykazać się w nim swoją wiedzą. ")
                say("Jeżeli wygrasz, otrzymasz niezłą nagrodę. ")
                say("")
                wait()
                say_title("Uriel:")
                say("Niestety, Konkurs już się rozpoczął. ")
                say("Tym razem nie będziesz mógł wziąć udziału. ")
                say("Następnym razem na pewno będziesz o nim")
                say("wiedział. ")
                say("Jeśli chcesz, wciąż możesz pooglądać. ")
                say("")
                local s = select("OK", "Anuluj")
                if s == 1 then
                    pc.warp(896300, 28900)
                end
            end
        end
        when 20358.chat."Konkurs OX" with pc.is_gm() begin
            local stat = oxevent.get_status()
            if stat == 0 then
                say("Czy chcesz rozpocząć konkurs OX?")
                say("")
                local s = select("Rozpocznij OX", "Anuluj")
                if s == 1 then
                    local v = oxevent.open()
                    if v == 0 then
                    say("Event OX nie działa...")
                    say("")
                    elseif v == 1 then
                        say("Konkurs OX rozpoczęty!")
                        notice_all("Konkurs OX rozpoczął się! ")
                        notice_all("Aby wziąć udział, udaj się do Uriela. ")
                    else
                        say("Wystąpił błąd... ")
                        say("")
                    end
                end
            elseif stat == 1 then
                say("Ilość uczestników: "..oxevent.get_attender().."")
                say("Zamknąć dostęp do konkursu? ")
                say("")
                local s = select("Tak", "Nie")
                if s == 1 then
                    oxevent.close()
                    say("Dostęp zamknięty. ")
                    say("Możesz rozpocząć losowanie pytań.")
                    say("")
                end
            elseif stat == 2 then
                say("OX Event")
                say("")
                local s = select("Losuj Pytanie", "Zakończ Konkurs", "Anuluj")
                if s == 1 then
                    local v = oxevent.quiz(1, 30)
                    if v == 0 then
                        say("Wystąpił błąd...")
                        say("")
                    elseif v == 1 then
                        say("Pytanie w drodze...")
                        say("")
                    else
                        say("Pytanie zostało już zadane.")
                        say("Proszę czekać. ")
                        say("")
                    end
                elseif s == 2 then
                    oxevent.end_event()
                    notice_all("Konkurs OX został zakończony!")
                    notice_all("Uczestnicy zostaną przeniesieni do miast.")
                    say("Konkurs OX został zakończony!")
                    say("")
                end
            elseif stat == 3 then
                say("Proszę czekać... ")
                say("")
            else
                say("Wystąpił błąd")
                say("")
            end
        end
        when 20358.chat."Konkurs OX - Nagrody" with pc.is_gm() begin
            say("Podaj ID przedmiotu")
            say("")
            local item_vnum = input()
            say("Podaj ilość przedmiotów")
            say("")
            local item_count = input()
            oxevent.give_item(item_vnum, item_count)
            say(""..oxevent.get_attender().." graczy otrzymało nagrody.")
            say("")
        end
    end
end

 

 

Coś w dt znalazlem

 

 

        when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.setf("level", 4)
            -- ¦A˛{¤j¶q©ÇŞ«¤Î»słyŻuĄŰŔY©M°˛ĄŰŔY
            --d.regen_file("data/dungeon/deviltower4_regen.txt")
            local positions = deviltower_zone.get_4floor_stone_pos()
            for i = 1, 6 do
            chat(positions[i][1], positions[i][2])
            d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
            end
            chat(positions[7][1], positions[7][2])
            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
            chat(vid)
            d.set_unique("real", vid)
            server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
            server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
            d.notice("Dotarłeś do Bramy Wyboru na 3. piętrze. Wiele");
            d.notice("kamieni Metin będzie drażnić Twoje oczy i uszy.");
            d.notice("Znajdź właściwy kamień Metin i zniszcz go w");
            d.notice("ciągu 15 minut! To jedyny sposób aby przejść ");
            d.notice("dalej.");
        end
        when devil_stone4_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
            d.notice("Pozostało 10 minut!")
            server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
            end
        end

 

when devil_stone4_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
            d.notice("Pozostało 5 minut!")
            server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
            end
        end
        when devil_stone4_fail.server_timer begin
            if d.select(get_server_timer_arg()) then
            d.notice("Nie udało się, zostaniecie wylogowany!")
            d.exit_all()
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
            end
        end

 

 

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

To co już powiedziałem, znajdź jak włożyć to os do projektu bo mój kod jest ok

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

dodaj os.block do quest_functions...

No z tym quest się dobrze skompilował bez błędów, ale w grze w ogóle nie działa chyba

t0 + 5 to chyba że po 5 sekundach leci kod dalej lub czeka 5 sek w tym miejscu, chyba o to chodzi?

 

quest wprowadzenie begin
    state start begin
        when login with pc.level>=1 begin
            chat("się zaczeło ")
 
            local t0 = os.clock()
            local t1 = os.clock()
            while t1 < (t0 + 5) do
                t1 = os.clock()
            end
            
            chat("blabla ")
        end
    end
end

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

 

when id.click begin
say("pierwsza wiadomośc")
say("[DELAY value;500]druga wiadomość[/DELAY]")
say("[DELAY value;1000]trzecia wiadomość[/DELAY]")
end


Niestety nie działa, to co ty podałeś tak mi się wydaję że jest to funkcja pod pliki klienta, nie serwera, próbowałem z tym różnych sposobów i nic, dalej cały czas próbuje jakoś znaleźć funkcję która zadziała.

 

 

Gdy dodałem taką zmienną no to pojawi się pierwszy napis a drugi już w ogóle się i reszta nie pojawi ;/ ...

quest wprowadzenie begin
    state start begin
        when login with pc.level>=1 begin
        local delay = 100
            chat("bla" )
            
            chat(delay"bla ")
            chat("bla ")
            
            chat("bla... ")
            chat("bla. ")
            chat("bla ")
        end
    end
end
 

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

 

Jeśli mam rację to to jest python czyli robisz

import time
i w kodzie
time.sleep(3)

 

Tak to jest python.

quest wprowadzenie begin
    state start begin
        when login with pc.level>=1 begin

 

 

Niestety nie działa, to co ty podałeś tak mi się wydaję że jest to funkcja pod pliki klienta, nie serwera, próbowałem z tym różnych sposobów i nic, dalej cały czas próbuje jakoś znaleźć funkcję która zadziała.

 

 

Gdy dodałem taką zmienną no to pojawi się pierwszy napis a drugi już w ogóle się i reszta nie pojawi ;/ ...

quest wprowadzenie begin
    state start begin
        when login with pc.level>=1 begin
        local delay = 100
            chat("bla" )
            
            chat(delay"bla ")
            chat("bla ")
            
            chat("bla... ")
            chat("bla. ")
            chat("bla ")
        end
    end
end
 

 

Lepiej chyba by było tak:

 

local delay = 100
say("[DELAY value;"..delay.."heheszky [/DELAY]")

#guwno.


Opublikowano

Jednak nie trzeba było tworzyć zmiennej :), po prostu w funkcji chat to nie działa tylko say.

 

 

 

say("[DELAY value;100]Przez chwilę zaczęło się z tobą coś dziwnego dziać,[/DELAY] ")
 

 

 

I jest dobrze :), dzięki.

Temat można zamknąć.

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

 

Jeśli mam rację to to jest python czyli robisz

import time
i w kodzie
time.sleep(3)

 

Nie, jeśli nie stworzysz do tego osobnego wątku- zlaggujesz całą grę (główny thread), w lua to samo, od tego w metinie są timery.

1373986324-U917591.png

Zapraszam do prezentacji serwera uMetin2:

KLIK

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...