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

@up zobacz jeszcze raz że local bony nie kończy się na

local bony = select("10% szybkość ataku", "+200 siła ataku", "30% szansa na krytyczne uderzenie", "30% na otrucie"

tylko na

local bony = select("10% szybkość ataku", "+200 siła ataku", "30% szansa na krytyczne uderzenie", "30% na otrucie", "Nie chce")

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

Może mi ktoś napisać quest który pokazuje na czacie gm'a ze gracz o takim nicku zalogował się i jest liderem gildii jakiejś .

Takie coś jak jest na Ytian2.

sygnaac.png

wowaw.png

Opublikowano

when login with pc.is_gm() begin
notice("GM : "..pc.get_name().." zalogował się do gry.")
end

Takie coś ? bo nie zrozumiałem

 

@2x up

nie dowiedziałem

 

umarł

Opublikowano

@Stelios to wszystko przez to że nie miałem na czym przetestować. Teraz dzięki pomocy newjaa będę mógł testować questy u niej na serwerze , więc będę testować przez wrzuceniem.

 

@Vatu sprawdź teraz poprawiłem if-y

 

quest dugeon begin
state start begin
	when 20003.chat."Bicie mobów" begin
		say_title("Bicie mobów")
		say("Pamiętaj żeby przenieść się na mapę musisz mieć min. 50 lvl")
		say("Przenieść cię na mapę ??")
		local s = select("TAK","NIE")
		if s == 2 then
			return
		elseif s == 1 then
			if pc.get_level() < 50 then
				say("Musisz mieć min. 50 lvl żeby wejść.")
				return
			elseif party.is_leader() then
				say("Nie możesz mieć pt")
				return
			else
				say("OK zaraz cię przeniosę ")
				say("Wybierz sobie jeden bonus")
			end
			local bony = select("10% szybkość ataku", "+200 siła ataku", "30% szansa na krytyczne uderzenie", "30% na otrucie", "Nie chce")
			if bony == 1 then
				affect.add(apply.MOV_SPEED, 10, 60*60*24*365*60)
				d.join(12)
				pc.setqf("dungeon", 1)
			elseif bony == 2 then
				affect.add(apply.ATT_GRADE_BONUS, 200, 60*60*24*365*60)
				d.join(12)
				pc.setqf("dungeon", 1)
			elseif bony == 3 then
				affect.add(apply.ATT_POINT_CRITICAL_PCT, 30, 60*60*24*365*60)
				d.join(12)
				pc.setqf("dungeon", 1)
			elseif bony == 4 then
				affect.add(apply.ATT_POINT_POISON_PCT, 30, 60*60*24*365*60)
				d.join(12)
				pc.setqf("dungeon", 1)
			elseif bony == 5 then
				d.join(12)
				pc.setqf("dungeon", 1)
			end
		end
	end

	when login with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		if pc.getqf("dungeon") > 0 then
			pc.setqf("dungeon", 0)
			d.notice("Witaj na mapie.")
			d.notice("Porozwalj moby...")
			d.spawn_mob(691, 10000, 9900)
			pc.setqf("time1", get_time())
		end
	end

	when 691.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Wodz Orkow")
		d.notice("Zaraz pojawi się Elitarny Wodz Orkow")
		d.spawn_mob(692, 10000, 9900)
	end

	when 692.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Elitarny Wodz Orkow")
		d.notice("Zaraz pojawi się Umarly Rozpruwacz")
		d.spawn_mob(1093, 10000, 9900)
	end

	when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Umarłego Rozpruwacza")
		d.notice("Zaraz pojawi się Niebieska Smierc")
		d.spawn_mob(1095, 10000, 9900)
	end

	when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Niebieską Smierc")
		d.notice("Zaraz pojawi się Lodowa Wiedzma")
		d.spawn_mob(1191, 10000, 9900)
	end

	when 1191.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Lodową Wiedzme")
		d.notice("Zaraz pojawi się Silna Lodowa Wiedzma")
		d.spawn_mob(1192, 10000, 9900)
	end

	when 1192.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Silną Lodowa Wiedzme")
		d.notice("Pokonałeś już wszystkich.")
		pc.setqf("time2", get_time())
		pc.setqf("bicie_mobow", 3)
		timer("dowidzenia", 10)
		affect.remove()
	end

	when dowidzenia.timer begin
		d.exit_all()
	end

	when login with pc.getqf("bicie_mobow") == 3 begin
		pc.setqf("bicie_mobow", 0)
		local x = pc.getqf("time")
		local y = pc.getqf("time2")
		local diff = pc.setqf("time3", y-x)
		if y-x > 60 then
			say("Twój czas to: "..diff/60.." minut.")
		else
			say("Twój czas to: "..diff.." sekund.")
		end
	end
end
end

 

 

d.join(12)

pc.setqf("dungeon", 1)

pc.setqf() musi być przed d.join() :)

Opublikowano

@z4z0l

chodziło mi o to ze na czacie gma pisze ze gracz o nicku takim zalogował sie i pisze ze jest liderem gildi np Banan.Można brać z nim wojny.

A nie o to ze pisze jak gm się zalogowal.

sygnaac.png

wowaw.png

Opublikowano

Witam napisze mi ktoś dungeona coś na wzór tego

 

 

quest Witek_dungeon begin
 state start begin
