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

Ogromny Problem z: Timerami..


Rekomendowane odpowiedzi

Opublikowano

Siemka, mam wielki problem.. Gdzie nie dodam server_timer lub server_loop_timer to pada ch...

Np dodaje tak:

when login begin
server_timer("startuj",1,pc.get_map_index())
end
when startuj.server_timer begin
notice_all("Dziala teraz....")
end

To wtedy mi działa normalnie ch nie pada..

A jak dodam np tak:

when login begin
server_timer("startuj",1,pc.get_map_index())
end
when startuj.server_timer begin
chat("Kurwa nie dziala pada ch.")
end

No to pada ch...

Wie ktoś lub miał ktoś podobny problem? Prosze o pomoc zmieniałem wszystko game questa i nic.. ciagle to samo..

Syserr czysty

Opublikowano

Zobacz, że wywala Ci channel przy wywołaniu funkcji dla gracza, a nie wywala przy funkcji serwerowej jaką jest notice_all. Wnioski pozostawiam Tobie, chociaż nie jestem pewien czy o to chodziło.

 

Opublikowano

Zobacz, że wywala Ci channel przy wywołaniu funkcji dla gracza, a nie wywala przy funkcji serwerowej jaką jest notice_all. Wnioski pozostawiam Tobie, chociaż nie jestem pewien czy o to chodziło.

Tak masz rację czyli co nie mogę używać połowy funkcji? :D

Np chce uzyć cmdchat i też wywala ch.. 

 

Jak dodam np notice_in_map też wypierdala ch...

Opublikowano

Myślę, że tak to działa. Bo te funkcje wykonują się na danej postaci, a server timer działa na serwerze, a nie na postaci. Gdy wywołujesz u niego funkcję gracza, to może nie załapać dla jakiego i wtedy się wyłącza game.

 

Opublikowano

Myślę, że tak to działa. Bo te funkcje wykonują się na danej postaci, a server timer działa na serwerze, a nie na postaci. Gdy wywołujesz u niego funkcję gracza, to może nie załapać dla jakiego i wtedy się wyłącza game.

To chujowo...  Wcześniej pisałem dungeon i miałem ten sam problem choć używałem tylko funkcji takich jak są w server_timer z questa dt..

Zaraz spr dodać od nowa i napisze czy działa czy nie.

 

@EDIT

d.notice("UDalo sie.") 
d.notice("LEcicie dalej")
d.kill_all() 
d.setf("zabij", 0) 
server_timer("timer1", 10,get_server_timer_arg()) 

Jest tak i wypierdala serwer....

 

@ syserrr:

 

HandleReceiveAllEvent: QUEST There's suspended quest state, can't run new quest state
Opublikowano

Spróbuj zrobić wtedy, aby timer wykonał się dla osoby która zabiła moba a zamiast d.notice daj notice_in_map. Ciężko mi Tobie pomóc bo sam nie lubię używać timerów.

 

Opublikowano

 

To chujowo...  Wcześniej pisałem dungeon i miałem ten sam problem choć używałem tylko funkcji takich jak są w server_timer z questa dt..

Zaraz spr dodać od nowa i napisze czy działa czy nie.

 

@EDIT

d.notice("UDalo sie.") 
d.notice("LEcicie dalej")
d.kill_all() 
d.setf("zabij", 0) 
server_timer("timer1", 10,get_server_timer_arg()) 

Jest tak i wypierdala serwer....

 

@ syserrr:

HandleReceiveAllEvent: QUEST There's suspended quest state, can't run new quest state

Tylko, że ten błąd nie dotyczy timera. Weź wstaw większy kawałek questa, bo nie widać działania tego.

Opublikowano

Spróbuj zrobić wtedy, aby timer wykonał się dla osoby która zabiła moba a zamiast d.notice daj notice_in_map. Ciężko mi Tobie pomóc bo sam nie lubię używać timerów.

Tu raczej nic nie pomoże :C jak mi nie działa cmd to nawet nie opłaca mi się kombinować z server_timer.

Nwm chyba zwykłymi timerami bede musial robić ale też jest problem bo np będą 2 timery bo 2 graczy i 2 razy mi zrespi regen...

UP: np taki quest

 

 

quest testowy_timer begin
state start begin
when login begin
server_loop_timer('sprawdz', 5, pc.get_map_index())
end
when sprawdz.server_timer begin
cmdchat("elo")
end
end
end 

Endymion dobrze na 100% mówi że się gubi bo nie wie dla jakiego gracza.

Opublikowano

To zrób np tak:

when cos.timer begin

clear_timer("cos")

if game.get_event_flag("map"..pc.get_map_index()) == 0 then -- jeżeli pod dunga, bo wtedy każdy dung ma inne map index
regen

game.set_event_flag("map"..pc.get_map_index(), 1)
end

end

 

Opublikowano

To zrób np tak:

when cos.timer begin

clear_timer("cos")

