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

Pisanie / Poprawa Questów !


PoczatKujacy

Rekomendowane odpowiedzi

Opublikowano

Jak zrobić coś na wzór skrzyneczki jak u Baek-Go ? Chodzi mi o to ze muszę wsadzić przykładowo itemki 3x o id xxx , xxx i xxx aby dostać item o id xxx ?

Jeśli to jest quest na to to proszę o dodanie małego wytłumaczenia co za co odpowiada. Z góry Dziękuje .

  • Odpowiedzi 8,7 tys.
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Witam,

napisałem prostego questa, który po części działa:

http://wklej.to/x1lvb

Problemy są takie:

* po zalogowaniu na mapę z indeksem 83 nic się nie dzieje,

* timery nie działają,

* po zabiciu nic się nie dzieje

 

Jakieś rady?

sygnatura niezgodna z regulaminem forum mpc rozdział II pkt. 7

Opublikowano

Witam,

napisałem prostego questa, który po części działa:

http://wklej.to/x1lvb

Problemy są takie:

* po zalogowaniu na mapę z indeksem 83 nic się nie dzieje,

* timery nie działają,

* po zabiciu nic się nie dzieje

 

Jakieś rady?

 

Timer -- nie wiem jak inni ale mi nie dziala funkcja warp_all

do zabicia-- masz moze 2 quest pod jednego mobka aktywne dla pewnosci dodaj

when 2493.kill with game.get_event_flag("zabicie_smok") == 1 begin

do loginu daj sam index 83 z configu map

^^ Kliknij tutaj w dól ^^



"Narodowiec, nie nazista. Prawdziwy Polak - nacjonalista! Czołem!"


CaM


Opublikowano

Jak na moje oko to nie da się ustawić indexu komendą pc.warp, stąd też problemy z when login with pc.get_map_index() >= (83*10000) begin

Koniec z MPCForum.pl i ogółem z metinem

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Do czego służy system.sleep? Słyszałem, że do stopowania pętli? Prawda czy Fałsz?

 

system.sleep nadaje pauzę w milisekundach (ms), służy do krótkiego przerwania (spałzowania) programu w celu odciążenia zasobów systemowych.

Osobiście stosuję to tylko przy pętlach, a szczególnie przy while True.

Polecam 500 ms, okres krótki (pół sekundy) a starczy :).

PS : 1 ms = 0,001 s .

Jeśli chcesz przerwać byle jaką pętle to służy do tego funkcja : break.

Nawet jeśli przerwałeś pętlę funkcją break, i tak musisz ją zakończyć end'em .

 

Przykład do funkcji system.sleep :

while true do -- rozpoczynamy pętlę
system.sleep("500") -- dajemy krótką pauzę
-- reszta kodu
end

 

Przykład do funkcji break :

local i = 0
While True do
i = i+1
if i == 10 then
break
end
end

 

Jak zrobić coś na wzór skrzyneczki jak u Baek-Go ? Chodzi mi o to ze muszę wsadzić przykładowo itemki 3x o id xxx , xxx i xxx aby dostać item o id xxx ?

Jeśli to jest quest na to to proszę o dodanie małego wytłumaczenia co za co odpowiada. Z góry Dziękuje .

 

Potrzebujesz tzw cube .

By otworzyć to "okienko" używasz command("cube open")

Itemy itd dodajesz w germany w pliku cube.txt . Tenma albo kto inny pisał do tego generator, poszukaj :).

 

Przykład :

quest przyklad begin
state start begin
when id.chat."cube" begin
command("cube open")
end
end
end

 

Pozdrawiam .

Opublikowano

Jak myślicie, czy zadziała ten server_timer tylko na danej mapie, na której został uruchomiony?

 

server_timer("koniec", 15*60, pc.get_map_index())

 

 

 

when koniec.server_timer with pc.get_map_index() == xx begin

d.notice("Wasz czas się skończył, zostaniecie przeniesieni...")

pc.warp(0, 1203200)

 

Jeszcze jedno pytanie, potrzebuję coś takiego jak d.notice, tylko że wiadomosć dla graczy znajdujących się na mapie o indexie xx. d.notice niestety nie działa.

Opublikowano

Jak na moje oko to nie da się ustawić indexu komendą pc.warp, stąd też problemy z when login with pc.get_map_index() >= (83*10000) begin

Hm, czyli trzeba to inaczej zrobić. A co do zabicia? Dałem to ogółem (niezależnie od flag i mapy).

 

Jak myślicie, czy zadziała ten server_timer tylko na danej mapie, na której został uruchomiony?

 

server_timer("koniec", 15*60, pc.get_map_index())

 

 

 