when 9992.chat."Dolina Wolkanow" begin
  say_reward("Mumia:")
  say("Chcesz isc do Doliny Wolkanow?")
  local wejscie = select("Tak.", "Nie.")
 if wejscie == 2 then
  return
 elseif wejscie == 1 then
  say_reward("Mumia:")
  say("Okej, przeteleportuje ciebie.")
  wait()
  d.join(700)
  pc.setqf("dungeon", 1)
end
end
when login with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
 if pc.getqf("dungeon") > 0 then
  pc.setqf("dungeon", 0)
  d.notice("Witaj w Dolinie Wolkanow!")
  d.notice("Rozwalcie x metinow i idzcie dalej...")
  d.spawn_mob(8030, 1316, 678)
end
when 8030.kill with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
  d.notice("Rozwaliłes 1 kamien metin!")
  d.notice("2 metin zrespiony")
  d.spawn_mob(8031, 1328, 702)
end
when 8031.kill with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
  d.notice("Rozwaliłes 2 kamien metin!")
  d.notice("3 metin zrespiony")
  d.spawn_mob(8032, 1320, 731)
   end
when 8032.kill with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
  d.notice("Rozwaliłes 3 kamien metin!")
  d.notice("4 metin zrespiony")
  d.spawn_mob(8033, 1291, 731)
   end
when 8033.kill with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
  d.notice("Rozwaliłes 4 kamien metin!")
  d.notice("5 metin zrespiony")
  d.spawn_mob(8034, 1273, 702)
   end
when 8034.kill with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
  d.notice("Rozwaliłes 5 kamien metin!")
  d.notice("6 metin zrespiony")
  d.spawn_mob(8039, 1290, 678)
   end
when 8039.kill with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
  d.notice("Rozwaliłes 6 kamien metin!")
  d.notice("To juz był ostatni kamien metin")
   end
when 8039.kill with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
  d.notice("Brawo, rozwaliłes wszystkie kamienie metin!")
  timer("tele", 60)
end
when tele.timer begin
 d.new_jump_all(700, 1300, 700)
 d.regen_file("data/dungeon/1.txt")
end
when 2529.kill with pc.in_dungeon() and pc.get_map_index() >= 7000000 and pc.get_map_index() < 7010000 begin
 if d.getf("drop") < 1 then
   local drop = math.random(100)
  if drop == 1 then
   pc.give_item2(18199, 1)
   pc.setf("drop", 1)
   d.notice(pc.get_name().."Zdobyłes(as) Złota Perle.")
  end
 end
end
when id_npc.take with item.vnum == id_przedmiotu and d.getf("drop") > 0 begin
 d.notice("Udało sie wam!")
 npc.purge() -- usuwamy id_npc
 item.remove() -- usuwamy id_przedmiotu
 d.clear_regen() -- usuwamy regen
 d.kill_all() -- zabijamy wszystkie potwory
 local kowale = (xxx, xxxx, xxxxx)
 d.spawn_mob(kowale[number(1,3)], kordy, kordy);
 d.setqf("can_refine", 2)
 timer("wywalamy", 60)
end
when wywalamy.timer begin
 d.exit_all()
end
 end
end

 

 

Lub czy ktoś poprawi tego questa

Opublikowano

@Stelios to wszystko przez to że nie miałem na czym przetestować. Teraz dzięki pomocy newjaa będę mógł testować questy u niej na serwerze , więc będę testować przez wrzuceniem.

 

@Vatu sprawdź teraz poprawiłem if-y

 

quest dugeon begin
state start begin
	when 20003.chat."Bicie mobów" begin
		say_title("Bicie mobów")
		say("Pamiętaj żeby przenieść się na mapę musisz mieć min. 50 lvl")
		say("Przenieść cię na mapę ??")
		local s = select("TAK","NIE")
		if s == 2 then
			return
		elseif s == 1 then
			if pc.get_level() < 50 then
				say("Musisz mieć min. 50 lvl żeby wejść.")
				return
			elseif party.is_leader() then
				say("Nie możesz mieć pt")
				return
			else
				say("OK zaraz cię przeniosę ")
				say("Wybierz sobie jeden bonus")
			end
			local bony = select("10% szybkość ataku", "+200 siła ataku", "30% szansa na krytyczne uderzenie", "30% na otrucie", "Nie chce")
			if bony == 1 then
				affect.add(apply.MOV_SPEED, 10, 60*60*24*365*60)
pc.setqf("dungeon", 1)
				d.join(12)
			elseif bony == 2 then
				affect.add(apply.ATT_GRADE_BONUS, 200, 60*60*24*365*60)
pc.setqf("dungeon", 1)
				d.join(12)
			elseif bony == 3 then
				affect.add(apply.ATT_POINT_CRITICAL_PCT, 30, 60*60*24*365*60)
pc.setqf("dungeon", 1)
				d.join(12)
			elseif bony == 4 then
				affect.add(apply.ATT_POINT_POISON_PCT, 30, 60*60*24*365*60)
pc.setqf("dungeon", 1)
				d.join(12)
			elseif bony == 5 then