if game.get_event_flag("map"..pc.get_map_index()) == 0 then -- jeżeli pod dunga, bo wtedy każdy dung ma inne map index

regen

game.set_event_flag("map"..pc.get_map_index(), 1)

end

end

Na timer Mi wszystko działa i na loop_timer. Wszystko pięknie ale na server_timer pada ch :C

A potrzebny jest bo jak bedzie więcej osób na dungeonie to wtedy na każdej postaci timer się odpali.. Tak wiem że można dodać regen pod zabiciem żeby nie działał na każdym ale mam inaczej porobione.

 

Up chce napisać dungeon :)

Sprawdź i zobaczysz  że wywali ci game:

 

quest testowy_timer begin
state start begin
when login begin
server_loop_timer('sprawdz', 5, pc.get_map_index())
end
when sprawdz.server_timer begin
cmdchat("elo")
end
end
end 

Nwm czy da sie jakoś zrobić żeby zliczało statystyki na każdej postaci. Dlatego chce server_timer + cmdchat

Opublikowano

Logiczne, że wyrzuci kanał skoro używasz funkcji serwerowej (dostępnej dla wszystkich) a odwołujesz się do ściśle określonego jednego gracza, JAKIEGO GRACZA? Skąd serwer ma wziąć VID? Wiedzieć, że to akurat do "Zenka" się odwołujesz?

 

To tak samo jak byś napisał:

when 1000.use begin -- użycie itemu o id 1000

npc.open_shop(10) -- a odwołanie się by ten npc otworzył sklep (masło maślane,bo skoro ściśle określasz, że używasz przedmiotu to skąd serwer ma wiedzieć jakiego npc sklep otworzyć, normalnie jaja z pogrzebu.)

end

 

 

Skąd on ma wziąć ID npc, skoro ty tylko zapisałeś ID przedmiotu, który użyłeś.

To tak jak byś w życiu realnym, do 200 osób powiedział, sprawdź czy masz 5 złotych, ale tylko chciał odpowiedź jednej osoby, tej o której pomyślałeś.Która to osoba ma być? Co jesteś jasnowidzem, skoro wymagasz tego od serwera?

 

 

@Edit

A teraz objawienie, funkcja rozwiązująca Twój wielki problem, multirespu przez timer.

 

when login with pc.in_dungeon() begin -- kiedy gracz sie zaloguje w dungeonie
if party.is_leader() then -- gdy jest liderem (lider z logicznego punktu widzenia może być tylko jeden)
d.regen_file("data/dungeon/resp.txt") -- zrzuć resp
end -- koniec warunku

loop_timer('sprawdz',5) -- daj dla wszystkich sprawdzanie statystyk w kliencie, wysyłanie funkcją cmdchat()
end
end

50596142255057180250.png

Opublikowano

Logiczne, że wyrzuci kanał skoro używasz funkcji serwerowej (dostępnej dla wszystkich) a odwołujesz się do ściśle określonego jednego gracza, JAKIEGO GRACZA? Skąd serwer ma wziąć VID? Wiedzieć, że to akurat do "Zenka" się odwołujesz?

 

To tak samo jak byś napisał:

when 1000.use begin -- użycie itemu o id 1000

npc.open_shop(10) -- a odwołanie się by ten npc otworzył sklep (masło maślane)

end

 

 

Skąd on ma wziąć ID npc, skoro ty tylko zapisałeś ID przedmiotu, który użyłeś.

To tak jak byś w życiu realnym, do 200 osób powiedział, sprawdź czy masz 5 złotych, ale tylko chciał odpowiedź jednej osoby, tej o której pomyślałeś.Która to osoba ma być?

Racja, brałem przykład z Funkcji Exela jachupl i było że niby działa więc próbowałem. 

Ale dlaczego np nie działają niektóre funkcje w server_timer? np notice_in_map? ona nie działa i wiele więcej. 

@ up: A jak go wyjebie z dungeonu to co ?:C koniec dla innych

Opublikowano

Poprawiłem post, poczytaj.

Ok też nad tym myślałem ale problem w tym że gdy wywali lidera z dunga to ten dungeon się skończy dla innych. Bo np zabiją resp i będzie kolejny regen a lidera już nie bedzie więc?

Pewnie da się qf zrobić czy jakos inaczej ale..

Opublikowano

Z tego co pamiętam to notice_in_map jest przypisane do gracza. A skąd serwer ma wiedzieć do jakiej mapy Ty się odwołujesz, do mapy o index 10 czy 20, skoro nic nie podałeś...

No a po co Ci kolejny raz sprawdzanie lidera..? Po raz pierwszy zrzucasz resp na lidera, a później jak już wykonasz zadanie,

 

-jak wybijesz wszystkie moby (resp nowego spotu)

-jak zdobędziesz item (resp nowego spotu)

-jak otworzysz pieczęć czy inny pomnik (resp nowego spotu)

-jak pokonasz xxx mobów, resp nowego spotu

 

 

 

itd...

To nie musi wykonywać lider.

50596142255057180250.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...