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 wszystkich,

 

when cośtamcośtam.use begin

local vnum = item.get_vnum()

 

I dalej gdzieś w queście:

if pc.count_item(vnum) == 0 then

 

 

Na końcu:

item.remove()

 

Czy to będzie prawidłowe? Jeżeli podajecie gotowe prosze o wyjaśnienie dlaczego tak, a nie inaczej. Nie żeruje na gotowcach, chciałbym się czegoś nauczyć 8)

Opublikowano

when cośtamcośtam...

 

jeśli nie posiadasz żadnego itemu o ID item.get_vnum() usuwam przedmiot

 

-- jeden komentarz ode mnie, lol

Opublikowano

Podałem 3 wyciągnięte na żywca funkcje, czy one ogólnie są prawidłowe?

Nie powinno być tak? item.remove(vnum)

Czy tylko sam pusty nawias?

 

Bo załóżmy, że mam kilka przedmiotów w eq o id cośtamcośtam i ktoś używa buga (a jest ich troszkę) to gdy nagle ten item zniknie na którego kliknął (nadal zostają itemki w które nie kliknął o takim samym id) to

 

if pc.count_item(vnum) == 0 then

return

 

end

 

 

Powiedzie się? W sensie że zakończy się quest.

Opublikowano

Nie widzę kodu, więc Ci nie powiem.

 

pc.remove_item(ID, Ilosc)

 

ot cała filozofia. Jeśli chodzi o coś innego, to przedstaw chociaż część kodu, w której jest to usuwanie przedmiotów i powiedz o co dokładnie Ci chodzi.

Opublikowano

prosze o questa, w ktorym po kliknieciu na npc (ID jeszcze nie ustalone, zmienie sam) bedzie on teleportowal do Groty V2

 

prosze jeszcze o dopisanie, aby w tym quescie wstep byl od 75 lvl

 

quest grota_wygnancow begin

state start begin

when 20093.chat."Chcę Wejść " begin

say_title("Koe-Pung:")

local wstep =

"Witaj,[ENTER]Mogę Cię przenieść do Groty Wygnańców,"..

"Lecz musisz mi ukazać Krwisty Kamień."

say(wstep)

 

local wybor = select("Przekaż Krwisty Kamień ",

"Anuluj")

 

if wybor == 2 then

return

elseif wybor == 1 then

local brak_kamienia =

"Wybacz ale nie posiadasz Krwistego Kamienia."

local kamien_akceptowany =

"Posiadasz Krwisty Kamień "..

"Zostaniesz Przeniesiony!"

local krwisty_kamien = 30190

local x = 100*100

local y = 12078*100

if pc.count_item(krwisty_kamien) > 0 then

say_title("Koe-Pung:")

say(kamien_akceptowany)

pc.remove_item(krwisty_kamien, 1)

pc.warp(x,y)

else

say_title("Koe-Pung:")

say(brak_kamienia)

npc.lock()

end

end

end

end

end

 

 

 

z gory dzieki ;]

Opublikowano

Na końcu questa dodaj timer, a gdy się skończy dodaj pod nim restart_quest()

1242180339343opt.png

 

pc.setqf("czas", get_time()+60*30) i na początku przyrównujesz if get_time() >= pc.getqf("czas") then

 

P.S. nie zapomnij ustawić state na start.

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

może przykład dla restart_quest ...

masz do zabicia 5 psów, potem wracasz, znów 5 konii, wracasz i znów 5 kotów ale w minutę i nie udaje Ci się i wtedy musisz rozpocząć CAŁY quest od początku czyli wracamy do zabicia 5 psów. zrozumiałe?

 

@3x up

 

najprostszy sposób :

when 20093.chat."Chcę Wejść " with pc.get_level() >= 75 begin

Inaczej :

if pc.get_level() >= 75 then
pc.warp(x,y)
else
say("bleee nie masz 75")
end

 

umarł

Opublikowano