pc.setqf("dungeon", 1)
				d.join(12)
			end
		end
	end

	when login with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		if pc.getqf("dungeon") > 0 then
			pc.setqf("dungeon", 0)
			d.notice("Witaj na mapie.")
			d.notice("Porozwalj moby...")
			d.spawn_mob(691, 10000, 9900)
			pc.setqf("time1", get_time())
		end
	end

	when 691.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Wodz Orkow")
		d.notice("Zaraz pojawi się Elitarny Wodz Orkow")
		d.spawn_mob(692, 10000, 9900)
	end

	when 692.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Elitarny Wodz Orkow")
		d.notice("Zaraz pojawi się Umarly Rozpruwacz")
		d.spawn_mob(1093, 10000, 9900)
	end

	when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Umarłego Rozpruwacza")
		d.notice("Zaraz pojawi się Niebieska Smierc")
		d.spawn_mob(1095, 10000, 9900)
	end

	when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Niebieską Smierc")
		d.notice("Zaraz pojawi się Lodowa Wiedzma")
		d.spawn_mob(1191, 10000, 9900)
	end

	when 1191.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Lodową Wiedzme")
		d.notice("Zaraz pojawi się Silna Lodowa Wiedzma")
		d.spawn_mob(1192, 10000, 9900)
	end

	when 1192.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Silną Lodowa Wiedzme")
		d.notice("Pokonałeś już wszystkich.")
		pc.setqf("time2", get_time())
		pc.setqf("bicie_mobow", 3)
		timer("dowidzenia", 10)
		affect.remove()
	end

	when dowidzenia.timer begin
		d.exit_all()
	end

	when login with pc.getqf("bicie_mobow") == 3 begin
		pc.setqf("bicie_mobow", 0)
		local x = pc.getqf("time")
		local y = pc.getqf("time2")
		local diff = pc.setqf("time3", y-x)
		if y-x > 60 then
			say("Twój czas to: "..diff/60.." minut.")
		else
			say("Twój czas to: "..diff.." sekund.")
		end
	end
end
end

 

 

Ciągle to samo.

Nie chce mi działać!

Nic się nie dzieje jak kliknę na npc.

Opublikowano

Nie wiem jak u was ale mnie to nie działa. Zmieniłem ID npc i index mapy. Quest się wgrywa bezbłędnie lecz nie widać go wg w grze. Nawet nie ma opcji "Bicie mobów"

 

@Edit. Sory, UP szybszy :)

 

 

@Stelios to wszystko przez to że nie miałem na czym przetestować. Teraz dzięki pomocy newjaa będę mógł testować questy u niej na serwerze , więc będę testować przez wrzuceniem.

 

@Vatu sprawdź teraz poprawiłem if-y

 

quest dugeon begin
state start begin
	when 20003.chat."Bicie mobów" begin
		say_title("Bicie mobów")
		say("Pamiętaj żeby przenieść się na mapę musisz mieć min. 50 lvl")
		say("Przenieść cię na mapę ??")
		local s = select("TAK","NIE")
		if s == 2 then
			return
		elseif s == 1 then
			if pc.get_level() < 50 then
				say("Musisz mieć min. 50 lvl żeby wejść.")
				return
			elseif party.is_leader() then
				say("Nie możesz mieć pt")
				return
			else
				say("OK zaraz cię przeniosę ")
				say("Wybierz sobie jeden bonus")
			end
			local bony = select("10% szybkość ataku", "+200 siła ataku", "30% szansa na krytyczne uderzenie", "30% na otrucie", "Nie chce")
			if bony == 1 then
				affect.add(apply.MOV_SPEED, 10, 60*60*24*365*60)
pc.setqf("dungeon", 1)
				d.join(12)
			elseif bony == 2 then
				affect.add(apply.ATT_GRADE_BONUS, 200, 60*60*24*365*60)
pc.setqf("dungeon", 1)
				d.join(12)
			elseif bony == 3 then
				affect.add(apply.ATT_POINT_CRITICAL_PCT, 30, 60*60*24*365*60)
pc.setqf("dungeon", 1)
				d.join(12)
			elseif bony == 4 then
				affect.add(apply.ATT_POINT_POISON_PCT, 30, 60*60*24*365*60)
pc.setqf("dungeon", 1)
				d.join(12)
			elseif bony == 5 then
pc.setqf("dungeon", 1)
				d.join(12)
			end
		end
	end

	when login with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		if pc.getqf("dungeon") > 0 then
			pc.setqf("dungeon", 0)
			d.notice("Witaj na mapie.")
			d.notice("Porozwalj moby...")
			d.spawn_mob(691, 10000, 9900)
			pc.setqf("time1", get_time())
		end
	end

	when 691.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Wodz Orkow")
		d.notice("Zaraz pojawi się Elitarny Wodz Orkow")
		d.spawn_mob(692, 10000, 9900)
	end

	when 692.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Elitarny Wodz Orkow")
		d.notice("Zaraz pojawi się Umarly Rozpruwacz")
		d.spawn_mob(1093, 10000, 9900)
	end

	when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Umarłego Rozpruwacza")
		d.notice("Zaraz pojawi się Niebieska Smierc")
		d.spawn_mob(1095, 10000, 9900)
	end

	when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Niebieską Smierc")
		d.notice("Zaraz pojawi się Lodowa Wiedzma")
		d.spawn_mob(1191, 10000, 9900)
	end

	when 1191.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Lodową Wiedzme")
		d.notice("Zaraz pojawi się Silna Lodowa Wiedzma")
		d.spawn_mob(1192, 10000, 9900)
	end

	when 1192.kill with pc.in_dungeon() and pc.get_map_index() >= 120000 and pc.get_map_index() < 130000 begin
		d.notice("Pokonałeś Silną Lodowa Wiedzme")
		d.notice("Pokonałeś już wszystkich.")
		pc.setqf("time2", get_time())
		pc.setqf("bicie_mobow", 3)
		timer("dowidzenia", 10)
		affect.remove()
	end

	when dowidzenia.timer begin
		d.exit_all()
	end

	when login with pc.getqf("bicie_mobow") == 3 begin
		pc.setqf("bicie_mobow", 0)
		local x = pc.getqf("time")
		local y = pc.getqf("time2")
		local diff = pc.setqf("time3", y-x)
		if y-x > 60 then
			say("Twój czas to: "..diff/60.." minut.")
		else
			say("Twój czas to: "..diff.." sekund.")
		end
	end
