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

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

Witam, mam pierścień teleportacji oto część questa:

 

 

-------------------------------------------------------------------
---  Misja by Czarny dla CzarnyMT2 oraz Czarny-questy.cba.pl ---
--- Prosze o nie przypisywanie sobie cudzej pracy! Pozdrawiam ---
---    Życzę miłej zabawy i powodzenia     ---
-------------------------------------------------------------------
quest pierscien2 begin
state start begin
 when login or levelup with pc.count_item(80009) == 0 begin
  pc.give_item2(80009, 1)
 end
 when 80009.use begin
  say_title("Pierścień Teleportacji: ")
  say("Możesz wybrać miejsce, w które chcesz ")
  say("się przenieść. A więc? ")
  say("")
  say("Gdzie chciałbyć się przenieść? ")
  say("")
  local s = select("Miasta ", "Miasta2 ", "Expowiska ", "Inne ", "Anuluj ")
   if s == 5 then
 return
   end
   if s == 1 then
 say("Wybierz miasto do którego chcesz się przenieść ")
 say("")
 local d = select("Shinsoo ", "Chunjo ", "Jinno ", "Anuluj ")
  if d == 4 then
   return
  end
  if d == 1 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(474100, 954500)
  end
  if d == 2 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(63600, 166400)
  end
  if d == 3 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(959900, 269300)
  end
   end
   if s == 2 then
 say("Wybierz miasto do którego chcesz się przenieść ")
 say("")
 local f = select("Shinsoo ", "Chunjo ", "Jinno ", "Anuluj ")
  if f == 4 then
   return
  end
  if f == 1 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(353000, 882700)
  end
  if f == 2 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(145300, 240500)
  end
  if f == 3 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(863600, 245900)
  end
   end
   if s == 3 then
 say("Wybierz expowisko do którego chcesz się przenieść ")
 say("")
 local f = select("Loch pająków ", "Loch pająków V2 ", "Atlantyda ", "Atlantyda V2 ", "Anuluj ")
  if f == 5 then
   return
  end
  if f == 1 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(51200, 486400)
  end
  if f == 2 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(665600, 435200)
  end
  if f == 3 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(0, 1203200)
  end
  if f == 4 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(153600, 1203200)
  end
   end
   if s == 4 then
 say("Wybierz, gdzie chcesz się przenieść! ")
 say("")
 local g = select("Dolina Orków ", "Pustynia ", "Góra Sohan ", "Dzikie Miasta", "Anuluj ")
  if g == 5 then
   return
  end
  if g == 1 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(332600, 746800)
  end
  if g == 2 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(295600, 548100)
  end
  if g == 3 then
   say("Zostaniesz przeniesiony! ")
   say("")
   wait()
   pc.warp(434700, 214200)
  end
  if g == 4 then
   say("Wybierz Dzikie Miasto do którego chcesz przejść ")
   say("")
   local e = select("Jungrang - Shinsoo ", "Waryong - Chunjo ", "Imha - Jinno ", "Anuluj ")
    if e == 4 then
	 return
    end
    if e == 1 then
	 say("Zostaniesz przeniesiony! ")
	 say("")
	 wait()
	 pc.warp(135600, 4300)
    end
    if e == 2 then
	 say("Zostaniesz przeniesiony! ")
	 say("")
	 wait()
	 pc.warp(221900, 9300)
    end
    if e == 3 then
	 say("Zostaniesz przeniesiony! ")
	 say("")
	 wait()
	 pc.warp(271800, 13000)
    end
  end
   end
 end
end
end

 

 

 

Chciałbym dodać takie coś, że jeśli ktoś wybierze np. atlantyde v2 sprawdzany jest jego lvl, jeżeli lv jest mniejszy od np. 90 to wyświetla się wiadomość: Na tę mapę możesz się teleportować dopiero po osiągnięciu 90 poziomu! Proszę o przykład tylko, lajk oczywiście za wytłumaczenie ;)

Opublikowano

tutaj jest if odpowiedzialny za prze teleportowanie na atlantydę v2

 

		  if f == 4 then
	   say("Zostaniesz przeniesiony! ")
	   say("")
	   wait()
	   pc.warp(153600, 1203200)
	  end

wystarczy zrobić tak :