@up możesz też zrobić że jeżeli misja się nie powiedzie to żeby przenosił na początek questu np. poprzez

 

set_state(start)

lub

restart_quest()

 

Jedno z tych dwóch wystarczy wstawić w tym miejscu, w którym chcesz żeby quest się resetował.

Opublikowano

quest trollolo begin
state start begin
when login with pc.getqf("troll") == 0 begin
say("Tej opcji mozesz uzyc tylko raz, zastanow sie wiec dobrze")
pc.setqf("troll", 1)
local t=select("Szukaj przyjaciol", "Rezygnuje")
if t==1 then
notice_all(pc.get_name().." szuka przyjaciol, piszcie mu na PW")
else
return
end
end
end
end

 

Potrzebny czy nie, lepiej żeby był.

Pozdro

PISZĘ QUESTY NA ZAMÓWIENIE.

 

KONTAKT TUTAJ (PW) LUB GG : 41606138

Opublikowano

return i else nie potrzebny. pozdro.

 

 

quest trollolo begin
state start begin
when login with pc.getqf("troll") == 0 begin
say("Tej opcji mozesz uzyc tylko raz, zastanow sie wiec dobrze")
pc.setqf("troll", 1)
local t=select("Szukaj przyjaciol", "Rezygnuje")
if t==1 then
notice_all(pc.get_name().." szuka przyjaciol, piszcie mu na PW")
end
end
end
end

 

@up

ale po chuj ;| ?

 

umarł

Opublikowano

1242180339343opt.png

 

pc.setqf("czas", get_time()+60*30) i na początku przyrównujesz if get_time() >= pc.getqf("czas") then

 

P.S. nie zapomnij ustawić state na start.

 

Źle go wtedy zrozumiałem

Opublikowano

Jaka funkcja wczytuje ponowne wstanie ? Jest chociażby taka ?

 

Napisałem questa na zdejmowane pieczątki i zakładane wykorzystałem w quescie funkcje pc.is_dead() ale kiedy dedam postać szybko wchodzi na mounta po czym pada na glebę = )

 

A ma być wejście na mounta po daniu "Rozpocznij tutaj" ;X

 

Za pomoc będą laiki =)

Opublikowano

if pc.is_dead() then
else
pc.mount()

 

Innej funkcji nie znajdziesz.

Można zrobić jeszcze pętlę do tego aby sprawdzało kiedy jesteśmy żywi a kiedy nie, ale obciąża to serwer, także.

Nie ma takowej funkcji - wracając do tematu.

 

Przeglądając gejma znajdziesz jedynie

respawn_here
respawn_town

 

Ale to nie jest funkcja do questów. Poza tym nie znam się na edycji gejma, także jedyne co Ci zostaje to albo zrobić pętlę albo użyć tego co napisałem wyżej. (pewno nie zadziała, bo nie będzie sprawdzać czy cały czas jesteśmy żywi czy martwi)

PISZĘ QUESTY NA ZAMÓWIENIE.

 

KONTAKT TUTAJ (PW) LUB GG : 41606138

Opublikowano

Siemka naprawi ktoś mi tego questa bo jak daje marmur to po przemienieniu od razu wraca do normalnej postaci i nie przenosi na dungeon

 

quest wymiar_wladcow begin
state start begin
 when 20086.chat."Wymiar Władców" with pc.get_level()>=100 and pc.get_level()<=249 begin
							 say_title("Strażnik Wymiaru Władców:")
							 say("Ta Magiczna moc pozwala Twojej Postaci otworzyć ")
							 say("bardzo tajemniczy Wymiar Władców, w którym musisz")
							 say("pokonać każdego przeciwnika w najszybszym czasie.")
							 say_red("Uwaga!")
							 say_red("Wybierz sobie marmur w jakim chcesz walczyć")
							 say_red("i bonus typu otrucie lub inne...!")
							 say_reward("")
							 say_reward("")
							 say("")
							 wait()
							 if pc.money>=10000000 and not party.is_party() then
							 say_title("Strażnik Wymiaru Władców:")
							 say("Posiadasz wystarczajaca ilosc yang.")
							 say("")
							 say_reward("Jestes gotowy?")
							 local q=select("Jestem Gotów!", "To nie ten moment...")
							  if q==1 then