end
end

 

Ktoś zrobi ?

:D

Opublikowano

ja poproszę o questa takiego co był na NevrasT..

 

naciskało się na ten papirus(na te zadanie w lewej czesci ekranu) i tylko 20 razy możesz przywołać mobki do siebie(cos jak peleryna mestwa..) jak zuzyje sie to 20 razy to zeby to sie juz nie pokazywalo...

 

proszę żeby było z 3-4 linijek say i tekst ja sam wpisze..

 

i zeby pisalo czy chcesz przywołać potwory? opcja tak/nie... nie to wyłącza okno a tak przywoluje.

Opublikowano

@z4z0l

chodziło mi o to ze na czacie gma pisze ze gracz o nicku takim zalogował sie i pisze ze jest liderem gildi np Banan.Można brać z nim wojny.

A nie o to ze pisze jak gm się zalogowal.

 

Osobno na czacie GM'a nie napisze tego, jedynie każdemu graczowi może pokazać.

when login begin
notice("Gracz : "..pc.get_name().." zalogował się do gry. Jest członkiem gildii : "..game.get_guild_name)
end

Coś w ten deseń.

 

umarł

Bywalec
Opublikowano

PROSZĘ O POPRAWĘ QUESTA !

 

quest resp begin

state start begin

say ( "Witaj" )

say ( "" )

say ( "Chcesz kogos przywolac?" )

say ( "UWAGA!! ON PRZYWOLA SIE KOLO URIEL!" )

say ( "Wybierz kogo chcesz przywolac, a potem napierdalaj jak pojebany." )

local s = select ( "Riper" ,"Nieb.Smierc" ,"9 ogonow" ,"Anuluj" )

if 1 == s then

mob.spawn( 1093, 658, 550, 0, 0, 0 )

chat( "Potwor zostal przywolany!" )

chat( "Przy Urielu" )

end

if 2 == s then

mob.spawn( 1095, 658, 550, 0, 0, 0 )

chat( "Potwor zostal przywolany!" )

chat( "Przy Urielu" )

end

if 3 == s then

mob.spawn( 1901, 658, 550, 0, 0, 0 )

chat( "Potwor zostal przywolany!" )

chat( "Przy Urielu" )

end

if 4 == s then

return

end

Pompa Jak Skurwysyn

 

 

 

METIN2.PL - 76LV

 

 

4H4 OWNED

Opublikowano

Poprawi Mi ktoś Tego Dungeona:

 

Bo gdy zabije metka i czekam na teleport wyzej w Wiezy to po 10 sekundach loga mnie do okna logowania i wywala ten bład w FreeBSD:

 

 

Assertion failed: (m_pUsedList==NULL && "CDynamicPool::~CDynamicPool() - NOT Clear"), function ~CDynamicPool, file ../../common/pool.h, line 41.

 

Quest:

 

 

quest kwiatmix_dungeon begin -- zaczynamy questa
 state start begin -- zaczynamy state
   when 20087.chat."Chcę wejść do Dungeonu" begin -- tworzymy chat u npc "id_npc"
  say_reward("Nazwa Npc:")
  say("Chcesz wejść do dungeonu?")
  local wejscie = select("Tak.", "Nie.")
 if wejscie == 2 then
  return
 elseif wejscie == 1 then
  say_reward("Nazwa Npc:")
  say("Okej, przeteleporuje ciebie.")
  wait()
  d.join(132) -- rozpoczynamy dungeon
  pc.setqf("dungeon", 1)
 end -- kończymy if wejscie
   end -- konczymy when id_npc.chat.
   when login with pc.in_dungeon() and pc.get_map_index() >= 1320000 and pc.get_map_index() < 1330000 begin -- pc.get_map_index() sprawdza czy jesteśmy na mapie o id 66
 if pc.getqf("dungeon") > 0 then -- sprawdza czy zalogowaliśmy się poprzez rozmowe z npc "pc.setqf("dungeon", 1)
  pc.setqf("dungeon", 0)
  d.notice("Witajcie w dungeonie by kwiatmix!")
  d.notice("Rozwalcie metina i idźcie dalej...")
  d.spawn_mob("8014", 122, 616)
 end -- kończymy pc.getqf()
   end -- kończymy when login
   when 8014.kill with pc.in_dungeon() and pc.get_map_index() >= 1320000 and pc.get_map_index() < 1330000 begin -- gdy zabijemy metka
  d.notice("Brawo, rozwaliliście metina!")
  timer("tele", 5) -- timer do teleportu ustawiony na 5 sekund
   end -- zamykamy when id_metka.kill
   when tele.timer begin
 d.new_jump_all(132, 405, 462)
 d.regen_file("data/dungeon/deviltower_regen.txt") -- miejsce naszego regenu
   end -- kończymy when tele
   when 2591.kill with pc.in_dungeon() and pc.get_map_index() >= 1320000 and pc.get_map_index() < 1330000 begin -- gdy zabijemy potwora
 if d.getf("drop") < 1 then
   local drop = math.random(100)
  if drop == 1 then -- szansa na drop 100%
   pc.give_item2(19, 1)
   pc.setf("drop", 1)
   d.notice(pc.get_name().."Zdobył nazwa przedmiotu.")
  end -- kończy if drop
 end -- kończy if d.getf()
   end -- kończy when kill
   when 20087.take with item.vnum == 19 and d.getf("drop") > 0 begin
 d.notice("Brawo, macie tutaj kowali!")
 npc.purge() -- usuwamy id_npc
 item.remove() -- usuwamy 19
 d.clear_regen() -- usuwamy regen
 d.kill_all() -- zabijamy wszystkie potwory
 local kowale = {20074, 20075, 20076}
 d.spawn_mob(kowale[number(1,3)], 425, 216); -- respi losowego moba, z local kowale
 d.setqf("can_refine", 2) -- pozwala na ulepszenie przedmiotu
 timer("wywalamy", 20) -- 20 sekund do wyrzucenia wszystkich z dungenu
   end -- kończymy when id_npc
   when wywalamy.timer begin
 d.exit_all() -- wyrzucamy wszystkich z dungeonu
   end -- kończymy when timer
 end -- kończymy state