when koniec.server_timer with pc.get_map_index() == xx begin

d.notice("Wasz czas się skończył, zostaniecie przeniesieni...")

pc.warp(0, 1203200)

 

Jeszcze jedno pytanie, potrzebuję coś takiego jak d.notice, tylko że wiadomosć dla graczy znajdujących się na mapie o indexie xx. d.notice niestety nie działa.

lepiej dać timer, a co do funkcji: notice_in_map()

sygnatura niezgodna z regulaminem forum mpc rozdział II pkt. 7

Opublikowano

Jak na moje oko to nie da się ustawić indexu komendą pc.warp, stąd też problemy z when login with pc.get_map_index() >= (83*10000) begin

 

pc.warp nie, ale pc.warp_local owszem. co do questu - przeglądałem go, i u mnie działał w 90% dobrze, poza zabiciem smoka.

 

oczywiście przeglądałem ten quest na stan dnia 28 marzec

 

umarł

Opublikowano

pc.warp nie, ale pc.warp_local owszem. co do questu - przeglądałem go, i u mnie działał w 90% dobrze, poza zabiciem smoka.

 

oczywiście przeglądałem ten quest na stan dnia 28 marzec

 

Teraz go napisałem od nowa i myślałem, że pozbędę się błędów a tu jeszcze większe :D

sygnatura niezgodna z regulaminem forum mpc rozdział II pkt. 7

Opublikowano

Może mi ktoś pomóc w dodaniu funkcji otwierającej sklep w pierścieniu teleportacji za pomocą itemu.

Kawałem questa:

 say("Test sklep")
 local mss=select("tak", "Nie")
 if mss == 1 then
  if pc.count_item(25000) >= 1 then
   npc.open_shop(1)
  else
   say("Nie posiadasz itemu !!!")

nie reklamujemy serwerów w sygnaturach

Opublikowano

Może mi ktoś pomóc w dodaniu funkcji otwierającej sklep w pierścieniu teleportacji za pomocą itemu.

Kawałem questa:

 say("Test sklep")
 local mss = select("tak", "Nie")
if mss == 2 then
return
end
 if mss == 1 and pc.count_item(25000) >= 1  then

   npc.open_shop(1)
  else
   say("Nie posiadasz itemu !!!")
end

 

W twoim kodzie w cytacie dałem poprawkę

Opublikowano

Hm, czyli trzeba to inaczej zrobić. A co do zabicia? Dałem to ogółem (niezależnie od flag i mapy).

 

 

lepiej dać timer, a co do funkcji: notice_in_map()

Słuchaj, no własnie zastanowiłem się i użyję timera zwykłego, przykładowo:

Gracz wchodzi na mapkę jakąś dodatkową przez moba, wchodząc uruchamia się timer("jakistam", 600)

 

when jakistam.timer begin

pc_warp(x, y)

 

Jeżeli gracz się wyloguje to timer nadal na niego działa? Tzn. przykładowo wylogowuję się na tejże mapce i jeżeli timer się spełni, wchodzę do gry po czasie i moja postać jest w kordach x, y?

Opublikowano

Słuchaj, no własnie zastanowiłem się i użyję timera zwykłego, przykładowo:

Gracz wchodzi na mapkę jakąś dodatkową przez moba, wchodząc uruchamia się timer("jakistam", 600)

 

when jakistam.timer begin

pc_warp(x, y)

 

Jeżeli gracz się wyloguje to timer nadal na niego działa? Tzn. przykładowo wylogowuję się na tejże mapce i jeżeli timer się spełni, wchodzę do gry po czasie i moja postać jest w kordach x, y?

 

timer zwykły nie ma możliwości przerwania, gdy już ruszył to musi się zakończyć, przez to inne PT może mieć "Buga" i będą jaja, jeśli poprzednie sie wyloguje i nie dokończy questa .

 

Przykład server_timer'a .

 

server_timer("timer", 5*60, get_server_timer_arg())  -- zaczynamy timer
when timer.server_timer begin -- gdy timer się dopełni.
Dla bezpieczeństwa go czyścimy : clear_server_timer("timer", get_server_timer_arg()) -- czyścimy tak timer .

 

To najlepszy timer, jak widzisz można dodać jakiś warunek i go wyczyścić wrazie co - taki timer można przerwać i nie spowoduje niepożądanych działań .

Opublikowano

timer zwykły nie ma możliwości przerwania, gdy już ruszył to musi się zakończyć, przez to inne PT może mieć "Buga" i będą jaja, jeśli poprzednie sie wyloguje i nie dokończy questa .

 

Przykład server_timer'a .

 