say("Wybierz moba, w którego chcesz się przemienić...")
local y = select("Dziki sługa", "Młody Pająk", "Ezot. Fanatyk", "Dziki Pies")
if y == 1 then
pc.polymorph(502)
elseif y == 2 then
pc.polymorph(2001)
elseif y == 3 then
pc.polymorhp(701)
elseif y == 4 then
pc.polymorph(101)
end
say("Wybierz bonus, który pomoże Ci w walce z bossami !")
local z = select("30% szans na otrucie", "20% szans na kryt. uderzenie", "20% szans na przesyw. uderzenie", "+1250 wartości ataku")
if z == 1 then
affect.add(apply.POISON_PCT,30,30*60)
elseif z == 2 then
affect.add(apply.CRITICAL_PCT,20,30*60)
elseif z == 3 then
affect.add(apply.PENETRATE_PCT,20,30*60)
elseif z == 4 then
affect.add(apply.ATT_GRADE_BONUS,1250,30*60)
end

							  say_title("Strażnik Wymiaru Władców:")
							  say("Zostaniesz przeniesiony do Wymiaru Władców.")
							   pc.setqf("starcik", 1)
							   pc.changemoney(-10000000)
							   d.join(66)
							  end
							  end
							  end
 when login with pc.in_dungeon() and pc.getqf("starcik") == 1 begin
 notice_in_map("Witaj w Wymiarze Władców...")
 timer("start2", 3)
 pc.setqf("starcik", 0)
 pc.setqf("starcik2", 1)
 affect.remove_good()
 end
 when start2.timer begin
 pc.setqf("starcik2", 1)
 d.new_jump_all(66, 2181, 7335)
 end
 when login with pc.getqf("starcik2") == 1 and pc.in_dungeon() begin
 timer("wymiar_2", 5)
 end
 when wymiar_2.timer begin
 pc.setqf("starcik2", 0)
 notice_in_map("No to zaczynamy! Oto 9 Ogonów!")
 mob.spawn(1901, 155, 683, 1, 1, 1)
 d.jump_all(2181, 7335)
 pc.setqf("time1", get_time())
 end
 when 1901.kill with pc.in_dungeon() begin
 notice_in_map("9 Ogonów zostało pokonane!")
 timer("wymiar_3", 5)
 end
 when wymiar_3.timer begin
 notice_in_map("No to zaczynamy! Oto Zjawa Zoltego Tygrysa!")
 d.jump_all(2181, 7335)
 mob.spawn(1304, 155, 683, 1, 1, 1)
 end
 when 1304.kill with pc.in_dungeon() begin
 notice_in_map("Zjawa Zoltego Tygrysa została Pokonana!")
 timer("wymiar_4", 5)
 end
 when wymiar_4.timer begin
 mob.spawn(691, 155, 683, 1, 1, 1)
 notice_in_map("No to zaczynamy! Oto Wódz Orków!")
 d.jump_all(2181, 7335)
 end
 when 691.kill with pc.in_dungeon() begin
 notice_in_map("Wódz Orków został pokonany!")
 timer("wymiar_5", 5)
 end
 when wymiar_5.timer begin
 mob.spawn(2091, 155, 683, 1, 1, 1)
 notice_in_map("No to zaczynamy! Oto Królowa Pajaków!")
 d.jump_all(2181, 7335)
 end
 when 2091.kill with pc.in_dungeon() begin
 notice_in_map("Królowa Pajaków została pokonana!")
 timer("wymiar_6", 5)
 end
 when wymiar_6.timer begin
 mob.spawn(1093, 155, 683, 1, 1, 1)
 notice_in_map("No to zaczynamy! Oto ostatni przeciwnik! Umarły Rozpruwacz!")
 d.jump_all(2181, 7335)
 end
 when 1093.kill with pc.in_dungeon() begin
 notice_in_map("Pomyslnie ukończyłeś wyzwanie Wymiaru Władców!")
 notice_in_map("Za 10 sekund zostaniesz przeniesiony do Pierwszego Miasta!")
 timer("wymiar_exit", 10)
 pc.remove_polymorph()
 pc.setqf("czas", 1)
 pc.setqf("time2", get_time())
 end
 when wymiar_exit.timer begin
 warp_to_village()
 end
 when login with pc.getqf("czas") == 1 begin
 pc.setqf("czas", 0)
 pc.remove_polymorph()
 local x = pc.getqf("time1")
 local y = pc.getqf("time2")
 local s = pc.setqf("time3", y-x)
 local czas = pc.getqf("time3")
 local nejm = pc.get_name()
 say_title("Wymiar Władców")
 say("Gratulacje "..nejm.."!")
 say("Twój czas to: "..czas.." sekund.")
 say("Wyniki znajdziesz na stronie głownej!")
 say("")
 say_reward("Walcz o najlepszy czas w Wymiarze Władców!")
 say_reward("Nie daj się konkurencji...")
 say_reward("Mogło być lepiej?")
 notice_all(" "..pc.get_name().." ukończył Wymiar Władców Łatwy z czasem "..czas.." Sekund !")
 affect.remove()
 end
 end
 end

 

 