end -- kończymy questa  

Opublikowano

@4h4 po jakiej czynności ma się wykonywać misja ??

kliknięciu na jakiś item ??

czy po naciśnięciu na npc ??

 

tutaj masz po naciśnięciu na item , zamist id_itemu wpisz sobie id itemu. Pamiętaj że żeby zadziałało to musisz zmienic w sql liczbę przy danym itemu na type 18 subtype 10.

 

 

quest resp begin
state start begin
	when id_itemu.use begin
		say ( "Witaj" )
		say ( "" )
		say ( "Chcesz kogos przywolac?" )
		say ( "UWAGA!! ON PRZYWOLA SIE KOLO URIEL!" )
		say ( "Wybierz kogo chcesz przywolac, a potem napierdalaj jak pojebany." )
		local s = select ( "Riper" ,"Nieb.Smierc" ,"9 ogonow" ,"Anuluj" )
		if 1 == s then
			mob.spawn( 1093, 658, 550, 0, 0, 0 )
			chat( "Potwor zostal przywolany!" )
			chat( "Przy Urielu" )
		elseif 2 == s then
			mob.spawn( 1095, 658, 550, 0, 0, 0 )
			chat( "Potwor zostal przywolany!" )
			chat( "Przy Urielu" )
		elseif 3 == s then
			mob.spawn( 1901, 658, 550, 0, 0, 0 )
			chat( "Potwor zostal przywolany!" )
			chat( "Przy Urielu" )
		else
			return
		end
	end
end
end

 

 

lub quest po naciśnięciu na npc. Zamień id_npc na id npc z twojego serwera.

 

quest resp begin
state start begin
	when id_npc.click begin
		say ( "Witaj" )
		say ( "" )
		say ( "Chcesz kogos przywolac?" )
		say ( "UWAGA!! ON PRZYWOLA SIE KOLO URIEL!" )
		say ( "Wybierz kogo chcesz przywolac, a potem napierdalaj jak pojebany." )
		local s = select ( "Riper" ,"Nieb.Smierc" ,"9 ogonow" ,"Anuluj" )
		if 1 == s then
			mob.spawn( 1093, 658, 550, 0, 0, 0 )
			chat( "Potwor zostal przywolany!" )
			chat( "Przy Urielu" )
		elseif 2 == s then
			mob.spawn( 1095, 658, 550, 0, 0, 0 )
			chat( "Potwor zostal przywolany!" )
			chat( "Przy Urielu" )
		elseif 3 == s then
			mob.spawn( 1901, 658, 550, 0, 0, 0 )
			chat( "Potwor zostal przywolany!" )
			chat( "Przy Urielu" )
		else
			return
		end
	end
end
end

 

 

 

@szeler nie może być najpierw przeniesienie a potem przypisanie do "dugeon" liczby 1

musisz zamiast

d.join(132) -- rozpoczynamy dungeon
pc.setqf("dungeon", 1)

dać

pc.setqf("dungeon", 1)
d.join(132) -- rozpoczynamy dungeon

 

tutaj masz cały kod

 