server_timer("timer", 5*60, get_server_timer_arg())  -- zaczynamy timer
when timer.server_timer begin -- gdy timer się dopełni.
Dla bezpieczeństwa go czyścimy : clear_server_timer("timer", get_server_timer_arg()) -- czyścimy tak timer .

 

To najlepszy timer, jak widzisz można dodać jakiś warunek i go wyczyścić wrazie co - taki timer można przerwać i nie spowoduje niepożądanych działań .

 

Eh, już sam nie wiem zmieniam te timery i zastanawiam się który lepszy, timer ogólnie służy do otwierania i zamykania mapy więc nie może być niepożądanych (chyba?) działań, zawsze można dodać kwestię

when koniec2.timer with pc.get_map_index() == xxbegin

pc_warp(x, y)

 

i gdy gracz będzie na innej mapie to po prostu go nie przeniesie w to miejsce bo nie będzie w pełni spełniony, prawda?

 

// edit poza tym timer działa na gracza który go uruchomił, jedyne z czym mógłby być problem to z ustawianiem event flagów timerem,

skoro timer rozpoczęty musi się spełnić, to jeżeli gracz będzie wylogowany to także się spełni? Bo nie zrozumiałem.

Opublikowano

Eh, już sam nie wiem zmieniam te timery i zastanawiam się który lepszy, timer ogólnie służy do otwierania i zamykania mapy więc nie może być niepożądanych (chyba?) działań, zawsze można dodać kwestię

when koniec2.timer with pc.get_map_index() == xxbegin

pc_warp(x, y)

 

i gdy gracz będzie na innej mapie to po prostu go nie przeniesie w to miejsce bo nie będzie w pełni spełniony, prawda?

 

@UP - tak, także się spełni .

 

 

Kombinuj, bo nie rozumiem do końca co chcesz osiągnąć .

Weź napisz na PW co chcesz osiągnąć + daj quest to coś we dwóch zdziałamy, tak będzie najlepiej :)

Opublikowano

Witam,

 

potrzebuje questa, który by wyświetlał nazwę gracza, którego zabiłem.

 

dla przykładu

 

 

quest pojedynek begin

state start begin

when kill with npc.is_pc begin

 

local zabity = (Nazwa zabitego gracza)

chat("Zabiłeś "..zabity.."")

end

end

end

Opublikowano

Witam,

 

potrzebuje questa, który by wyświetlał nazwę gracza, którego zabiłem.

 

dla przykładu

 

 

quest pojedynek begin

state start begin

when kill with npc.is_pc begin

 

local zabity = (Nazwa zabitego gracza)

chat("Zabiłeś "..zabity.."")

end

end

end

 

Nie da się tak, trzebaby przerobić binarkę, by wysyłała pakiet z vid'em zabitego playera luuub spróbuj tak :

quest xxx begin
state start begin
when login begin
local x = kill
end
when x with npc.is_pc() begin
say("zabiles "..x.."")
end
end
end

@UP - chcesz nadać nowy obraz jako tlo, czy dodać obraz na tło ?

Opublikowano

Nie da się tak, trzebaby przerobić binarkę, by wysyłała pakiet z vid'em zabitego playera .

 

@UP - chcesz nadać nowy obraz jako tlo, czy dodać obraz na tło ?

 

a jak bym pobrał info z logów z bazy?? bo zauważyłem, że zapisuje kto co i nawet nazwy graczy, dobra jutro sprawdzę czy będzie działało, dzięki za odpowiedź, leci "lajk"

Opublikowano

a jak bym pobrał info z logów z bazy?? bo zauważyłem, że zapisuje kto co i nawet nazwy graczy, dobra jutro sprawdzę czy będzie działało, dzięki za odpowiedź, leci "lajk"

 

Logów ? Hmm, zapowiada się ciekawie, napisz na PW to coś wymyślimy :).

Opublikowano

Mam pytanie. Mam własny priv i nie wiem jak zrobić biologa co 1sek.

A i jeszcze jak trzeba zrobić aby pierścieniem tele. można było się przenieść na mapę od np. 90lv.Jak by ktoś mógł pomóc mi w tym to proszę o PW. (Jak gdzieś jest napisane to prosze o link)

Z góry dzieki.



Zbierasz "Lubię to" ? To daj mi, a ja ci też dam ;>

Opublikowano

Witam, mogę prosić o naprawę tego questa ?..

quest awansowanie begin

state start begin

when levelup with pc.get_level() >= 80 and pc.get_level() < 249 begin

notice_all(pc.get_name().." awansował z poziomu "..pc.get_level()-1.." na poziom "..pc.get_level()..". Gratulujemy!")

end

end

end

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...