Tak tak kasujcie stopkę bo po to to zrobiłem :)

0 Szacunku do czyjejś pracy...

 

--------------------------------------------
--  Wymiar Wladcow
--	  Copyright © GrottoOfExile 2012.
--	  All rights reserved.
--  
--	  Made by Matuszny1987
--	  http://www.grottoofexile.pl
--	  http://www.adriank.pl
--	  http://www.youtube.com/adriank1410
--  Copyright ©2012. All rights reserved.
--
--	  This quest and any others with comment
--	  like this is GrottoOfExile private
--	  Metin2 server copyright and is
--	  protected by law in Poland and
--	  in any other country.
--
--	  If you have found or bought this file,
--	  please contact us!
--
--	  DO NOT REMOVE THIS COMMENT!
--	  DO NOT COPY!
--	  DO NOT PUBLISH!
--	  DO NOT SELL!
--------------------------------------------

 

Każdy twór jest chroniony prawem autorskim. :)

Kurwa, mistrz!


VLXxO.png

 

Opublikowano

if pc.is_dead() then
else
pc.mount()

 

Innej funkcji nie znajdziesz.

Można zrobić jeszcze pętlę do tego aby sprawdzało kiedy jesteśmy żywi a kiedy nie, ale obciąża to serwer, także.

Nie ma takowej funkcji - wracając do tematu.

 

Przeglądając gejma znajdziesz jedynie

respawn_here
respawn_town

 

Ale to nie jest funkcja do questów. Poza tym nie znam się na edycji gejma, także jedyne co Ci zostaje to albo zrobić pętlę albo użyć tego co napisałem wyżej. (pewno nie zadziała, bo nie będzie sprawdzać czy cały czas jesteśmy żywi czy martwi)

 

Słyszałem od kogoś, że niby ps.is_dead() nie zadziała bo postać jest ciągle żywa :D

Opublikowano

Witam istnieje funkcja dzięki której lider pt będzie mógł przenieść pt na daną mapę ??

 

 

if party.is_leader() then
d.join(66)
else
say_title("Uriel:")
say("")
say_red("Nie jesteś liderem grupy, nie mogę was wpuścić.")
end

 

umarł

Opublikowano

Hej sprawdzilibyscie mi tego questa czy jest poprawny ?