quest kwiatmix_dungeon begin -- zaczynamy questa
   state start begin -- zaczynamy state
       when 20087.chat."Chcę wejść do Dungeonu" begin -- tworzymy chat u npc "id_npc"
           say_reward("Nazwa Npc:")
           say("Chcesz wejść do dungeonu?")
           local wejscie = select("Tak.", "Nie.")
           if wejscie == 2 then
               return
           elseif wejscie == 1 then
               say_reward("Nazwa Npc:")
               say("Okej, przeteleporuje ciebie.")
               wait()
               pc.setqf("dungeon", 1)
               d.join(132) -- rozpoczynamy dungeon
           end -- kończymy if wejscie
       end -- konczymy when id_npc.chat.

       when login with pc.in_dungeon() and pc.get_map_index() >= 1320000 and pc.get_map_index() < 1330000 begin -- pc.get_map_index() sprawdza czy jesteśmy na mapie o id 66
           if pc.getqf("dungeon") > 0 then -- sprawdza czy zalogowaliśmy się poprzez rozmowe z npc "pc.setqf("dungeon", 1)
               pc.setqf("dungeon", 0)
               d.notice("Witajcie w dungeonie by kwiatmix!")
               d.notice("Rozwalcie metina i idźcie dalej...")
               d.spawn_mob("8014", 122, 616)
           end -- kończymy pc.getqf()
       end -- kończymy when login

       when 8014.kill with pc.in_dungeon() and pc.get_map_index() >= 1320000 and pc.get_map_index() < 1330000 begin -- gdy zabijemy metka
           d.notice("Brawo, rozwaliliście metina!")
           timer("tele", 5) -- timer do teleportu ustawiony na 5 sekund
       end -- zamykamy when id_metka.kill

       when tele.timer begin
           d.new_jump_all(132, 405, 462)
           d.regen_file("data/dungeon/deviltower_regen.txt") -- miejsce naszego regenu
       end -- kończymy when tele

       when 2591.kill with pc.in_dungeon() and pc.get_map_index() >= 1320000 and pc.get_map_index() < 1330000 begin -- gdy zabijemy potwora
           if d.getf("drop") < 1 then
               local drop = math.random(100)
               if drop == 1 then -- szansa na drop 100%
                   pc.give_item2(19, 1)
                   pc.setf("drop", 1)
                   d.notice(pc.get_name().."Zdobył nazwa przedmiotu.")
               end -- kończy if drop
           end -- kończy if d.getf()
       end -- kończy when kill

       when 20087.take with item.vnum == 19 and d.getf("drop") > 0 begin
           d.notice("Brawo, macie tutaj kowali!")
           npc.purge() -- usuwamy id_npc
           item.remove() -- usuwamy 19
           d.clear_regen() -- usuwamy regen
           d.kill_all() -- zabijamy wszystkie potwory
           local kowale = {20074, 20075, 20076}
           d.spawn_mob(kowale[number(1,3)], 425, 216); -- respi losowego moba, z local kowale
           d.setqf("can_refine", 2) -- pozwala na ulepszenie przedmiotu
           timer("wywalamy", 20) -- 20 sekund do wyrzucenia wszystkich z dungenu
       end -- kończymy when id_npc

       when wywalamy.timer begin
           d.exit_all() -- wyrzucamy wszystkich z dungeonu
       end -- kończymy when timer
   end -- kończymy state
end -- kończymy questa

 

Opublikowano

@UP

 

Teraz mam tak czekam na logniecie na wyzsze piętro w dt i loga mnie z metina i connection refused..

 

Moze to być spowodowane regenem?

 

Pozdrawiam

Opublikowano

Czy taka funkcja jest poprawna?

 

 

when login or levelup with pc.is_gm and pc.get_name() == "[GM]Asti" or "[GM]nazwa_gma begin

 

 

Opublikowano

Sprawdzi ktoś. Bo pierwszy raz widze taki bład: "Segmentation fault (core dumped)"

 

 

 