if f == 4 then
if pc.get_level() >= 90 then
say("Zostaniesz przeniesiony! ")
say("")
wait()
pc.warp(153600, 1203200)
else
say("Na tę mapę możesz się teleportować ")
say("dopiero po osiągnięciu 90 poziomu!")
end
end

Opublikowano

Witam.

 

Potrzebuje funkcji resetu questa, a mianowicie chodzi o to, że chce aby quest można było wykonywać za każdym razem, ale za każdym razem trzeba zabić 40 mobów. Quest który biore za 1-wszym razem działa poprawnie, trzeba zabić 40 mobów, lecz gdy 2-gi raz wezmę questa, wystarczy zabić jednego moba, wie ktoś jak to naprawić? Funkcja restart_quest() nie działa...

 

 

quest pajaczki begin
state start begin
 when 20088.chat begin
  say_title(mob_name(20088)..":")
  say_red("Witaj")
  say("Jeśli chcesz zdobyć przepustke")
  say("Musisz zabić 40 Silny Pustynny Zawadiaka")
  say_green("Nie ociągaj się ")
  setstate(zabij)
 end
end
state zabij begin
 when 2158.kill begin
  local count = pc.getqf("ile")+1
   if count < 40 then
 pc.setqf("ile", count)
   elseif count == 40 then
 say_green("Zabiłeś wymaganą ilość mobów! ")
 say_green("Otrzymujesz przepustkę ")
 say_red("Jeśli byś jeszcze potrzebował przepustek")
 say_red("Możesz znów przyjść do mnie po tą misję ")
 say("")
 pc.give_item2(71095, 1)
 setstate(start)
   end
 end
end
end

 

Opublikowano

A tak swoją drogą, nie róbcie amatorszczyzny. Po co taka budowa?

if a == 1 then
...
end
if a == 2 then
...
end
if a == 3 then...

Przecież po to jest elseif żeby nie trzeba było tak zakańczać.

 

lopescio:

 

quest pajaczki begin
state start begin
 when 20088.chat begin
  if pc.getqf("ile") > 0 then
pc.setqf("ile", 0)
  end
  say_title(mob_name(20088)..":")
  say_red("Witaj")
  say("Jeśli chcesz zdobyć przepustke")
  say("Musisz zabić 40 Silny Pustynny Zawadiaka")
  say_green("Nie ociągaj się ")
  setstate(zabij)
 end
end

state zabij begin
 when 2158.kill begin
  local count = pc.getqf("ile")+1
  if count < 40 then
pc.setqf("ile", count)
  elseif count == 40 then
say_green("Zabiłeś wymaganą ilość mobów! ")
say_green("Otrzymujesz przepustkę ")
say_red("Jeśli byś jeszcze potrzebował przepustek")
say_red("Możesz znów przyjść do mnie po tą misję ")
say("")
pc.give_item2(71095, 1)
setstate(start)
  end
 end
end
end

 

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Dobra, rozumiem. Musisz gdzieś zapisać sobie czas, czyli robisz pc.setqf("czas", get_time()). Później tylko robisz

say("Pozostało "..pc.getqf("czas")-get_time().." sekund")

Można podzielić na 60 i będziesz miał w minutach.

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Kwiatmix dam Ci z przykładu mojego questu catacumb :

 

when devildownstone1.timer begin
  d.notice("Pozostało:: 15 minut")
  timer('devildownstone2', 300)
 end
 when devildownstone2.timer begin
  d.notice("Pozostało:: 10 minut.")
  timer('devildownstone3', 300)
 end
 when devildownstone3.timer begin
  d.notice("Pozostało: 5 minut.")
  timer('devildownstone4', 300)
 end
 when devildownstone4.timer begin
  d.notice("Niestety nie udało wam się.")
  d.notice("Zostaniecie przeniesieni...")
  d.exit_all()
 end

Pomogłam? Daj: "Lubie to"

Opublikowano

@up, oj lipa... timer dłuższy niż 10-20 sekund wysadzi Ci game w powietrze a z nim wszystkie kanały.

Nie powinienem tego pisać ale niech to będzie moja wskazówka.

 

I od razu odpowiem na Twoje kolejne pytanie: "Przecież mi nie wywala kanałów"

Wiec.. sam grasz to Ci nie wywala, zobaczysz jak przyda ludzie.

50596142255057180250.png

Opublikowano