quest PierscienLevi begin
state start begin
when login or levelup with pc. level >= 100 begin
set_state(info)
end
end
state info begin
when letter begin
local v = find_npc_by_vnum(30122)
if v != 0 then
target.vid("__TARGET__", v, "Duch Wojownika")
end
send_letter("Pierscien Levi")
end
when button of info begin
say_title("Pierscien Levi")
say("Witaj!")
say("Kowal ma dla Ciebie zadanie")
say("Udaj sie do niego z pomoca")
say_reward("Udaj sie do kowala!")
end
when __TARGET__.target.click or
20016.chat."Pierscien Levi" begin
target.delete("__TARGET__")
say_title("Pierscien Levi")
say("Wkoncu przybyles, musisz mi pomoc! Aktualnie potrzebny jest mi Pierscien Levi, musisz go zdobyc!")
set_state(Levi)
end
end
state Levi begin
when letter begin
send_letter("Zdobadz Pierscien Levi")
end
when button or info begin
say("Musisz dropnac Pierscien Levi")
end
when 1093.kill with pc.countitem(40002)==0 begin
local random = math.random(3)
if random == 1 then
pc.give_item2(40002, 1)
say("Udalo sie! Dropnales Levi")
say("Udaj sie do Kowala po nagrode!")
local v = find_npc_by_vnum(20016)
if v != 0 then
target.vid("__TARGET__", v, "Kowal")
end
end
end
when 20016.chat."Pierscien Levi" with pc.countitem(40002)>0 begin
target.delete("__TARGET__")
say_title("Zdobyles Pierscien Levi!")
say("Dziekuje, bardzo mi pomogles!")
say_reward("Jako nagrode otrzymujesz 2x 6/7 bon")
pc.remove_item(40002, 1)
pc.give_item2(71051, 2)
set_state(__COMPLETE__)
end
end
state __COMPLETE__  begin
end
end

Opublikowano

UP, trzymaj, poprawiłem go

 

quest pierscienlevi begin
state start begin
 when login or levelup with pc.get_level() >= 100 begin
  set_state(info)
 end
end
state info begin
 when letter begin
  local v = find_npc_by_vnum(30122)
  if v != 0 then
target.vid("__TARGET__", v, "Duch Wojownika")
  end
  send_letter("Pierscien Levi")
 end
 when button or info begin
  say_title("Pierscien Levi")
  say("Witaj!")
  say("Kowal ma dla Ciebie zadanie")
  say("Udaj sie do niego z pomoca")
  say_reward("Udaj sie do kowala!")
 end
 when __TARGET__.target.click or
  20016.chat."Pierscien Levi" begin
  target.delete("__TARGET__")
  say_title("Pierscien Levi")
  say("Wkoncu przybyles, musisz mi pomoc! Aktualnie potrzebny jest mi Pierscien Levi, musisz go zdobyc!")
  set_state(levi)
 end
end
state levi begin
 when letter begin
  send_letter("Zdobadz Pierscien Levi")
 end
 when button or info begin
  say("Musisz dropnac Pierscien Levi")
 end
 when 1093.kill with pc.count_item(40002)==0 begin
  local random = math.random(3)
  if random == 1 then
pc.give_item2(40002, 1)
say("Udalo sie! Dropnales Levi")
say("Udaj sie do Kowala po nagrode!")
local v = find_npc_by_vnum(20016)
if v != 0 then
 target.vid("__TARGET__", v, "Kowal")
end
  end
 end
 when 20016.chat."Pierscien Levi" with pc.count_item(40002)>0 begin
  target.delete("__TARGET__")
  say_title("Zdobyles Pierscien Levi!")
  say("Dziekuje, bardzo mi pomogles!")
  say_reward("Jako nagrode otrzymujesz 2x 6/7 bon")
  pc.remove_item(40002, 1)
  pc.give_item2(71051, 2)
  set_state(__COMPLETE__)
 end
end
state __COMPLETE__  begin
end
end

 

błędy jakie miałeś to:

 

pc. level - powinno być pc.get_level()

when button of info begin - powinno być when button or info begin

pc.countitem(40002) - powinno być pc.count_item(40002)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...