quest uriel begin
    state start begin
		    when login or levelup with pc.level >= 30 begin
				    set_state(info)
		    end
    end

    state info begin
		    when letter begin
				    local v = find_npc_by_vnum(20011)
				    if v != 0 then
						    target.vid("__TARGET__", v, "Uriel")
				    end
				    send_letter("Tajemnicze Strony Ksiegi")
		    end

		    when button or info begin
				    say_title("Strona Ksiegi")
				    say("")
				    say("Uriel, stary medrzec szukal Twej")
				    say("pomocy. Prosze, udaj sie do niego.")
		    end

		    when __TARGET__.target.click or
				    20011.chat."Strona z Ksiegi" begin
				    target.delete("__TARGET__")
				    say_title("Uriel:")
				    say("Jak wiesz potrzebuje Twej pomocy.")
				    say("Mam tutaj ksiege Orkow, ale")
				    say("jest ona nie pelna... Nie ma w niej kilku stron,")
				    say("ktore moga nam dostarczyc informacji!")
				    say("")
				    wait()
				    say("Musisz zabic Czarnego Orka!")
				    say("Znajdziesz go w Dolinie!")
				    say("Wiec jak? Pomozesz?")
				    local s=select("Tak", "Nie")
				    if 1==s then
				    say("Swietnie!")
				    say("Wiec idz i zdobadz dla mnie")
				    say("kartke z Ksiegi!")
				    set_state(ezot)
				    elseif 2==s then
				    return
				    end
				    end
               end
       end	    

           state ezot begin
               when 636.kill with pc.countitem(30142)==0 begin
					   local random = math.random(3)
					   if random == 1 then
					   pc.give_item2(30142, 1)
					   say_reward("Zdobyles List z Ksiegi!")
					   say_reward("Co prawda... To nie strona, ale wroc do Uriela.")
				    local v = find_npc_by_vnum(20011)
				    if v != 0 then
						    target.vid("__TARGET__", v, "Uriel")
				    end
		    end
           end
		    when 20011.chat."Tajemniczy List!" with pc.countitem(30142)>0 begin
										    target.delete("__TARGET__")
										    say_title("Uriel:")
                                               say("Nie masz strony?!")
                                               say("Aaa, ale jednak cos masz?")
										    say("Pokaz no, moze cos odczytam z tego listu.")
										    say("Starozytne Pismo Ezoterykow...")
										    say("Ciezko jest mi je zrozumiec...")
										    say("Poczekaj chwilke...")
										    wait()
										    say("Posluchaj tego.")
										    say_reward("Udalo nam sie wejsc do Swiatyni Hwang.")
										    say_reward("Zmierzamy w strone Wiezy Demonow.")
										    say_reward("Choc demony - sa od nas silniejsze")
										    say_reward("to posiadajac nasz Heroiczny Symbol")
										    say_reward("zaden z demonow nie stanie nam na drodze.")
										    say_reward("")
										    say_reward("W tej chwili jestesmy nie do pokonania.")
										    say_reward("Na ziemi nie ma wojownika o wiekszej sile")
										    say_reward("niz nasza wraz z naszym symbolem.")
										    say_reward("")
										    say_reward("Gdy dotrzemy do Wiezy Demonow nikt nas nie powstrzyma,")
                                               say_reward("a my zniszczymy cala ludzkosc i inne istoty zyjace tutaj.")
										    wait()
										    say("Ehh... Jak widzisz to jest powazne...")
										    say("Musisz ich powstrzymac zanim dojda do wiezy!")
										    say("Nie jest napisane, kto dokladnie posiada ten symbol,")
										    say("ale ja osobiscie uwazam ze ma go najpotezniejszy Ezot,")
										    say("ale nie sama Krolowa Ezoterykow.")
										    say("")
										    say("Poszukaj Elit. Ezo. Przywolywacza w Swiatyni.")
										    say("Licze na Ciebie. Wroc szybko!")
                                               say_trawa("Pamietaj znajdziesz go w światyni")
                                               pc.remove_item(30142, 1)
										    set_state(ezo)
										    end
						    end

                           state ezo begin
                               when 737.kill with pc.countitem(60003)==0 begin
                                   local random = math.random(3)
                                   if random == 1 then
                                   pc.give_item2(60003, 1)
                                   say_reward("Zdobyles Heroiczny Symbol!")
                                   say_reward("Zamelduj to Urielowi.")
                                   say_reward("Pospiesz sie!")
                                   local v = find_npc_by_vnum(20011)
                                   if v != 0 then
                                   target.vid("__TARGET__", v, "Uriel")
                               end
                           end

		    when 20011.chat."Heroiczny Symbol" with pc.countitem(60003)>0 begin
				    target.delete("__TARGET__")
                                   say_title("Uriel:")
                                   say("Masz ten symbol? Swietnie!")
                                   say("Bardzo dobrze... Ale czekaj!")
                                   say("Cos jest tu napisane! Tak widze to!")
                                   say("Daj mi przeczytac.")
                                   wait()
                                   say_reward("Jesli Ezoterykiem jestes wiesz,")
                                   say_reward("ze symbol, ktory oto w rekach")
                                   say_reward("swych trzymasz, prawdziwy nie jest.")
                                   say_reward("")
                                   say_reward("Jesli Ezoterykiem jestes, wiesz gdzie")
                                   say_reward("prawdziwy symbol sie znajduje!")
                                   say_reward("Jesli jednak Ezoterykiem nie jestes,")
                                   say_reward("a przeczytales to co napisalismy")
                                   say_reward("to i tak niczego sie o nas nie dowiesz.")
                                   wait()
                                   say_title("Uriel:")
                                   say("No pieknie! To falszywy symbol!")
                                   say("Musisz odszukac informacji na temat")
                                   say("prawdziwego symbolu!")
                                   say("Udaj sie do swiatyni i zabij")
                                   say("Elt. Ezo. Dreczyciela.")
                                   pc.remove_item(60003)
                                   set_state(lolek)
                                   end
						    end

		    state lolek begin
							 when 735.kill with pc.countitem(30120)==0 begin
					   local random = math.random(3)
					   if random == 1 then
					   pc.give_item2(30120, 1)
					   say_reward("Otrzymales kawalek mapy!")
					   say_reward("Wroc do Uriela i powiedz mu")
					   say_reward("o tym!")
					   local v = find_npc_by_vnum(20011)
				    if v != 0 then
						    target.vid("__TARGET__", v, "Uriel")
				    end
		    end
    end
                               when 20011.chat."Kawalek Mapy" with pc.countitem(30120)>0 begin
                                               target.delete("__TARGET__")
										    say_title("Uriel:")
                                               say("Masz cos? Swietnie!")
                                               say("Daj zobaczyc co to jest!")
										    say("Stara mapa... O jest cos napisane nad")
										    say("ta linia... O tutaj. Sluchaj!")
										    wait()
										    say_reward("Podazamy w strone Piekla.")
										    say_reward("Mamy ze soba Zloty Zab orka, ktory")
										    say_reward("przyda nam sie przy otwieraniu portalu.")
                                               say_reward("mamy ze soba Orka Czarodzieja")
										    say("")
										    say_reward("Z portalu wyloni sie kreatura,")
										    say_reward("naszym wodzem stanie sie, spelnimy nasza")
										    say_reward("przepowiednie.")
										    say_reward("Gdy dotrzemy do Piekla")
										    say_reward("Ognisty Wojownik da nam to, co nasze jest")
										    say("")
										    say("")
										    wait()
										    say_title("Uriel:")
										    say_trawa("Ruszaj do Doliny Surgong!")
										    say_trawa("Odszukaj Orka Czarodzieja")
										    say_trawa("I odbierz mu Zloty Zab Orka!")
										    say_red("Pospiesz sie!")
										    say("")
										    pc.remove_item(30120)
										    set_state(pieklo)
										    end
                               end




						    state pieklo begin
				    when 604.kill with pc.countitem(30103)==0 begin
					   local random = math.random(3)
					   if random == 1 then
					   pc.give_item2(30103, 1)
					   say_reward("Masz zab!!")
					   say_reward("Wracaj do Uriela!")
				    local v = find_npc_by_vnum(20011)
				    if v != 0 then
						    target.vid("__TARGET__", v, "Uriel")
				    end
		    end
    end
		    when 20011.chat."Zloty Zab" with pc.countitem(30103)>0 begin
										    target.delete("__TARGET__")
										    say_title("Uriel:")
                                               say("Masz go?!")
                                               say("Ocaliles nas! W nagrode dam Ci")
										    say("Cos co dal mi kowal, ale ja i tak")
										    say("tego nie uzyje!")
										    say("Wez to prosze.")
                                               say_trawa("Nagrody sa bardzo chojne sam zobacz")
                                               wait()
										    say_zloto("Zwoj Blogoslawienstwa")
                                               say("Biała Perła")
                                               say_blue("Niebieska Perła")
                                               say_red("Krwawa Perła")
                                               say_brzoskwinia("szkatółka wodza Orków")
                                               say_brzoskwinia("Ebonitowa szkatółka")
										    pc.give_item2(25040)
                                               pc.give_item2(25040)
                                               pc.give_item2(25040)
                                               pc.give_item2(25040)
                                               pc.give_item2(25040)
                                               pc.give_item2(27992)
                                               pc.give_item2(27992)
                                               pc.give_item2(27992)
                                               pc.give_item2(27993)
                                               pc.give_item2(27993)
                                               pc.give_item2(27993)
                                               pc.give_item2(27994)
                                               pc.give_item2(27994)
                                               pc.give_item2(27994)
                                               pc.give_item2(50070)
                                               pc.give_item2(50110)
                                               pc.give_item2(50110)
										    pc.remove_item(30103)
										    set_state(__COMPLETE__)
										    end
               end
    state __COMPLETE__  begin
    end
   end

 

 