Dobra, rozumiem. Musisz gdzieś zapisać sobie czas, czyli robisz pc.setqf("czas", get_time()). Później tylko robisz

say("Pozostało "..pc.getqf("czas")-get_time().." sekund")

Można podzielić na 60 i będziesz miał w minutach.

Właśnie tego mi brakowało:

 

-get_time()

Dzięki :D!

Opublikowano

Nigahiga coś kiepski z Ciebie postmaker ;D Ja quest catacum spalszszczałam i dziwne że nic mi nie wywala ;x ;-) zajmij się graniem w Metina a nie pisaniem questów /edycją clienta/plików serwerowych ;**

Pomogłam? Daj: "Lubie to"

Opublikowano

@up

Ten timer jest kiepski, w dungeonach używa się server_timer, dlaczego?

A co jak zadanie zostanie wykonane przed wywaleniem ? Timer będzie leciał dalej :)

PS: Z postów które widzę, człowiek zna się na rzeczy :) (chodzi o

Opublikowano

Na tym forum osiągnąłem już dużo. Mam swój serwer i wiem co mówię. Chciałem się tylko podzielić wiedzą / błędami, które popełniłem byś Ty na przyszłość ich nie popełnił. Wiedziałem, że tak odpiszesz dlatego odpowiedź na Twoje pytanie napisałem wcześniej. Powodzenia, a ja dalej idę grać w tego "Metina" hehe.

50596142255057180250.png

Opublikowano

lopescio, tutaj masz:

http://www.mpcforum.pl/topic/462713-prosbazmiana-questy/

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Mógł by mi ktoś wrzucić ładny czytelny quest na zmiane nicku, miałem gdzieś na kompie, ale mi zginął...


quest kwiatmix_zmiana_nicku begin
state start begin
when id_npc.chat."Zmień mi nick" begin
say("Chcesz zmienić swój nick?")
say("Aktualnie się nazywasz:")
say_reward(pc.get_name().."!")
local zmien = select("Zmieniam!", "Nie zmieniam!")
if zmien == 2 then
return
elseif zmien == 1 then
say("Wpisz nowy nick:")
local nick = input()
pc.change_name(nick)
say("Zmieniłeś swój nick, przeloguj się!")
end
end
end
end

Napisałem na szybko :D

Opublikowano

ret = pc.change_name(string) zwraca wartości bodajże, 0,1,2 gdzie..

 

zwracająca zmienna ret ma może przyjąć wartości:

0 = Istnieje już taki nick
1 = Nie możesz używać kodu ascii / tylko litery i liczby
2 = Wszystko pomyślnie. && item.remove()

Nie pamiętam teraz konstrukcji dokładnej tego ale łatwo można sobie to wszystko outputować w say(ret) używając kombinacji np. Wpisujemy nick z ™ albo nick, który już istnieje itd..

50596142255057180250.png

Opublikowano

Nigahiga, ja mam do Ciebie takie pytanie. Kiedyś podawałeś komendy powodujące wylogowanie. /quit to było wyjście z gry, /phase_select to było wyjście do zmiany postaci, a jak jest wylogowanie?

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Potrzebuje questa do pierścienia w którym będę mógł wybrać:

Skile na P

Range

Expa

Yang

I jeśli by można było to żeby pisało, że jest jakiś max czyli np. w Yang max wynosi 1.999.999.999 Yang.

 

Pozdrawiam, za pomoc daje 5 Lajków i pione!

Opublikowano

Nigahiga, ja mam do Ciebie takie pytanie. Kiedyś podawałeś komendy powodujące wylogowanie. /quit to było wyjście z gry, /phase_select to było wyjście do zmiany postaci, a jak jest wylogowanie?

 

Nie powiem Ci ponieważ mam wyłączone logowanie do syslog, gdy potrzebuję to uruchamiam VPS'a ale teraz nie jest mi to na rękę. Jeśli używasz starszych wersji game to zaloguj się, wyloguj i będziesz miał informację co za komenda została użyta. Ale strzelam w ciemno, że jest to logout

50596142255057180250.png

Opublikowano

affect.add_collect(6, 2000, 60*60*24*365*60) - w tym wypadku zadziała to jako bon na HP, gdyż POINT_MAX_HP = 6

 

A nie mozna tego slownie wpisac ;]

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...