Opublikowano

Pomoże ktoś z tym questem po zabiciu 2 metka czekam na przelogowanie na 2 pietro w wiezy ale nie przelegowywuje dalczego?

 

 

@EDIT

 

Ok już wiem o co chodzi z tymi kordami :P wszystko smiga

Opublikowano

ja poproszę o questa takiego:

 

naciska się na ten papirus(na te zadanie w lewej czesci ekranu) i tylko 20 razy możesz przywołać mobki do siebie(cos jak peleryna mestwa..) jak zuzyje sie to 20 razy to zeby to sie juz nie pokazywalo...

 

proszę żeby było z 3-4 linijek say i tekst ja sam wpisze..

 

i zeby pisalo czy chcesz przywołać potwory? opcja tak/nie... nie to wyłącza okno a tak przywoluje.

Opublikowano

Naprawi ktos?

syntax error : [string "startpc . is_gm ( )"]:17: `end' expected (to close `if' at line 9) near `elseif'
licytacja_itemu.quest:61:Abort (core dumped)

 

quest licytowanie begin
	state start begin
		when 2007.chat."Licytacja" with game.get_event_flag("Licytacja") == 1 begin
			local lic = pc.getqf("przedmiot")
			say_title(mob_name(2007)..": ")
			say("Witaj.")
			say("")
			say("Aktualnie licytujemy")
			say("Przedmiot o nazwie")
			say(item_name(lic)..".")
			say("")
			say("Aktualnie kwota wynosi :")
			say(pc.getqf("liscytowanie").." Yang.")
			say("")
			say("Wpisz ile chcesz zalicytować :")
			local haha = input()
			if haha > pc.getqf("liscytowanie") and pc.get_money() >= haha then
				pc.setqf("liscytowanie", haha)
				say_title(mob_name(2007)..": ")
				say("")
				say("Zalicytowałeś "..haha.." Yang.")
				notice_all(pc.get_name().." przelicytował kwotą "..haha)
				if haha < pc.getqf("liscytowanie") or pc.get_money < haha then
					say_title(mob_name(2007)..": ")
					say("")
					say("Zalicytowałeś za mało")
					say("lub nie masz tyle Yang.")
					if haha =="" then
						say_title(mob_name(2007)..": ")
						say("Musisz podać ilość Yang.")
					end
				end
			end
		end

		when 20366.chat."GM: Licytacja" with pc.is_gm() begin
			say_title(mob_name(20366)..": ")
			say("")
			say("Co chcesz zrobić ?")
			local wybor = select("Włącz Event", "Wyłącz Event")

			if wybor == 1 then
			say_title(mob_name(20366)..": ")
			say("")
			local input = input()
			if input =="" then
			say_title(mob_name(20366)..": ")
			say("Musisz podać id przedmiotu.")
			else
				game.set_event_flag("Licytacja", 1)
				pc.setqf("przedmiot", input)
				say_title(mob_name(20366)..": ")
				say("Zrobione!")
				elseif wybor == 2 then
				game.set_event_flag("Licytacja", 0)
				say_title(mob_name(20366)..": ")
				say("")
				say("Zrobione.")
			end
		end
	end
end

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...