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

dungeon ma opcje typu po wybiciu all mobow warpuje cie dalej i respia sie np moby normalnie nie ma takiej opcji

 

@ to ty zrobiles emp nie ja bo to wg mnie glupota...

 

if pc.get_empire() == 1 then
pc.warp(x, y)
elseif pc.get_empire() == 2 then
pc.warp(x, y)
elseif pc.get_empire() == 3 then
pc.warp(x, y)
end

QmxvbmR5blhfX19ldW5lX19fNTI0X19fTlVMTF9fXzNfX18xMDBfX19ub25lLnBuZ19fXzhfX19ub25lX19fMDAwMDAwX19fc29sbw==.png
  • Odpowiedzi 8,7 tys.
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

siema chlopaki :P

a co do tych warpow dla danego królestwa zastosowałem coś takiego i działa bez zarzutu

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 6 begin
                       if pc.get_level() < 75 then
                               timer("billg", 2)
                                               else 
                                                               pc.warp(614400, 1049600)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

a i jeszcze 1 pytanie

co zrobic by dzialal ten quest?

--------------------------------------------------
-- warp quest
----------------------------------------------------

quest goto_empire_castle begin
state start begin
	when 20097.chat."Wejdz na wojne!" with game.get_event_flag("wojna_krolestw")>0 begin

		local empire = pc.get_empire()
		if empire==1 then
			a=select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
			if 1==a then
				say("Lodowy zamek")
				wait()
				pc.warp(975200, 133000)
			elseif 2==a then
				say("Pustynny zamek")
				wait()
				pc.warp(978000, 199500)
			elseif 3==a then
				say("Las")
				wait()
				pc.warp(967900, 199400)
			else
				return
			end
		else  
			say("")
			say("")
			say("")
		end
	end

	when 20098.chat."Wejdz na wojne!" begin

		local empire = pc.get_empire()
		if empire==2 then
			a=select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
			if 1==a then
				say("Lodowy zamek")
				wait()
				pc.warp(977400, 150100)
			elseif 2==a then
				say("Pustynny zamek")
				wait()
				pc.warp(977200, 185000)
			elseif 3==a then
				say("Las")
				wait()
				pc.warp(925600, 201200)
			else
				return
			end	
		else  
			say("")
			say("")
			say("")
		end
	end
	when 20099.chat."Wejdz na wojne!" begin

		local empire = pc.get_empire()
		if empire==3 then
			a=select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
			if 1==a then
				say("Lodowy zamek")
				wait()
				pc.warp(1018900, 148400)
			elseif 2==a then
				say("Pustynny zamek")
				wait()
				pc.warp(1019000, 200200)
			elseif 3==a then
				say("Las")
				wait()
				pc.warp(923900, 183600)
			else
				return
			end	
		else  
			say("")
			say("")
			say("")
		end
	end
end
end


 

jesli klikne na brame zamku czerwonych to nic sie nie pojawia

a na pozostalych 2( niebiescy, zółci) to jak wybiorę gdzie ma przenieść to tylko pojawia sie nazwa ktora wybralem

zatwierdzam OK i zamyka całkowicie i nic sie niedzieje.

bez YT

Opublikowano

SIema czy jest możliwe aby Mi ktoś napisal Questa polegającym na tym ,ze jak klikne nie pieczec i ubiore ID :71125 to ,ze siadne na moucie :ID20115, ,ale mozna tylko z niego zejsc jak sie zsciagnie pieczec.Nawet teleportujac sie nie da rady zejsc.Bardzo Bym prosil.

Opublikowano

quest goto_empire_castle begin
       state start begin
               when 20097.chat."Wejdz na wojne!" with game.get_event_flag("wojna_krolestw")>0 begin
                       local empire = pc.get_empire()
                       if empire==1 then
                               local a = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if a == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(975200, 133000)
                               elseif a == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(978000, 199500)
                               elseif a == 3 then
                                       say("Las")
                                       pc.warp(967900, 199400)
                               else
                                       return
                               end
                       else  
                               say("")
                               say("")
                               say("")
                       end
               end

               when 20098.chat."Wejdz na wojne!" begin
                       local empire = pc.get_empire()
                       if empire==2 then
                               local b = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if b == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(977400, 150100)
                               elseif b == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(977200, 185000)
                               elseif b == 3 then
                                       say("Las")
                                       pc.warp(925600, 201200)
                               else
                                       return
                               end     
                       else  
                               say("")
                               say("")
                               say("")
                       end
               end
               when 20099.chat."Wejdz na wojne!" begin
                       local empire = pc.get_empire()
                       if empire ==  3 then
                               local a = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if c == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(1018900, 148400)
                               elseif c == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(1019000, 200200)
                               elseif c == 3 then
                                       say("Las")
                                       pc.warp(923900, 183600)
                               else
                                       return
                               end     
                       else  
                               say("")
                               say("")
                               say("")
                       end
               end
       end
end

 

powinno dzialac:)

QmxvbmR5blhfX19ldW5lX19fNTI0X19fTlVMTF9fXzNfX18xMDBfX19ub25lLnBuZ19fXzhfX19ub25lX19fMDAwMDAwX19fc29sbw==.png
Opublikowano

quest goto_empire_castle begin
       state start begin
               when 20097.chat."Wejdz na wojne!" with game.get_event_flag("wojna_krolestw")>0 begin
                       local empire = pc.get_empire()
                       if empire==1 then
                               local a = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if a == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(975200, 133000)
                               elseif a == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(978000, 199500)
                               elseif a == 3 then
                                       say("Las")
                                       pc.warp(967900, 199400)
                               else
                                       return
                               end
                       else  
                               say("")
                               say("")
                               say("")
                       end
               end

               when 20098.chat."Wejdz na wojne!" begin
                       local empire = pc.get_empire()
                       if empire==2 then
                               local b = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if b == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(977400, 150100)
                               elseif b == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(977200, 185000)
                               elseif b == 3 then
                                       say("Las")
                                       pc.warp(925600, 201200)
                               else
                                       return
                               end     
                       else  
                               say("")
                               say("")
                               say("")
                       end
               end
               when 20099.chat."Wejdz na wojne!" begin
                       local empire = pc.get_empire()
                       if empire ==  3 then
                               local a = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if c == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(1018900, 148400)
                               elseif c == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(1019000, 200200)
                               elseif c == 3 then
                                       say("Las")
                                       pc.warp(923900, 183600)
                               else
                                       return
                               end     
                       else  
                               say("")
                               say("")
                               say("")
                       end
               end
       end
end

 

powinno dzialac:)

 

juz sprawdzam i dam odpowiedz czy dziala.

ale znalazlem kolejny blad w quescie u siebie

co z nim nie tak oraz czy mozecie mi usunac Wojna Krolestw z tego :P

-- ?? ???? ??
quest map_warp begin
state start begin
	when 9012.chat."Czy chcesz się teleportować?"  begin
		say ("Witaj[ENTER]Jestem teleporterem[ENTER]Czy chcialbys gdzies sie przeniesc?[ENTER]Hola, poczekaj![ENTER]Chyba nie myslisz, ze przeteleportuje cie za darmo?[ENTER]Za moje uslugi musisz zaplacic![ENTER]Czy nadal chcesz sie przenieść?") 

		local main_set = select("Tak","Nie")
		if main_set == 2 then
			return
		end

		if pc.get_level() <= 10 then
			say("Chyba nie myslisz, ze na takim poziomie[ENTER]gdziekolwiek cie przeniose? ")
			say("")
			return
		end

		local map = pc.get_map_index()
		local empire = pc.get_empire()
		local level = pc.get_level()
		local cost = math.floor(level / 5) * 1000

		-- ?? ????
		if cost < 1000 then
			cost = 1000
		end

		say("A więc chcesz się przenieść?[ENTER] Lecz wiedz że takie coś kosztuje... ")
		say_reward(string.format("Musisz zapłacić %d Yang", cost))
		say("")

		-- ?? ?? ???? ?? ?? (? ?? 1,2 ??)
		if map == 1 or map == 3 or map == 21 or map == 23 or map == 41 or map == 43 then

			local guild_map_names = {
				"Bossy",
				"Bossy",
				"Bossy",
			}

			guild_map_name = guild_map_names[empire]
			local empire_castle={
				"Wojna krolestw",
				"Wojna krolestw",
				"Wojna krolestw",
			}
			empire_castle =empire_castle[empire]
			local sub_set = 0
			if level < 60 then -- 60?? : ?????, ???, ????, ???
				sub_set = select(guild_map_name, "Dolina Seungryong", "Pustynia Yongbi", "Lodowa Ziemia", empire_castle,"Anuluj")
				if sub_set == 6 then -- ??
					return
				end

			else -- 61?? : ????, ???, ????, ????
				sub_set = select(guild_map_name, "Dolina Seungryong", "Pustynia Yongbi", "Lodowa Ziemia",  empire_castle,"Dalej")
				if sub_set == 6 then -- ??
					say("Te mapy dostepne sa od 60 poziomu!")
					say_reward(string.format("Aby sie przeniesc potrzebujesz %d yang.", cost))
					say("")
					sub_set = select("Doyyum-Hwai", "Swiatynia Hwang - DT", "Wroc", "Anuluj") + 5
					if sub_set == 9 then -- ??
						return
					end
					if sub_set == 8 then -- ??
											 ---                                                   l
						say_reward(string.format("Bedzie to kosztowac %d yang.", cost))
						say_reward("Czy chcesz sie przeniesc?")
						say("")
						sub_set = select(guild_map_name, "Dolina Seungryong", "Pustynia Yongbi", "Lodowa Ziemia",  empire_castle,"Dalej")
						if sub_set == 6 then -- ??
							---                                                   l
							say("Te mapy dostepne sa od 60 poziomu!")
							say("Czy chcesz sie przeniesc?")
							say_reward(string.format("Koszt to %d yang.", cost))
							say("")
							sub_set = select("Doyyum-Hwai", "Swiatynia Hwang - DT", "Anuluj") + 5
							if sub_set == 8 then -- ??
								return
							end
						end
					end
				end
			end

			if pc.gold < cost then
				say("Niestety nie masz wystarczająco[ENTER]Dużo Yang![ENTER]Przyjdź kiedy będziesz mieć pełną sumę...")
				say_reward(string.format("Musisz zaplacic %d yang", cost))
				say("")
				return
			end

			pc.changegold(-cost)

			local warp = {
                   -- guild_map
                   {
                       { 128500, 1000 },
                       { 179500, 1000 },
                       { 271800, 13000 },
                   },
                   -- 64 map_n_threeway
                   {
                       { 402100, 673900 },
                       { 270400, 739900 },
                       { 321300, 808000 },
                   },
                   -- 63 metin2_map_n_desert_01
                   {
                       { 217800, 627200 },
                       { 221900, 502700 },
                       { 344000, 502500 },
                   },
                   -- 61 map_n_snowm_01
                   {
                       { 434200, 290600 },
                       { 375200, 174900 },
                       { 491800, 173600 },
                   },
				{--empire_castle
					{972800, 102400},
					{921600, 153600},
					{972800, 153600},

				} ,
                   -- 62 metin2_map_n_flame_01
                   {
                       { 599400, 756300 },
                       { 597800, 622200 },
                       { 730700, 689800 },
                   },
                   -- devil_tower
                   {
                       { 590500, 110500 },
                       { 590500, 110500 },
                       { 590500, 110500 },
                   },
			}
			test_chat(warp[sub_set][empire][1]..warp[sub_set][empire][2])
			say("Przeniosles sie!")
			say("")
			say("Trzymaj sie mocno!")
			wait()
			pc.warp(warp[sub_set][empire][1], warp[sub_set][empire][2])


		else -- ? ?? 1,2 ? ??? ?????? ? ?? 1,2 ? ??? ?? ??	
			local sub_set2 = 3

			--sub_set2 = select(locale.vileage1_name[empire], locale.vileage2_name[empire], locale.cancel)
			if empire==1 then    
				sub_set2 = select("Shinsoo M1","Shinsoo M2" , locale.cancel)
			elseif  empire ==2 then  
				sub_set2 = select("Chunjo M1","Chunjo M2" , locale.cancel)
			elseif  empire ==3 then 
				sub_set2 = select("Jinno M1","Jinno M2" , locale.cancel)
			end	
			if sub_set2 != 3 then
				if pc.gold < cost then
					say("Hmm...")
					say("Rozumiem, ze nie masz yang")
					say("ale ja tez musze jakos wyzywic swoja rodzine!")
					say_reward(string.format("Wroc kiedy zdobedziesz %d yang", cost))
					say("")
				else
					if sub_set2 == 1 then
						say("Przeniosles sie!")
						say("")
						wait()

						if empire == 1 then
							pc.warp(474300,954800)
						elseif empire == 2 then
							pc.warp(63800,166400)
						elseif empire == 3 then
							pc.warp(959900,269200)
						end	
					elseif sub_set2 == 2 then
						say("Przeniosles sie!")
						say("")
						say("")
						say("")
						wait()
						if empire == 1 then
							pc.warp(353100,882900)
						elseif empire == 2 then
							pc.warp(145500,240000)
						elseif empire == 3 then
							pc.warp(863900,246000)
						end	
					end

					pc.changegold(-cost)
				end
			end
		end
	end -- end_of_chat
	end -- end_of_state
end -- end_of_quest

 

teraz tak

przy tych questach wywala mi taki blad

 

Segmentantion fault (core dumped)

bez YT

Opublikowano

>.< powiedz mi dokladnie od poczatku do konca jakiego chcesz questa to ci zrobie od podstaw bo nielubie edytowac gotowocow

 

zaczne od 2 questa to jest podstawowy teleporter 9012

bo ten co posiadam to wywala mi blad jak napisalem w poprzednim poscie wszytkie opcje co tam sa oprocz Wojna Krolestw

 

a co do 1 to interesuje mnie na Wojnę Królestw (dzialajacy)

bez YT

Opublikowano

na wojne krolestw dzialajacy pelny typu taki jak na us to tylko mozna kupic :)

 

tu masz mini quest jesli chcesz lepszy to 8168800 zapraszam :=)

 

quest mini_wojna_krolestw begin
state start begin
	when ID.chat."Wejdz na wojne! 1" with pc.get_empire() == 1 begin
		    local a = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if a == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(975200, 133000)
                               elseif a == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(978000, 199500)
                               elseif a == 3 then
                                       say("Las")
                                       pc.warp(967900, 199400)
                               elseif a == 4 then
                                       return
                               end
       end
	when ID.chat."Wejdz na wojne! 2" with pc.get_empire() == 2 begin
                local b = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if b == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(977400, 150100)
                               elseif b == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(977200, 185000)
                               elseif b == 3 then
                                       say("Las")
                                       pc.warp(925600, 201200)
                               elseif b == 4 then
                                       return
                               end     
       end
	when ID.chat."Wejdz na wojne! 3" with pc.get_empire() == 3 begin
	      local a = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if c == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(1018900, 148400)
                               elseif c == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(1019000, 200200)
                               elseif c == 3 then
                                       say("Las")
                                       pc.warp(923900, 183600)
                               elseif c == 4 then
                                       return
                               end     
	end
end
end

QmxvbmR5blhfX19ldW5lX19fNTI0X19fTlVMTF9fXzNfX18xMDBfX19ub25lLnBuZ19fXzhfX19ub25lX19fMDAwMDAwX19fc29sbw==.png
Opublikowano

na wojne krolestw dzialajacy pelny typu taki jak na us to tylko mozna kupic :)

 

tu masz mini quest jesli chcesz lepszy to 8168800 zapraszam :=)

 

quest mini_wojna_krolestw begin
state start begin
	when ID.chat."Wejdz na wojne! 1" with pc.get_empire() == 1 begin
		    local a = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if a == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(975200, 133000)
                               elseif a == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(978000, 199500)
                               elseif a == 3 then
                                       say("Las")
                                       pc.warp(967900, 199400)
                               elseif a == 4 then
                                       return
                               end
       end
	when ID.chat."Wejdz na wojne! 2" with pc.get_empire() == 2 begin
                local b = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if b == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(977400, 150100)
                               elseif b == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(977200, 185000)
                               elseif b == 3 then
                                       say("Las")
                                       pc.warp(925600, 201200)
                               elseif b == 4 then
                                       return
                               end     
       end
	when ID.chat."Wejdz na wojne! 3" with pc.get_empire() == 3 begin
	      local a = select("Lodowy zamek" ,"Pustynny zamek","Las","Anuluj")
                               if c == 1 then
                                       say("Lodowy zamek")
                                       pc.warp(1018900, 148400)
                               elseif c == 2 then
                                       say("Pustynny zamek")
                                       pc.warp(1019000, 200200)
                               elseif c == 3 then
                                       say("Las")
                                       pc.warp(923900, 183600)
                               elseif c == 4 then
                                       return
                               end     
	end
end
end

 

a mozesz mi powiedziec od czego wywala blad

Segmentation fault

a to wyzej to sex linia xD

bez YT

Opublikowano

8168800 zapraszam :=) (cio to):P

a teraz tak powiecie mi co jest nie tak z tym

po wpisaniu komendy start w koksoli mam cos takiego

locale/germany/quest/object/state/guild_building_melt:39: unfinished string near
' "Produkcja zakonczyla sie sukcesem. otrzymales" ) '

tak wyglada w folderze "state"

guild_building_melt={["start"]=0,GetOreRefineCost= function (cost)if pc . empire ~= npc . empire then 
return 3 * cost 
end 
if pc . get_guild ( ) == npc . get_guild ( ) then 
return cost * 0.9 
end 
return cost 
end ,GetOreRefineGoodPct= function ()return 60 
end ,GetOreRefineBadPct= function ()return 30 
end ,GetMyRefineNum= function (race)return race - 20060 + 50601 
end ,IsRefinableRawOre= function (vnum)return vnum >= 50601 and vnum <= 50613 
end ,DoRefineDiamond= function (pct)local from_postfix 
local from_name = item_name ( item . vnum ) 
local to_vnum = item . vnum + 20 
local to_name = item_name ( to_vnum ) 
local to_postfix 
if under_han ( from_name ) then 
from_postfix = " " 
else 
from_postfix = " " 
end 
if under_han ( to_name ) then 
to_postfix = "" 
else 
to_postfix = "" 
end 
say ( "Musisz 100 " .. from_name .. " przynieść," ) 
say ( "Stwierdzam, że " .. to_name .. " w stanie wyprodukować." ) 
if item . count >= 100 then 
say ( "Prawdopodobieństwo jest " .. pct .. "%. musisz " .. guild_building_melt . GetOreRefineCost ( 10000 ) .. "Euro" ) 
say ( "Chcesz spróbować?" ) 
local s = select ( "Tak" , "Nie" ) 
if s == 1 then 
if pc . get_gold ( ) < guild_building_melt . GetOreRefineCost ( 10000 ) then 
say ( "Nie masz wystarczająco Euro." ) 
return 
end 
if pc . diamond_refine ( 10000 , pct ) then 
say ( "Produkcja zakończyła się sukcesem. otrzymałeś" ) 
say_item ( "to_name, to_vnum," ) 
else 
say ( "Produkcji nie." ) 
end 
end 
else 
say ( "Musisz 100 z nich." ) 
end 
end ,DoRefine= function (pct)local from_postfix 
local from_name = item_name ( item . vnum ) 
local to_vnum = item . vnum + 20 
local to_name = item_name ( to_vnum ) 
local to_postfix 
if under_han ( from_name ) then 
from_postfix = "" 
else 
from_postfix = "" 
end 
if under_han ( to_name ) then 
to_postfix = "" 
else 
to_postfix = "" 
end 
say ( "Musisz 100 " .. from_name .. " i" ) 
say ( " Kamień duszy +0, +1 lub +2," ) 
say ( "Stwierdzam, że " .. to_name .. " może powodować." ) 
if item . count >= 100 then 
say ( "Prawdopodobieństwo jest " .. pct .. "%. musisz " .. guild_building_melt . GetOreRefineCost ( 3000 ) .. "Euro." ) 
say ( "Chcesz spróbować?" ) 
local s = select ( "Tak" , "Nie" ) 
if s == 1 then 
if pc . get_gold ( ) < guild_building_melt . GetOreRefineCost ( 3000 ) then 
say ( "Masz dosyć Euro." ) 
return 
end 
local selected_item_cell = select_item ( ) 
if selected_item_cell == 0 then 
say ( "Bez kamieni duszy nie mogę produkować." ) 
return 
end 
local old_item = item . get_id ( ) 
if not item . select_cell ( selected_item_cell ) then 
say ( "To nie jest prawda~¨nie jest poprawna." ) 
return 
end 
if item . vnum < 28000 or item . vnum >= 28300 then 
say ( "To nie jest prawda~¨nie jest poprawna." ) 
return 
end 
item . select ( old_item ) 
if pc . ore_refine ( 3000 , pct , selected_item_cell ) then 
say ( "Produkcja zakończyła się sukcesem. otrzymasz" ) 
say_item ( to_name , to_vnum , "" ) 
else 
say ( "Produkcja nie powiodła się." ) 
end 
end 
else 
say ( "Musisz 100 z nich." ) 
end 
end }

 

tak wyglada quest

quest guild_building_melt begin
state start begin
	function GetOreRefineCost(cost)
		if pc.empire != npc.empire then
			return 3 * cost
		end
		if pc.get_guild() == npc.get_guild() then
			return cost * 0.9
		end
		return cost
	end

	function GetOreRefineGoodPct()
		return 60
	end

	function GetOreRefineBadPct()
		return 30
	end

	function GetMyRefineNum(race)
		return race - 20060 + 50601
	end

	function IsRefinableRawOre(vnum)
		return vnum >= 50601 and vnum <= 50613
	end

	function DoRefineDiamond(pct)
		local from_postfix
		local from_name = item_name(item.vnum)
		local to_vnum = item.vnum + 20
		local to_name = item_name(to_vnum)
		local to_postfix 

		if under_han(from_name) then
			from_postfix = " "
		else
			from_postfix = " "
		end

		if under_han(to_name) then
			to_postfix = ""
		else
			to_postfix = ""
		end

		say("Musisz 100 " .. from_name .. " przynieść,")
		say("Stwierdzam, że " .. to_name .. " w stanie wyprodukować.")
		if item.count >= 100 then
			say("Prawdopodobieństwo jest "..pct.."%. musisz "..guild_building_melt.GetOreRefineCost(10000).."Euro")
			say("Chcesz spróbować?")
			local s = select("Tak", "Nie")
			if s == 1 then
				if pc.get_gold() < guild_building_melt.GetOreRefineCost(10000) then
					say("Nie masz wystarczająco Euro.")
					return
				end

				if pc.diamond_refine(10000, pct) then
					say("Produkcja zakończyła się sukcesem. otrzymałeś")
					say_item("to_name, to_vnum,")
				else
					say("Produkcji nie.")
				end
			end
		else
			say("Musisz 100 z nich.")
		end
	end
	function DoRefine(pct)
		local from_postfix
		local from_name = item_name(item.vnum)
		local to_vnum = item.vnum + 20
		local to_name = item_name(to_vnum)
		local to_postfix 

		if under_han(from_name) then
			from_postfix = ""
		else
			from_postfix = ""
		end

		if under_han(to_name) then
			to_postfix = ""
		else
			to_postfix = ""
		end

		say("Musisz 100 " .. from_name .. " i")
		say(" Kamień duszy +0, +1 lub +2,")
		say("Stwierdzam, że " .. to_name .. " może powodować.")
		if item.count >= 100 then
			say("Prawdopodobieństwo jest "..pct.."%. musisz "..guild_building_melt.GetOreRefineCost(3000).."Euro.")
			say("Chcesz spróbować?")
			local s = select("Tak", "Nie")
			if s == 1 then
				if pc.get_gold() < guild_building_melt.GetOreRefineCost(3000) then
					say("Masz dosyć Euro.")
					return
				end

				local selected_item_cell = select_item()
				if selected_item_cell == 0 then
					say("Bez kamieni duszy nie mogę produkować.")
					return
				end
				local old_item = item.get_id()

				if not item.select_cell(selected_item_cell) then
					say("To nie jest prawda~¨nie jest poprawna.")
					return
				end

				if item.vnum < 28000 or item.vnum >= 28300 then
					say("To nie jest prawda~¨nie jest poprawna.")
					return
				end

				item.select(old_item)

				if pc.ore_refine(3000, pct, selected_item_cell) then
					say("Produkcja zakończyła się sukcesem. otrzymasz")
					say_item(to_name, to_vnum, "")
				else
					say("Produkcja nie powiodła się.")
				end
			end
		else
			say("Musisz 100 z nich.")
		end
	end

	when 
		20060.take or
		20061.take or
		20062.take or
		20063.take or
		20064.take or
		20065.take or
		20066.take or
		20067.take or
		20068.take or
		20069.take or
		20070.take or
		20071.take or
		20072.take 
		with guild_building_melt.GetMyRefineNum(npc.race) == item.vnum
		begin
		if item.vnum == 50601 then
			guild_building_melt.DoRefineDiamond(guild_building_melt.GetOreRefineGoodPct())
		else
			guild_building_melt.DoRefine(guild_building_melt.GetOreRefineGoodPct())
		end
	end

	when 
		20060.take or
		20061.take or
		20062.take or
		20063.take or
		20064.take or
		20065.take or
		20066.take or
		20067.take or
		20068.take or
		20069.take or
		20070.take or
		20071.take or
		20072.take 
		with guild_building_melt.IsRefinableRawOre(item.vnum) and guild_building_melt.GetMyRefineNum(npc.race) != item.vnum
		begin
		if item.vnum == 50601 then
			guild_building_melt.DoRefineDiamond(guild_building_melt.GetOreRefineBadPct())
		else
			guild_building_melt.DoRefine(guild_building_melt.GetOreRefineBadPct())
		end
	end

	when 
		20060.click or
		20061.click or
		20062.click or
		20063.click or
		20064.click or
		20065.click or
		20066.click or
		20067.click or
		20068.click or
		20069.click or
		20070.click or
		20071.click or
		20072.click
		with npc.get_guild() == pc.get_guild() and pc.isguildmaster()
		begin
		say("Für 3.000.000 Euro Możesz Specjalizujemy mnie.")
		if pc.get_gold() < 3000000 then
			say("musisz 3.000.000 Euro.")
		else
			say("Co chcą się specjalizować?")

			local sel = 0
			local timetable1 = {'Diament','Drewno '," Miedź "," Srebro "," Złoto "," Jadelit "," Dalej "," bez zmian "} 
			local valuetable1 = {14043, 14045, 14046, 14047, 14048, 14049, 0, -1} 
			local timetable2 = {'Ebonit', 'Perla', 'Białe Złoto', 'Krysztal', 'Ametyst', "Niebianskie Łzy", "Powrót", "bez zmian"} 
			local valuetable2 = {14050, 14051, 14052, 14053, 14054, 14055, 0, -1} 
			repeat 
				local s = select_table(timetable1) 
				sel = valuetable1[s] 
				if sel == 0 then 
					local s = select_table(timetable2) 
					sel = valuetable2[s] 
				end 
			until sel != 0 
			if sel != -1 then 
				npc_num = sel + 20060 - 14043 
				if npc_num == npc.get_race() then
					say("Jestem już.")
				else
					pc.changegold(-3000000)
					building.reconstruct(sel)
				end
			else
				say("Wtedy po prostu nie.")
			end 
		end
	end
end
end

 

a wracajac do naszej ostatniej walki to dlaczego to dziala tylko na 1 mapie,

jak chce dodac to na inna mape to mi postac buguje jak sie ma odpowiedni lvl

a na mniejszym normalnie przenosi do m1

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 2)
                                               else 
                                                               pc.warp(1536100 , 10496100)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

chyba ze jest mozliwosc do tego questa dodac kilka map(indexow)

bez YT

Opublikowano

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 2)
                                               else 
                                                               pc.warp(1536100 , 10496100)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

 

Jeśli chcesz dodać inne wymaganie zrób tak:

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 2)
					else 
							pc.warp(1536100 , 10496100)
                       end
               end
               when login with pc.get_map_index() == ID begin
                       if pc.get_level() < lvl then
                               timer("billg2", 2)
					else 
							pc.warp(1536100 , 10496100)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
               when billg2.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

 

Skopiuj od when login ... begin

aż do end na równi z when, zmień nazwę timera oraz id mapy i lvl wymagany.

Następnie skopiuj when ...timer begin

aż do end zamykającego when, zmień nazwę timera i ciesz się nową blokadą na mapie :)

 

@EDIT

Jeśli nie rozumiesz tego do końca zrób zgodnie z tym co tu napiszę.

1. Masz quest:

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 2)
                                               else 
                                                               pc.warp(1536100 , 10496100)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

 

2. kopiujesz to i wklejasz niżej:

                when login with pc.get_map_index() == ID begin
                       if pc.get_level() < lvl then
                               timer("billg2", 2)
					else 
							pc.warp(1536100 , 10496100)
                       end
               end

3. Ustawiasz ID mapy, wymagany lvl i gdzie ma cie przenieść jeśli masz wyższy lvl niż wymagany.

 

4. kopiujesz i wklejasz niżej:

                when billg2.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end

5. zmieniasz nazwę timera ( when nazwa.timer begin )

 

6. Zapisujesz quest, wpisujesz w konsoli:

cd /usr.../quest (ścieżka do folderu quest)

następnie

./qc nazwa_questa.quest

i wtedy w grze wpisz /reload q

LUB restart maszyny :)

 

Jeśli pomogłem, podziękuj ;P

 

Pozdrawiam :)

***


Nie gram już w ogóle w metina,


ale jeśli potrzeba komuś pomoc z questem


to jeśli będę potrafił to mogę pomóc.


***

Opublikowano

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 2)
                                               else 
                                                               pc.warp(1536100 , 10496100)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

 

Jeśli chcesz dodać inne wymaganie zrób tak:

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 2)
					else 
							pc.warp(1536100 , 10496100)
                       end
               end
               when login with pc.get_map_index() == ID begin
                       if pc.get_level() < lvl then
                               timer("billg2", 2)
					else 
							pc.warp(1536100 , 10496100)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
               when billg2.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

 

Skopiuj od when login ... begin

aż do end na równi z when, zmień nazwę timera oraz id mapy i lvl wymagany.

Następnie skopiuj when ...timer begin

aż do end zamykającego when, zmień nazwę timera i ciesz się nową blokadą na mapie :)

 

@EDIT

Jeśli nie rozumiesz tego do końca zrób zgodnie z tym co tu napiszę.

1. Masz quest:

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 2)
                                               else 
                                                               pc.warp(1536100 , 10496100)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

 

2. kopiujesz to i wklejasz niżej:

                when login with pc.get_map_index() == ID begin
                       if pc.get_level() < lvl then
                               timer("billg2", 2)
					else 
							pc.warp(1536100 , 10496100)
                       end
               end

3. Ustawiasz ID mapy, wymagany lvl i gdzie ma cie przenieść jeśli masz wyższy lvl niż wymagany.

 

4. kopiujesz i wklejasz niżej:

                when billg2.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end

5. zmieniasz nazwę timera ( when nazwa.timer begin )

 

6. Zapisujesz quest, wpisujesz w konsoli:

cd /usr.../quest (ścieżka do folderu quest)

następnie

./qc nazwa_questa.quest

i wtedy w grze wpisz /reload q

LUB restart maszyny :)

 

Jeśli pomogłem, podziękuj ;P

 

Pozdrawiam :)

 

thx sprawdze za pare min i dam znac czy dziala

rozumiem co piszaesz i ze zrozumieniem czytam

( tak mi sie wydaje) xD

 

ale jak rozumiem to jak dodaje wiecej map to rwniez mosze zmieniac to

timer("billg2", 2)

 

i mam ten sam blad co wczesniej czyli

jak sie teleportuje na mape majac 200lvl a blokada jest na 130 to postac pojawia sie a nastempnie jak by znowu sie przenosila i tak w kolko.

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 2)
                                               else 
                                                               pc.warp(1536100 , 10496100)
                       end
               end
               when login with pc.get_map_index() == 6 begin
                       if pc.get_level() < 80 then
                               timer("billg2", 2)
                                               else 
                                                               pc.warp(614400, 1049600)
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
               when billg2.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

bez YT

Opublikowano

@UP Tak, musisz zmienić nazwę timera.

***


Nie gram już w ogóle w metina,


ale jeśli potrzeba komuś pomoc z questem


to jeśli będę potrafił to mogę pomóc.


***

Opublikowano

Prosze o napisanie questa o dostepne misje w pierscieniu teleportacji :

 

Teleporty do miast (od 0lv)

M1 Jinno

M1 Shinso

M1 Hunjo

M2 Jinno

M2 Shinso

M2 Hunjo

Teleporty od 30lv

Dolina seuriang

Teleport do swiatyni hwang

Teleporty od 80lv

DT

AV1

AV2

Obecne wojny gildii

Opublikowano

quest deviltower_zone begin
   state start begin
when login begin
    if pc.get_map_index() == 66 then
	-- ¨Ă«D¦b1ĽÓ®É, °eŞđĄ~­±.
	-- ĽhĽĆ ˝dłň
	-- 1ĽÓ  88  577  236 737
	-- 2ĽÓ  91  343  238 504
	-- 3ĽÓ 104  107  248 269
	if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
	    pc.warp((5376+532)*100, (512+596+4)*100, 65)
	end
	pc.set_warp_location(65, 5376+532, 512+596+4)
    elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
	pc.set_warp_location(65, 5376+532, 512+596+4)
    end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
    if pc.get_level() < 40 then
	say_title("Strażnik Wieży Demonów: ")
	say(locale.deviltower_man_say_you_cant)
    else
	say_title("Strażnik Wieży Demonów: ")
	say(locale.deviltower_man_say)
	local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
	if s == 1 then
	    -- warp into!
	    pc.warp(216500,727000)
	end
    end
end
when devil_stone1.kill begin
    timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
	local mapto7= pc.count_item(30302)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞşŻu¤`ĆF¶đ
	pc.remove_item(30302,mapto7)

	local boxto7= pc.count_item(30300)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞş¤ŁŞľ¦WŞş˝c¤l
	pc.remove_item(30300,boxto7)

    d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
    d.regen_file("data/dungeon/deviltower2_regen.txt")
    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
    --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
    --d.set_exit_all_at_eliminate(6)
    --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
    --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
    d.check_eliminated()
    --d.exit_all()
end
function get_4floor_stone_pos()
    local positions = {
	{368, 629},
	{419, 630},
	{428, 653},
	{422, 679},
	{395, 689},
	{369, 679},
	{361, 658},
    }
    for i = 1, 6 do
	local j = number(i, 7)
	if i != j then
	    local t = positions[i];
	    positions[i] = positions[j];
	    positions[j] = t;
	end
    end
    --for i = 1, 7 do
--	positions[i][1] = positions[i][1] * 100
--	positions[i][2] = positions[i][2] * 100
 --   end
    return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
    d.setf("level", 4)
    -- ¦A˛{¤j¶q©ÇŞ«¤Î»słyŻuĄŰŔY©M°˛ĄŰŔY
    --d.regen_file("data/dungeon/deviltower4_regen.txt")
    local positions = deviltower_zone.get_4floor_stone_pos()
    for i = 1, 6 do
	chat(positions[i][1], positions[i][2])
	d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
    end
    chat(positions[7][1], positions[7][2])
    local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
    chat(vid)
    d.set_unique("real", vid)
    server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
    server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

    d.notice("Dotarłeś do Bramy Wyboru na 3. piętrze. Wiele");
    d.notice("kamieni Metin będzie drażnić Twoje oczy i uszy.");
    d.notice("Znajdź właściwy kamień Metin i zniszcz go w");
    d.notice("ciągu 15 minut! To jedyny sposób aby przejść ");
    d.notice("dalej.");
end

when devil_stone4_fail1.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostało 10 minut!")
	server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
    end
end

when devil_stone4_fail2.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostało 5 minut!")
	server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
    end
end

when devil_stone4_fail.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Nie udało się, zostaniecie wylogowany!")
	d.exit_all()
	clear_server_timer('devil_stone4_update', get_server_timer_arg())
    end
end

when devil_stone4_update.server_timer begin
    if d.select(get_server_timer_arg()) then
	if not d.is_unique_dead("real") then
	    for i = 1, 6 do
		if d.getf("fakedead" .. i) == 0 then
		    if d.unique_get_hp_perc("fake" .. i) < 50 then
			d.purge_unique("fake" .. i)
			d.setf("fakedead" .. i, 1)
			d.notice("To nie ten kamień!");
		    end
		end
	    end
	else
	    --d.clear_regen()
	    --d.regen_file("data/dungeon/deviltower5_regen.txt")
	    server_timer("devil_stone4_end", 5, get_server_timer_arg())
	    d.notice("Wykazałeś się doskonałym słuchem i instynktem");
	    d.notice("Zniszczyłeś prawidłowy kamień Metin! Za chwilę ")
	    d.notice("dotrzesz na 4. pietro!")
	    clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
	    clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
	    clear_server_timer('devil_stone4_fail', get_server_timer_arg())
	end
    else
	server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
    end
end

when devil_stone4_stop_timer.server_timer begin
    clear_server_timer('devil_stone4_update', get_server_timer_arg())
end

when devil_stone4_end.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.setf("level", 5)
	d.setf("stone_count", 5)
	d.notice("Dotarłeś do zamkniętej Bramy na 4. piętrze!")
	d.notice("Znajduje się tu wiele potworów, które strzegą ")
	d.notice("tajemniczych kamieni - będziesz ich potrzebował. ")
	d.notice("Bez nich nie dostaniesz się na 5. poziom Wieży. ")
	d.notice("Zdobądź Kamienie od potworów i użyj ich, aby")
	d.notice("odblokować Starożytne Pieczęci. Na wykonanie")
	d.notice("tego zadania masz tylko 20 minut - spiesz się! ")
	d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
	server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
	clear_server_timer('devil_stone4_update', get_server_timer_arg())

	-- 5ĽÓÄ~Äň¦A˛{
	d.set_regen_file("data/dungeon/deviltower5_regen.txt")

	-- 5ĽÓ«Ę¦LĄŰ¦A˛{
	d.spawn_mob(20073, 421, 452)
	d.spawn_mob(20073, 380, 460)
	d.spawn_mob(20073, 428, 414)
	d.spawn_mob(20073, 398, 392)
	d.spawn_mob(20073, 359, 426)
    end
end
when devil_stone5_fail1.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostało 15 minut!")
	server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail2.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostało 10 minut!")
	server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail3.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostało 5 minut!")
	server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Nie udało się, zostaniesz wylogowany!")
	d.exit_all()
    end
end

--when devil_stone4.kill begin
    --d.setf("level", 5)
    --d.setf("stone_count", 4)
    --d.clear_regen()
    --d.regen_file("data/dungeon/deviltower5_regen.txt")
    --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end

when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
    local KILL_COUNT_FOR_DROP_KEY = 50
    --if is_test_server() then
	--KILL_COUNT_FOR_DROP_KEY = 1
    --end
    local n =d.getf("count") + 5
    d.setf("count", n) 
    if n == KILL_COUNT_FOR_DROP_KEY then
	-- ±Ľ¤UÂę°Í
	game.drop_item(50084, 1)
	d.setf("count", 0)
    end
end
when devil_stone5.take with item.vnum == 50084 begin
    npc.purge()
    item.remove()
    d.setf("stone_count", d.getf("stone_count") - 1)
    if d.getf("stone_count") <= 0 then
	d.setf("level", 6)
	d.clear_regen()
	d.regen_file("data/dungeon/deviltower6_regen.txt")

	d.notice("Wszystkie Starożytne Pieczęci zostały otwarte.")
	d.notice("Teraz dotrzesz na 5. poziom Wieży Demonów. ")
	d.notice("Zabij wszystkie potwory na 5. piętrze, jednak ")
	d.notice("uważaj Piętro to należy do Króla Demonów! ")
	d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
	clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail', get_server_timer_arg())
    else
	d.notice("Otworzyłeś pieczęć! Pozostało jeszcze: "..d.getf("stone_count").."!")
    end
end

when devil_stone6.kill begin
    -- ¶Ç°e¨ě·Ň¸t©Ň¦bŞş¦aąĎ
    -- §_«hˇA¶}ł]¤@­Ó·s·Ň¸t
    --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
    d.kill_all()
   -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
    d.check_eliminated()
    local reward_alchemist = {20074, 20075, 20076}
    d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
    d.setqf("can_refine", 1)
end

--------------------------------------
-- ĄŃ¶i¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
--------------------------------------

when 20074.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say_title("Zbrojmistrz Wieży Demonów ")
	say("Co?! Chcesz udać się na 6. poziom Wieży? ")
	say("Wyprawa na wyższe poziomy wymaga")
	say("naprawdę dobrego przygotowania.")
	say("Jeżeli osiągnąłeś 75. poziom mogę ")
	say("przenieść Cię na wyższe piętro.")
	wait()
	if pc.level >=75 then
	say_title("Zbrojmistrz Wieży Demonów ")
		say("Masz odpowiedni poziom i dlatego masz spore ")
		say("szanse na przetrwanie na wyższych piętrach.")
		say("Mozesz wejść")
		timer("devil_jump_7", 6)
		return
	end
	say("Możesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end
when 20075.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say_title("Platnerz Wieży Demonów ")
	say("Co?! Chcesz udać się na 6. poziom Wieży? ")
	say("Wyprawa na wyższe poziomy wymaga")
	say("naprawdę dobrego przygotowania.")
	say("Jeżeli osiągnąłeś 75. poziom mogę ")
	say("przenieść Cię na wyższe piętro.")
	wait()
	if pc.level >=75 then
	say_title("Platnerz Wieży Demonów ")
		say("Masz odpowiedni poziom i dlatego masz spore ")
		say("szanse na przetrwanie na wyższych piętrach.")
		say("Mozesz wejść")
		timer("devil_jump_7", 6)
		return
	end
	say("Możesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end
when 20076.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say_title("Jubiler Wieży Demonów ")
	say("Co?! Chcesz udać się na 6. poziom Wieży? ")
	say("Wyprawa na wyższe poziomy wymaga")
	say("naprawdę dobrego przygotowania.")
	say("Jeżeli osiągnąłeś 75. poziom mogę ")
	say("przenieść Cię na wyższe piętro.")
	wait()
	if pc.level >=75 then
	say_title("Jubiler Wieży Demonów ")
		say("Masz odpowiedni poziom i dlatego masz spore ")
		say("szanse na przetrwanie na wyższych piętrach.")
		say("Mozesz wejść")
		timer("devil_jump_7", 6)
		return
	end
	say("Możesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end

  when devil_jump_7.timer begin
	d.notice("Mapa Zin-Sa-Gui otwiera drogę na następne")
	d.notice("piętro. Zniszcz kamienie Metin, aby ją odnaleźć ")
	d.clear_regen()
	d.spawn_mob(8018, 639, 658)
	d.spawn_mob(8018, 611, 637)
	d.spawn_mob(8018, 596, 674)
	d.spawn_mob(8018, 629, 670)

	d.setf("level", 7)

	d.jump_all(2048+590, 6656+638)
end

when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	local cont = d.getf("7_stone_kill") + 1
	d.setf("7_stone_kill", cont)

	if cont >= 4 then
		d.setf("7_stone_kill", 0)
		d.set_regen_file("data/dungeon/deviltower7_regen.txt")
	end	
end

when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	game.drop_item(30300, 1)
end

when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	pc.remove_item("30300", 1)

	local pct = number(1,10)

	if pct == 1 then
		-- ±Ľ¤UŻu¦aąĎ
		game.drop_item(30302, 1)
		d.clear_regen()
	else
		-- ±Ľ¤U°˛¦aąĎ
		game.drop_item(30301, 1)

	end
end

when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	-- ¶Ç°e¨ě8ĽÓ
                       say_title("Informacja:")
	say("Ta mapa przeniesie Cię na 8 . poziom Wieży ")
	say("Demonów.")

	pc.remove_item("30302", 1)
    timer("devil_jump_8", 6)
	d.clear_regen()
end

--------------------------------------------
-- ĄŃ¶i¤J8ĽÓ¦Ü¨ěąF9ĽÓ¤§«e
--------------------------------------------
when devil_jump_8.timer begin
	d.notice("Znajdź odpowiedni klucz!")
	d.notice("Potrzebujesz klucza Zin-Bong-In aby")
	d.notice("móc otworzyć pieczęć Sa-Soein i dostać ")
	d.notice("się na następne piętro Wieży.")
	d.setf("level", 8)
	d.jump_all(2048+590, 6656+403)
	d.set_regen_file("data/dungeon/deviltower8_regen.txt")
	d.spawn_mob(20366, 640, 460)
	local _count= pc.count_item(30302)-- ®ř·ŔŻu¤`ĆF¶đ
	pc.remove_item(30302,_count)

end

when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	local pct1 = number(1, 5)
	if pct1 == 1 then
		local pct2 = number(1, 10)
		if pct2 == 1 then
			-- ±Ľ¤UŻuÂę°Í
			game.drop_item(30304, 1)
		else
			-- ±Ľ¤U°˛Âę°Í
			game.drop_item(30303, 1)
		end
	else
		return
	end
end

when 20366.take with item.vnum == 30304 begin
	-- 9ĽÓ«Ę¦L¸Ń°Ł
	npc.purge()
	item.remove()
	timer("devil_jump_9", 6)
end

---------------------------------------------
-- ĄŃ¶i¤J9ĽÓ¦Üµ˛§ô
---------------------------------------------
when devil_jump_9.timer begin
	d.notice("Zabij Przywódcę Demonów! ")
	d.setf("level", 9)
	d.jump_all(2048+590, 6656+155)
	d.regen_file("data/dungeon/deviltower9_regen.txt")
end

when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	d.kill_all()
	notice_all(pc.get_name().." zabił Umarłego Rozpruwacza!")
	d.notice("Zostaniecie przeniesieni na 10 pietro!")
	timer("devil_end_jump", 6)
end

when devil_end_jump.timer begin
	d.setf("level", 10)
	d.jump_all(2048+590, 6656+403)
	d.spawn_mob(1095, 640, 460)
end
when 1095.kill with pc.in_dungeon() and d.getf("level") == 10 begin
	notice_all(pc.get_name().." zabił Niebieską Śmierć!")
	timer("devil_jump_10", 180)
	d.kill_all()
    d.spawn_mob(20074, 640, 460)
	d.spawn_mob(20075, 645, 460)
	d.spawn_mob(20076, 650, 460)
    	d.setqf("can_refine", 3)
	d.notice("Masz 3 minuty na ulepszanie. Po tym czasie[ENTER]Zostaniesz Wylogowany")
end
when devil_jump_10.timer begin
	d.exit_all()
end
end
end

 

Poprawi mi ktos tego questa gdy przenosi na 10 pietro po chwili odrazu wywala

sygnaac.png

wowaw.png

Opublikowano

@UP Tak, musisz zmienić nazwę timera.

 

zmienilem i nadal to samo jest:(

quest billgates begin
       state start begin
               when login with pc.get_map_index() == 15 begin
                       if pc.get_level() < 130 then
                               timer("billg", 5)
                                               else 
                                                               pc.warp( 1536100 , 10496100 )
                       end
               end
               when login with pc.get_map_index() == 6 begin
                       if pc.get_level() < 80 then
                               timer("grota1", 2)
                                               else 
                                                               pc.warp( 614400, 1049600 )
                       end
               end
               when billg.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
               when grota1.timer begin
                       local empire = pc . get_empire ( ) 
                       if empire == 1 then
                       pc.warp ( 402100 , 673900 )
                       elseif empire == 2 then 
                       pc.warp ( 270400 , 739900 )
                       elseif empire == 3 then 
                       pc.warp ( 321300 , 808000 )
                       end
               end
       end
end

 

@SejBes

sprawdz ten czy dziala i daj znac

quest deviltower_zone begin
   state start begin
when login begin
    if pc.get_map_index() == 66 then
	-- ¨A«D¦b1LÓ®É, °eSdA~­±.
	-- LhLC ?dln
	-- 1LÓ  88  577  236 737
	-- 2LÓ  91  343  238 504
	-- 3LÓ 104  107  248 269
	if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
	    pc.warp((5376+532)*100, (512+596+4)*100, 65)
	end
	pc.set_warp_location(65, 5376+532, 512+596+4)
    elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
	pc.set_warp_location(65, 5376+532, 512+596+4)
    end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
    if pc.get_level() < 40 then
	say(locale.deviltower_man_say_you_cant)
    else
	say(locale.deviltower_man_say)
	local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
	if s == 1 then
	    -- warp into!
	    pc.warp(216500,727000)
	end
    end
end
when devil_stone1.kill begin
    timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
	local mapto7= pc.count_item(30302)  -- ®r·R¤LSl¬O§_¦s¦bSsZu¤`CF¶d
	pc.remove_item(30302,mapto7)

	local boxto7= pc.count_item(30300)  -- ®r·R¤LSl¬O§_¦s¦bSs¤LSl¦WSs?c¤l
	pc.remove_item(30300,boxto7)

    d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
    d.regen_file("data/dungeon/deviltower2_regen.txt")
    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
    --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
    --d.set_exit_all_at_eliminate(6)
    --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
    --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
    d.check_eliminated()
    --d.exit_all()
end
function get_4floor_stone_pos()
    local positions = {
	{368, 629},
	{419, 630},
	{428, 653},
	{422, 679},
	{395, 689},
	{369, 679},
	{361, 658},
    }
    for i = 1, 6 do
	local j = number(i, 7)
	if i != j then
	    local t = positions[i];
	    positions[i] = positions[j];
	    positions[j] = t;
	end
    end
    --for i = 1, 7 do
--	positions[i][1] = positions[i][1] * 100
--	positions[i][2] = positions[i][2] * 100
 --   end
    return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
    d.setf("level", 4)
    -- ¦A?{¤j¶q©ÇS«¤Î»slyZuAURY©M°?AURY
    --d.regen_file("data/dungeon/deviltower4_regen.txt")
    local positions = deviltower_zone.get_4floor_stone_pos()
    for i = 1, 6 do
	chat(positions[i][1], positions[i][2])
	d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
    end
    chat(positions[7][1], positions[7][2])
    local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
    chat(vid)
    d.set_unique("real", vid)
    server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
    server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

    d.notice("Brawo, udalo sie Tobie");
    d.notice("zniszczyc kamien metin!");
    d.notice("Macie 15 minut na nastepnym pietrze[ENTER] zanim zostaniecie wylogowani.");
    d.notice("Spieszcie sie!");
end

when devil_stone4_fail1.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 10 minut!")
	server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
    end
end

when devil_stone4_fail2.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 5 minut![ENTER]Tenma tu byl...")
	server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
    end
end

when devil_stone4_fail.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Nie udalo sie, zostaniecie wylogowany!")
	d.exit_all()
	clear_server_timer('devil_stone4_update', get_server_timer_arg())
    end
end

when devil_stone4_update.server_timer begin
    if d.select(get_server_timer_arg()) then
	if not d.is_unique_dead("real") then
	    for i = 1, 6 do
		if d.getf("fakedead" .. i) == 0 then
		    if d.unique_get_hp_perc("fake" .. i) < 50 then
			d.purge_unique("fake" .. i)
			d.setf("fakedead" .. i, 1)
			d.notice("To nie ten kamien!");
		    end
		end
	    end
	else
	    --d.clear_regen()
	    --d.regen_file("data/dungeon/deviltower5_regen.txt")
	    server_timer("devil_stone4_end", 5, get_server_timer_arg())
	    d.notice("Udalo sie! Zabij wszystkie potwory na nastepnym");
	    d.notice("pietrze, aby zdobyc kamien otwarcia!")
	    clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
	    clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
	    clear_server_timer('devil_stone4_fail', get_server_timer_arg())
	end
    else
	server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
    end
end

when devil_stone4_stop_timer.server_timer begin
    clear_server_timer('devil_stone4_update', get_server_timer_arg())
end

when devil_stone4_end.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.setf("level", 5)
	d.setf("stone_count", 5)
	d.notice("Brawo, jestes na 5 pietrze!")
	d.notice("Aby przejsc na 6 pietro musisz zabic")
	d.notice("wszystkie potwory tutaj, zdobyc kamien")
	d.notice("otwarcia i otworzyc pieczecie przed czasem!")
	d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
	server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
	clear_server_timer('devil_stone4_update', get_server_timer_arg())

	-- 5LÓÄ~Än¦A?{
	d.set_regen_file("data/dungeon/deviltower5_regen.txt")

	-- 5LÓ«E¦LAU¦A?{
	d.spawn_mob(20073, 421, 452)
	d.spawn_mob(20073, 380, 460)
	d.spawn_mob(20073, 428, 414)
	d.spawn_mob(20073, 398, 392)
	d.spawn_mob(20073, 359, 426)
    end
end
when devil_stone5_fail1.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 15 minut!")
	server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail2.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 10 minut!")
	server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail3.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 5 minut!")
	server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Nie udalo sie, zostaniesz wylogowany!")
	d.exit_all()
    end
end

--when devil_stone4.kill begin
    --d.setf("level", 5)
    --d.setf("stone_count", 4)
    --d.clear_regen()
    --d.regen_file("data/dungeon/deviltower5_regen.txt")
    --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end

when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
    local KILL_COUNT_FOR_DROP_KEY = 50
    --if is_test_server() then
	--KILL_COUNT_FOR_DROP_KEY = 1
    --end
    local n =d.getf("count") + 1
    d.setf("count", n) 
    if n == KILL_COUNT_FOR_DROP_KEY then
	-- ±L¤UÂe°Í
	game.drop_item(50084, 1)
	d.setf("count", 0)
    end
end
when devil_stone5.take with item.vnum == 50084 begin
    npc.purge()
    item.remove()
    d.setf("stone_count", d.getf("stone_count") - 1)
    if d.getf("stone_count") <= 0 then
	d.setf("level", 6)
	d.clear_regen()
	d.regen_file("data/dungeon/deviltower6_regen.txt")

	d.notice("Brawo udalo sie! jestes na 6 pietrze!")
	d.notice("Zabij wszystkie potwory!")
	d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
	clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail', get_server_timer_arg())
    else
	d.notice("Nie wiem1"..d.getf("stone_count").."Nie wiem 2")
    end
end

when devil_stone6.kill begin
    -- ¶Ç°e¨e·N¸t©N¦bSs¦aaD
    -- §_«h?A¶}l]¤@­Ó·s·N¸t
    --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
    d.kill_all()
   -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
    d.check_eliminated()
    local reward_alchemist = {20074, 20075, 20076}
    d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
    d.setqf("can_refine", 1)
end

--------------------------------------
-- AN¶i¤J7LӦܨeaF8LÓ¤§«e
--------------------------------------

when 20074.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20074).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end
when 20075.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20075).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end
when 20076.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20076).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end

  when devil_jump_7.timer begin
	d.clear_regen()

	d.spawn_mob(8018, 639, 658)
	d.spawn_mob(8018, 611, 637)
	d.spawn_mob(8018, 596, 674)
	d.spawn_mob(8018, 629, 670)

	d.setf("level", 7)

	d.jump_all(2048+590, 6656+638)
end

when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	local cont = d.getf("7_stone_kill") + 1
	d.setf("7_stone_kill", cont)

	if cont >= 4 then
		d.setf("7_stone_kill", 0)
		d.set_regen_file("data/dungeon/deviltower7_regen.txt")
	end	
end

when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	game.drop_item(30300, 1)
end

when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	pc.remove_item("30300", 1)

	local pct = number(1,10)

	if pct == 1 then
		-- ±L¤UZu¦aaD
		game.drop_item(30302, 1)
		d.clear_regen()
	else
		-- ±L¤U°?¦aaD
		game.drop_item(30301, 1)

	end
end

when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	-- ¶Ç°e¨e8LÓ
	say("Przeniesiesz sie na 8 pietro!")
	pc.remove_item("30302", 1)
    timer("devil_jump_8", 6)
	d.clear_regen()
end

--------------------------------------------
-- AN¶i¤J8LӦܨeaF9LÓ¤§«e
--------------------------------------------
when devil_jump_8.timer begin
	d.setf("level", 8)
	d.jump_all(2048+590, 6656+403)
	d.set_regen_file("data/dungeon/deviltower8_regen.txt")
	d.spawn_mob(20366, 640, 460)
	local _count= pc.count_item(30302)-- ®r·RZu¤`CF¶d
	pc.remove_item(30302,_count)

end

when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	local pct1 = number(1, 5)
	if pct1 == 1 then
		local pct2 = number(1, 10)
		if pct2 == 1 then
			-- ±L¤UZuÂe°Í
			game.drop_item(30304, 1)
		else
			-- ±L¤U°?Âe°Í
			game.drop_item(30303, 1)
		end
	else
		return
	end
end

when 20366.take with item.vnum == 30304 begin
	-- 9LÓ«E¦L¸N°L
	d.notice("Zostaniecie przeniesieni na 9 pietro!")
	npc.purge()
	item.remove()
	timer("devil_jump_9", 6)
end

---------------------------------------------
-- AN¶i¤J9LӦܵ?§ô
---------------------------------------------
when devil_jump_9.timer begin
	d.setf("level", 9)
	d.jump_all(2048+590, 6656+155)
	d.regen_file("data/dungeon/deviltower9_regen.txt")
end

when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	d.kill_all()
	notice_all(pc.get_name().." zabil Umarlego Rozpruwacza!")
	d.notice("Zostaniecie przeniesieni na 10 pietro!")
	timer("devil_end_jump", 6)
end

when devil_end_jump.timer begin
	d.jump_all(2048+590, 6656+403)
	d.spawn_mob(1095, 640, 460)
end
when 1095.kill with pc.in_dungeon() begin
    --d.exit_all()
	notice_all(pc.get_name().." zabil Niebieska Smierc!")
	timer("devil_jump_10", 6)
end
when devil_jump_10.timer begin
	d.exit_all()
end
end
end

bez YT

Opublikowano

prosze o napisanie questa na poczatkowe itemy

kazda klasa dostaje na poczatek : 10lv konia i figurke do przywolywania konia, eq na 1 lv, pierscien expa na 30 minut i pierscien teleportacji.

Prosze o szybkie napisanie stawiam + :)

Opublikowano

teraz to na ripie loga

 

na 10 pietrze po jakim czasie cie loga chodzi mi o twojego questa

quest deviltower_zone begin
   state start begin
       when login begin
           if pc.get_map_index() == 66 then
               -- ¨Ă«D¦b1ĽÓ®É, °eŞđĄ~­±.
               -- ĽhĽĆ ˝dłň
               -- 1ĽÓ  88  577  236 737
               -- 2ĽÓ  91  343  238 504
               -- 3ĽÓ 104  107  248 269
               if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                   pc.warp((5376+532)*100, (512+596+4)*100, 65)
               end
               pc.set_warp_location(65, 5376+532, 512+596+4)
           elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
               pc.set_warp_location(65, 5376+532, 512+596+4)
           end
       end
       when deviltower_man.chat.locale.deviltower_man_chat begin
           if pc.get_level() < 40 then
               say_title("Strażnik Wieży Demonów: ")
               say(locale.deviltower_man_say_you_cant)
           else
               say_title("Strażnik Wieży Demonów: ")
               say(locale.deviltower_man_say)
               local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
               if s == 1 then
                   -- warp into!
                   pc.warp(216500,727000)
               end
           end
       end
       when devil_stone1.kill begin
           timer("devil_stone1_1", 6)
       end
       when devil_stone1_1.timer begin
               local mapto7= pc.count_item(30302)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞşŻu¤`ĆF¶đ
               pc.remove_item(30302,mapto7)

               local boxto7= pc.count_item(30300)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞş¤ŁŞľ¦WŞş˝c¤l
               pc.remove_item(30300,boxto7)

           d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
           d.regen_file("data/dungeon/deviltower2_regen.txt")
           d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
       end
       --when devil_stone2.kill begin
       --d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
       --end
       when devil_stone3.kill begin
           --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
           --d.set_exit_all_at_eliminate(6)
           --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
           --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
           d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
           d.check_eliminated()
           --d.exit_all()
       end
       function get_4floor_stone_pos()
           local positions = {
               {368, 629},
               {419, 630},
               {428, 653},
               {422, 679},
               {395, 689},
               {369, 679},
               {361, 658},
           }
           for i = 1, 6 do
               local j = number(i, 7)
               if i != j then
                   local t = positions[i];
                   positions[i] = positions[j];
                   positions[j] = t;
               end
           end
           --for i = 1, 7 do
       --      positions[i][1] = positions[i][1] * 100
       --      positions[i][2] = positions[i][2] * 100
        --   end
           return positions
       end
       when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
           d.setf("level", 4)
           -- ¦A˛{¤j¶q©ÇŞ«¤Î»słyŻuĄŰŔY©M°˛ĄŰŔY
           --d.regen_file("data/dungeon/deviltower4_regen.txt")
           local positions = deviltower_zone.get_4floor_stone_pos()
           for i = 1, 6 do
               chat(positions[i][1], positions[i][2])
               d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
           end
           chat(positions[7][1], positions[7][2])
           local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
           chat(vid)
           d.set_unique("real", vid)
           server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
           server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

           d.notice("Dotarłeś do Bramy Wyboru na 3. piętrze. Wiele");
           d.notice("kamieni Metin będzie drażnić Twoje oczy i uszy.");
           d.notice("Znajdź właściwy kamień Metin i zniszcz go w");
           d.notice("ciągu 15 minut! To jedyny sposób aby przejść ");
           d.notice("dalej.");
       end

       when devil_stone4_fail1.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 10 minut!")
               server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone4_fail2.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 5 minut!")
               server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone4_fail.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Nie udało się, zostaniecie wylogowany!")
               d.exit_all()
               clear_server_timer('devil_stone4_update', get_server_timer_arg())
           end
       end

       when devil_stone4_update.server_timer begin
           if d.select(get_server_timer_arg()) then
               if not d.is_unique_dead("real") then
                   for i = 1, 6 do
                       if d.getf("fakedead" .. i) == 0 then
                           if d.unique_get_hp_perc("fake" .. i) < 50 then
                               d.purge_unique("fake" .. i)
                               d.setf("fakedead" .. i, 1)
                               d.notice("To nie ten kamień!");
                           end
                       end
                   end
               else
                   --d.clear_regen()
                   --d.regen_file("data/dungeon/deviltower5_regen.txt")
                   server_timer("devil_stone4_end", 5, get_server_timer_arg())
                   d.notice("Wykazałeś się doskonałym słuchem i instynktem");
                   d.notice("Zniszczyłeś prawidłowy kamień Metin! Za chwilę ")
                   d.notice("dotrzesz na 4. pietro!")
                   clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
                   clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
                   clear_server_timer('devil_stone4_fail', get_server_timer_arg())
               end
           else
               server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
           end
       end

       when devil_stone4_stop_timer.server_timer begin
           clear_server_timer('devil_stone4_update', get_server_timer_arg())
       end

       when devil_stone4_end.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.setf("level", 5)
               d.setf("stone_count", 5)
               d.notice("Dotarłeś do zamkniętej Bramy na 4. piętrze!")
               d.notice("Znajduje się tu wiele potworów, które strzegą ")
               d.notice("tajemniczych kamieni - będziesz ich potrzebował. ")
               d.notice("Bez nich nie dostaniesz się na 5. poziom Wieży. ")
               d.notice("Zdobądź Kamienie od potworów i użyj ich, aby")
               d.notice("odblokować Starożytne Pieczęci. Na wykonanie")
               d.notice("tego zadania masz tylko 20 minut - spiesz się! ")
               d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
               server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
               clear_server_timer('devil_stone4_update', get_server_timer_arg())

               -- 5ĽÓÄ~Äň¦A˛{
               d.set_regen_file("data/dungeon/deviltower5_regen.txt")

               -- 5ĽÓ«Ę¦LĄŰ¦A˛{
               d.spawn_mob(20073, 421, 452)
               d.spawn_mob(20073, 380, 460)
               d.spawn_mob(20073, 428, 414)
               d.spawn_mob(20073, 398, 392)
               d.spawn_mob(20073, 359, 426)
           end
       end
       when devil_stone5_fail1.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 15 minut!")
               server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone5_fail2.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 10 minut!")
               server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone5_fail3.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 5 minut!")
               server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone5_fail.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Nie udało się, zostaniesz wylogowany!")
               d.exit_all()
           end
       end

       --when devil_stone4.kill begin
           --d.setf("level", 5)
           --d.setf("stone_count", 4)
           --d.clear_regen()
           --d.regen_file("data/dungeon/deviltower5_regen.txt")
           --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
       --end

       when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
           local KILL_COUNT_FOR_DROP_KEY = 50
           --if is_test_server() then
               --KILL_COUNT_FOR_DROP_KEY = 1
           --end
           local n =d.getf("count") + 5
           d.setf("count", n) 
           if n == KILL_COUNT_FOR_DROP_KEY then
               -- ±Ľ¤UÂę°Í
               game.drop_item(50084, 1)
               d.setf("count", 0)
           end
       end
       when devil_stone5.take with item.vnum == 50084 begin
           npc.purge()
           item.remove()
           d.setf("stone_count", d.getf("stone_count") - 1)
           if d.getf("stone_count") <= 0 then
               d.setf("level", 6)
               d.clear_regen()
               d.regen_file("data/dungeon/deviltower6_regen.txt")

               d.notice("Wszystkie Starożytne Pieczęci zostały otwarte.")
               d.notice("Teraz dotrzesz na 5. poziom Wieży Demonów. ")
               d.notice("Zabij wszystkie potwory na 5. piętrze, jednak ")
               d.notice("uważaj Piętro to należy do Króla Demonów! ")
               d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
               clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
               clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
               clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
               clear_server_timer('devil_stone5_fail', get_server_timer_arg())
           else
               d.notice("Otworzyłeś pieczęć! Pozostało jeszcze: "..d.getf("stone_count").."!")
           end
       end

       when devil_stone6.kill begin
           -- ¶Ç°e¨ě·Ň¸t©Ň¦bŞş¦aąĎ
           -- §_«hˇA¶}ł]¤@­Ó·s·Ň¸t
           --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
           d.kill_all()
          -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
           d.check_eliminated()
           local reward_alchemist = {20074, 20075, 20076}
           d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
           d.setqf("can_refine", 1)
       end

       --------------------------------------
       -- ĄŃ¶i¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
       --------------------------------------

       when 20074.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               say_title("Zbrojmistrz Wieży Demonów ")
               say("Co?! Chcesz udać się na 6. poziom Wieży? ")
               say("Wyprawa na wyższe poziomy wymaga")
               say("naprawdę dobrego przygotowania.")
               say("Jeżeli osiągnąłeś 75. poziom mogę ")
               say("przenieść Cię na wyższe piętro.")
               wait()
               if pc.level >=75 then
               say_title("Zbrojmistrz Wieży Demonów ")
                       say("Masz odpowiedni poziom i dlatego masz spore ")
                       say("szanse na przetrwanie na wyższych piętrach.")
                       say("Mozesz wejść")
                       timer("devil_jump_7", 6)
                       return
               end
               say("Możesz przejsc dalej!")
               say("")
               say("")
               wait()
               pc.warp(590500, 110500)
               return
   end
       when 20075.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               say_title("Platnerz Wieży Demonów ")
               say("Co?! Chcesz udać się na 6. poziom Wieży? ")
               say("Wyprawa na wyższe poziomy wymaga")
               say("naprawdę dobrego przygotowania.")
               say("Jeżeli osiągnąłeś 75. poziom mogę ")
               say("przenieść Cię na wyższe piętro.")
               wait()
               if pc.level >=75 then
               say_title("Platnerz Wieży Demonów ")
                       say("Masz odpowiedni poziom i dlatego masz spore ")
                       say("szanse na przetrwanie na wyższych piętrach.")
                       say("Mozesz wejść")
                       timer("devil_jump_7", 6)
                       return
               end
               say("Możesz przejsc dalej!")
               say("")
               say("")
               wait()
               pc.warp(590500, 110500)
               return
   end
       when 20076.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               say_title("Jubiler Wieży Demonów ")
               say("Co?! Chcesz udać się na 6. poziom Wieży? ")
               say("Wyprawa na wyższe poziomy wymaga")
               say("naprawdę dobrego przygotowania.")
               say("Jeżeli osiągnąłeś 75. poziom mogę ")
               say("przenieść Cię na wyższe piętro.")
               wait()
               if pc.level >=75 then
               say_title("Jubiler Wieży Demonów ")
                       say("Masz odpowiedni poziom i dlatego masz spore ")
                       say("szanse na przetrwanie na wyższych piętrach.")
                       say("Mozesz wejść")
                       timer("devil_jump_7", 6)
                       return
               end
               say("Możesz przejsc dalej!")
               say("")
               say("")
               wait()
               pc.warp(590500, 110500)
               return
   end

  when devil_jump_7.timer begin
               d.notice("Mapa Zin-Sa-Gui otwiera drogę na następne")
               d.notice("piętro. Zniszcz kamienie Metin, aby ją odnaleźć ")
               d.clear_regen()
               d.spawn_mob(8018, 639, 658)
               d.spawn_mob(8018, 611, 637)
               d.spawn_mob(8018, 596, 674)
               d.spawn_mob(8018, 629, 670)

               d.setf("level", 7)

               d.jump_all(2048+590, 6656+638)
       end

       when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               local cont = d.getf("7_stone_kill") + 1
               d.setf("7_stone_kill", cont)

               if cont >= 4 then
                       d.setf("7_stone_kill", 0)
                       d.set_regen_file("data/dungeon/deviltower7_regen.txt")
               end     
       end

       when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               game.drop_item(30300, 1)
       end

       when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               pc.remove_item("30300", 1)

               local pct = number(1,10)

               if pct == 1 then
                       -- ±Ľ¤UŻu¦aąĎ
                       game.drop_item(30302, 1)
                       d.clear_regen()
               else
                       -- ±Ľ¤U°˛¦aąĎ
                       game.drop_item(30301, 1)

               end
       end

       when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               -- ¶Ç°e¨ě8ĽÓ
                       say_title("Informacja:")
               say("Ta mapa przeniesie Cię na 8 . poziom Wieży ")
               say("Demonów.")

               pc.remove_item("30302", 1)
           timer("devil_jump_8", 6)
               d.clear_regen()
       end

       --------------------------------------------
       -- ĄŃ¶i¤J8ĽÓ¦Ü¨ěąF9ĽÓ¤§«e
       --------------------------------------------
       when devil_jump_8.timer begin
               d.notice("Znajdź odpowiedni klucz!")
               d.notice("Potrzebujesz klucza Zin-Bong-In aby")
               d.notice("móc otworzyć pieczęć Sa-Soein i dostać ")
               d.notice("się na następne piętro Wieży.")
               d.setf("level", 8)
               d.jump_all(2048+590, 6656+403)
               d.set_regen_file("data/dungeon/deviltower8_regen.txt")
               d.spawn_mob(20366, 640, 460)
               local _count= pc.count_item(30302)-- ®ř·ŔŻu¤`ĆF¶đ
               pc.remove_item(30302,_count)

       end

       when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               local pct1 = number(1, 5)
               if pct1 == 1 then
                       local pct2 = number(1, 10)
                       if pct2 == 1 then
                               -- ±Ľ¤UŻuÂę°Í
                               game.drop_item(30304, 1)
                       else
                               -- ±Ľ¤U°˛Âę°Í
                               game.drop_item(30303, 1)
                       end
               else
                       return
               end
       end

       when 20366.take with item.vnum == 30304 begin
               -- 9ĽÓ«Ę¦L¸Ń°Ł
               npc.purge()
               item.remove()
               timer("devil_jump_9", 6)
       end

       ---------------------------------------------
       -- ĄŃ¶i¤J9ĽÓ¦Üµ˛§ô
       ---------------------------------------------
       when devil_jump_9.timer begin
               d.notice("Zabij Przywódcę Demonów! ")
               d.setf("level", 9)
               d.jump_all(2048+590, 6656+155)
               d.regen_file("data/dungeon/deviltower9_regen.txt")
       end

       when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               d.kill_all()
               notice_all(pc.get_name().." zabił Umarłego Rozpruwacza!")
               d.notice("Zostaniecie przeniesieni na 10 pietro!")
               timer("devil_end_jump", 6)
       end

       when devil_end_jump.timer begin
               d.setf("level", 10)
               d.jump_all(2048+590, 6656+403)
               d.spawn_mob(1095, 640, 460)
       end
       when 1095.kill with pc.in_dungeon() and d.getf("level") == 10 begin
               notice_all(pc.get_name().." zabił Niebieską Śmierć!")
               timer("devil_jump_10", 180)
               d.kill_all()
           d.spawn_mob(20074, 640, 460)
               d.spawn_mob(20075, 645, 460)
               d.spawn_mob(20076, 650, 460)
               d.setqf("can_refine", 3)
               d.notice("Masz 3 minuty na ulepszanie. Po tym czasie[ENTER]Zostaniesz Wylogowany")
       end
       when devil_jump_10.timer begin
               d.exit_all()
       end
end
end

 

jesli po jakims czasie to tutaj sobie ustaw ile masz min miec na zabicie Niebieskiej smierci

 timer("devil_jump_10", 180)

chyba ze sie myle.

 

teraz to na ripie loga

 

na 10 pietrze po jakim czasie cie loga chodzi mi o twojego questa

quest deviltower_zone begin
   state start begin
       when login begin
           if pc.get_map_index() == 66 then
               -- ¨Ă«D¦b1ĽÓ®É, °eŞđĄ~­±.
               -- ĽhĽĆ ˝dłň
               -- 1ĽÓ  88  577  236 737
               -- 2ĽÓ  91  343  238 504
               -- 3ĽÓ 104  107  248 269
               if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                   pc.warp((5376+532)*100, (512+596+4)*100, 65)
               end
               pc.set_warp_location(65, 5376+532, 512+596+4)
           elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
               pc.set_warp_location(65, 5376+532, 512+596+4)
           end
       end
       when deviltower_man.chat.locale.deviltower_man_chat begin
           if pc.get_level() < 40 then
               say_title("Strażnik Wieży Demonów: ")
               say(locale.deviltower_man_say_you_cant)
           else
               say_title("Strażnik Wieży Demonów: ")
               say(locale.deviltower_man_say)
               local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
               if s == 1 then
                   -- warp into!
                   pc.warp(216500,727000)
               end
           end
       end
       when devil_stone1.kill begin
           timer("devil_stone1_1", 6)
       end
       when devil_stone1_1.timer begin
               local mapto7= pc.count_item(30302)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞşŻu¤`ĆF¶đ
               pc.remove_item(30302,mapto7)

               local boxto7= pc.count_item(30300)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞş¤ŁŞľ¦WŞş˝c¤l
               pc.remove_item(30300,boxto7)

           d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
           d.regen_file("data/dungeon/deviltower2_regen.txt")
           d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
       end
       --when devil_stone2.kill begin
       --d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
       --end
       when devil_stone3.kill begin
           --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
           --d.set_exit_all_at_eliminate(6)
           --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
           --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
           d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
           d.check_eliminated()
           --d.exit_all()
       end
       function get_4floor_stone_pos()
           local positions = {
               {368, 629},
               {419, 630},
               {428, 653},
               {422, 679},
               {395, 689},
               {369, 679},
               {361, 658},
           }
           for i = 1, 6 do
               local j = number(i, 7)
               if i != j then
                   local t = positions[i];
                   positions[i] = positions[j];
                   positions[j] = t;
               end
           end
           --for i = 1, 7 do
       --      positions[i][1] = positions[i][1] * 100
       --      positions[i][2] = positions[i][2] * 100
        --   end
           return positions
       end
       when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
           d.setf("level", 4)
           -- ¦A˛{¤j¶q©ÇŞ«¤Î»słyŻuĄŰŔY©M°˛ĄŰŔY
           --d.regen_file("data/dungeon/deviltower4_regen.txt")
           local positions = deviltower_zone.get_4floor_stone_pos()
           for i = 1, 6 do
               chat(positions[i][1], positions[i][2])
               d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
           end
           chat(positions[7][1], positions[7][2])
           local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
           chat(vid)
           d.set_unique("real", vid)
           server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
           server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

           d.notice("Dotarłeś do Bramy Wyboru na 3. piętrze. Wiele");
           d.notice("kamieni Metin będzie drażnić Twoje oczy i uszy.");
           d.notice("Znajdź właściwy kamień Metin i zniszcz go w");
           d.notice("ciągu 15 minut! To jedyny sposób aby przejść ");
           d.notice("dalej.");
       end

       when devil_stone4_fail1.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 10 minut!")
               server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone4_fail2.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 5 minut!")
               server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone4_fail.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Nie udało się, zostaniecie wylogowany!")
               d.exit_all()
               clear_server_timer('devil_stone4_update', get_server_timer_arg())
           end
       end

       when devil_stone4_update.server_timer begin
           if d.select(get_server_timer_arg()) then
               if not d.is_unique_dead("real") then
                   for i = 1, 6 do
                       if d.getf("fakedead" .. i) == 0 then
                           if d.unique_get_hp_perc("fake" .. i) < 50 then
                               d.purge_unique("fake" .. i)
                               d.setf("fakedead" .. i, 1)
                               d.notice("To nie ten kamień!");
                           end
                       end
                   end
               else
                   --d.clear_regen()
                   --d.regen_file("data/dungeon/deviltower5_regen.txt")
                   server_timer("devil_stone4_end", 5, get_server_timer_arg())
                   d.notice("Wykazałeś się doskonałym słuchem i instynktem");
                   d.notice("Zniszczyłeś prawidłowy kamień Metin! Za chwilę ")
                   d.notice("dotrzesz na 4. pietro!")
                   clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
                   clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
                   clear_server_timer('devil_stone4_fail', get_server_timer_arg())
               end
           else
               server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
           end
       end

       when devil_stone4_stop_timer.server_timer begin
           clear_server_timer('devil_stone4_update', get_server_timer_arg())
       end

       when devil_stone4_end.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.setf("level", 5)
               d.setf("stone_count", 5)
               d.notice("Dotarłeś do zamkniętej Bramy na 4. piętrze!")
               d.notice("Znajduje się tu wiele potworów, które strzegą ")
               d.notice("tajemniczych kamieni - będziesz ich potrzebował. ")
               d.notice("Bez nich nie dostaniesz się na 5. poziom Wieży. ")
               d.notice("Zdobądź Kamienie od potworów i użyj ich, aby")
               d.notice("odblokować Starożytne Pieczęci. Na wykonanie")
               d.notice("tego zadania masz tylko 20 minut - spiesz się! ")
               d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
               server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
               clear_server_timer('devil_stone4_update', get_server_timer_arg())

               -- 5ĽÓÄ~Äň¦A˛{
               d.set_regen_file("data/dungeon/deviltower5_regen.txt")

               -- 5ĽÓ«Ę¦LĄŰ¦A˛{
               d.spawn_mob(20073, 421, 452)
               d.spawn_mob(20073, 380, 460)
               d.spawn_mob(20073, 428, 414)
               d.spawn_mob(20073, 398, 392)
               d.spawn_mob(20073, 359, 426)
           end
       end
       when devil_stone5_fail1.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 15 minut!")
               server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone5_fail2.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 10 minut!")
               server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone5_fail3.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Pozostało 5 minut!")
               server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
           end
       end

       when devil_stone5_fail.server_timer begin
           if d.select(get_server_timer_arg()) then
               d.notice("Nie udało się, zostaniesz wylogowany!")
               d.exit_all()
           end
       end

       --when devil_stone4.kill begin
           --d.setf("level", 5)
           --d.setf("stone_count", 4)
           --d.clear_regen()
           --d.regen_file("data/dungeon/deviltower5_regen.txt")
           --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
       --end

       when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
           local KILL_COUNT_FOR_DROP_KEY = 50
           --if is_test_server() then
               --KILL_COUNT_FOR_DROP_KEY = 1
           --end
           local n =d.getf("count") + 5
           d.setf("count", n) 
           if n == KILL_COUNT_FOR_DROP_KEY then
               -- ±Ľ¤UÂę°Í
               game.drop_item(50084, 1)
               d.setf("count", 0)
           end
       end
       when devil_stone5.take with item.vnum == 50084 begin
           npc.purge()
           item.remove()
           d.setf("stone_count", d.getf("stone_count") - 1)
           if d.getf("stone_count") <= 0 then
               d.setf("level", 6)
               d.clear_regen()
               d.regen_file("data/dungeon/deviltower6_regen.txt")

               d.notice("Wszystkie Starożytne Pieczęci zostały otwarte.")
               d.notice("Teraz dotrzesz na 5. poziom Wieży Demonów. ")
               d.notice("Zabij wszystkie potwory na 5. piętrze, jednak ")
               d.notice("uważaj Piętro to należy do Króla Demonów! ")
               d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
               clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
               clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
               clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
               clear_server_timer('devil_stone5_fail', get_server_timer_arg())
           else
               d.notice("Otworzyłeś pieczęć! Pozostało jeszcze: "..d.getf("stone_count").."!")
           end
       end

       when devil_stone6.kill begin
           -- ¶Ç°e¨ě·Ň¸t©Ň¦bŞş¦aąĎ
           -- §_«hˇA¶}ł]¤@­Ó·s·Ň¸t
           --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
           d.kill_all()
          -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
           d.check_eliminated()
           local reward_alchemist = {20074, 20075, 20076}
           d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
           d.setqf("can_refine", 1)
       end

       --------------------------------------
       -- ĄŃ¶i¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
       --------------------------------------

       when 20074.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               say_title("Zbrojmistrz Wieży Demonów ")
               say("Co?! Chcesz udać się na 6. poziom Wieży? ")
               say("Wyprawa na wyższe poziomy wymaga")
               say("naprawdę dobrego przygotowania.")
               say("Jeżeli osiągnąłeś 75. poziom mogę ")
               say("przenieść Cię na wyższe piętro.")
               wait()
               if pc.level >=75 then
               say_title("Zbrojmistrz Wieży Demonów ")
                       say("Masz odpowiedni poziom i dlatego masz spore ")
                       say("szanse na przetrwanie na wyższych piętrach.")
                       say("Mozesz wejść")
                       timer("devil_jump_7", 6)
                       return
               end
               say("Możesz przejsc dalej!")
               say("")
               say("")
               wait()
               pc.warp(590500, 110500)
               return
   end
       when 20075.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               say_title("Platnerz Wieży Demonów ")
               say("Co?! Chcesz udać się na 6. poziom Wieży? ")
               say("Wyprawa na wyższe poziomy wymaga")
               say("naprawdę dobrego przygotowania.")
               say("Jeżeli osiągnąłeś 75. poziom mogę ")
               say("przenieść Cię na wyższe piętro.")
               wait()
               if pc.level >=75 then
               say_title("Platnerz Wieży Demonów ")
                       say("Masz odpowiedni poziom i dlatego masz spore ")
                       say("szanse na przetrwanie na wyższych piętrach.")
                       say("Mozesz wejść")
                       timer("devil_jump_7", 6)
                       return
               end
               say("Możesz przejsc dalej!")
               say("")
               say("")
               wait()
               pc.warp(590500, 110500)
               return
   end
       when 20076.chat."Wyższe piętro" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               say_title("Jubiler Wieży Demonów ")
               say("Co?! Chcesz udać się na 6. poziom Wieży? ")
               say("Wyprawa na wyższe poziomy wymaga")
               say("naprawdę dobrego przygotowania.")
               say("Jeżeli osiągnąłeś 75. poziom mogę ")
               say("przenieść Cię na wyższe piętro.")
               wait()
               if pc.level >=75 then
               say_title("Jubiler Wieży Demonów ")
                       say("Masz odpowiedni poziom i dlatego masz spore ")
                       say("szanse na przetrwanie na wyższych piętrach.")
                       say("Mozesz wejść")
                       timer("devil_jump_7", 6)
                       return
               end
               say("Możesz przejsc dalej!")
               say("")
               say("")
               wait()
               pc.warp(590500, 110500)
               return
   end

  when devil_jump_7.timer begin
               d.notice("Mapa Zin-Sa-Gui otwiera drogę na następne")
               d.notice("piętro. Zniszcz kamienie Metin, aby ją odnaleźć ")
               d.clear_regen()
               d.spawn_mob(8018, 639, 658)
               d.spawn_mob(8018, 611, 637)
               d.spawn_mob(8018, 596, 674)
               d.spawn_mob(8018, 629, 670)

               d.setf("level", 7)

               d.jump_all(2048+590, 6656+638)
       end

       when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               local cont = d.getf("7_stone_kill") + 1
               d.setf("7_stone_kill", cont)

               if cont >= 4 then
                       d.setf("7_stone_kill", 0)
                       d.set_regen_file("data/dungeon/deviltower7_regen.txt")
               end     
       end

       when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               game.drop_item(30300, 1)
       end

       when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               pc.remove_item("30300", 1)

               local pct = number(1,10)

               if pct == 1 then
                       -- ±Ľ¤UŻu¦aąĎ
                       game.drop_item(30302, 1)
                       d.clear_regen()
               else
                       -- ±Ľ¤U°˛¦aąĎ
                       game.drop_item(30301, 1)

               end
       end

       when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               -- ¶Ç°e¨ě8ĽÓ
                       say_title("Informacja:")
               say("Ta mapa przeniesie Cię na 8 . poziom Wieży ")
               say("Demonów.")

               pc.remove_item("30302", 1)
           timer("devil_jump_8", 6)
               d.clear_regen()
       end

       --------------------------------------------
       -- ĄŃ¶i¤J8ĽÓ¦Ü¨ěąF9ĽÓ¤§«e
       --------------------------------------------
       when devil_jump_8.timer begin
               d.notice("Znajdź odpowiedni klucz!")
               d.notice("Potrzebujesz klucza Zin-Bong-In aby")
               d.notice("móc otworzyć pieczęć Sa-Soein i dostać ")
               d.notice("się na następne piętro Wieży.")
               d.setf("level", 8)
               d.jump_all(2048+590, 6656+403)
               d.set_regen_file("data/dungeon/deviltower8_regen.txt")
               d.spawn_mob(20366, 640, 460)
               local _count= pc.count_item(30302)-- ®ř·ŔŻu¤`ĆF¶đ
               pc.remove_item(30302,_count)

       end

       when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               local pct1 = number(1, 5)
               if pct1 == 1 then
                       local pct2 = number(1, 10)
                       if pct2 == 1 then
                               -- ±Ľ¤UŻuÂę°Í
                               game.drop_item(30304, 1)
                       else
                               -- ±Ľ¤U°˛Âę°Í
                               game.drop_item(30303, 1)
                       end
               else
                       return
               end
       end

       when 20366.take with item.vnum == 30304 begin
               -- 9ĽÓ«Ę¦L¸Ń°Ł
               npc.purge()
               item.remove()
               timer("devil_jump_9", 6)
       end

       ---------------------------------------------
       -- ĄŃ¶i¤J9ĽÓ¦Üµ˛§ô
       ---------------------------------------------
       when devil_jump_9.timer begin
               d.notice("Zabij Przywódcę Demonów! ")
               d.setf("level", 9)
               d.jump_all(2048+590, 6656+155)
               d.regen_file("data/dungeon/deviltower9_regen.txt")
       end

       when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
               d.kill_all()
               notice_all(pc.get_name().." zabił Umarłego Rozpruwacza!")
               d.notice("Zostaniecie przeniesieni na 10 pietro!")
               timer("devil_end_jump", 6)
       end

       when devil_end_jump.timer begin
               d.setf("level", 10)
               d.jump_all(2048+590, 6656+403)
               d.spawn_mob(1095, 640, 460)
       end
       when 1095.kill with pc.in_dungeon() and d.getf("level") == 10 begin
               notice_all(pc.get_name().." zabił Niebieską Śmierć!")
               timer("devil_jump_10", 180)
               d.kill_all()
           d.spawn_mob(20074, 640, 460)
               d.spawn_mob(20075, 645, 460)
               d.spawn_mob(20076, 650, 460)
               d.setqf("can_refine", 3)
               d.notice("Masz 3 minuty na ulepszanie. Po tym czasie[ENTER]Zostaniesz Wylogowany")
       end
       when devil_jump_10.timer begin
               d.exit_all()
       end
end
end

 

jesli po jakims czasie to tutaj sobie ustaw ile masz min miec na zabicie Niebieskiej smierci

 timer("devil_jump_10", 180)

chyba ze sie myle.

bez YT

Opublikowano

Mógłbym prosić o questa takiego:

 

Gdy gracz się zaloguje (tylko GM) to dostaje item (30204) i przy kolejnym zalogowaniu gdy tego itemu nie ma znowu go dostaje , a gdy go ma to nic się nie dzieje

 

Potrafi ktoś??

Opublikowano

quest dla_gm begin
state start begin
	when login with pc.is_gm() begin
		if pc.count_item(30204) == 0 then
			pc.give_item2(30204, 1)
		end
		if pc.count_item(30204) >= 2 then
			pc.removeitem(30204)
		end
	end
end
end

 

upek czekam na + ;P

QmxvbmR5blhfX19ldW5lX19fNTI0X19fTlVMTF9fXzNfX18xMDBfX19ub25lLnBuZ19fXzhfX19ub25lX19fMDAwMDAwX19fc29sbw==.png
Opublikowano

Proszę o naprawę skryptu coś mi nie działa. gdy wczytuję questa na serwer wyskakuje mi błąd:

syntax error : [string "informacja"]:36: `)' expected (to close `(' at line 35) near `say'
quest1.quest:67:Abort (core dumped)" 

 

Kod wygląda tak:

quest Fragmenty_Klejnotu begin
               state start begin
                               when login or levelup with pc.level >= 43 begin
                                               set_state(informacja)
                               end
               end
               state informacja begin --20011
                               when letter begin
                                               local v = find_npc_by_vnum(20011)
                                               if v != 0 then
                                                               target.vid("__TARGET__", v, "Uriel ")
                                               end
                                               send_letter("Fragmenty Klejnotu1")
                               end
                               when button or informacja begin
                                       say_title("Fragmenty Klejnotu1")
                                       say("")
                                                                               say("Uriel potrzebuje pomocy")
                                       say("Udaj się do Uriela i dowiedz się o co chodzi.")
                                                                               say("")
                               end
                               when 20011.chat."Fragmenty Klejnotu" begin
                                               target.delete("__TARGET__")
                                               say_title("Uriel: ")
  say("")
                                                                                               say("Witaj! ")
                                                                                               say("Nie wiem czy wiesz ale ostatnio byłem w terenia na badaniach. ")
                                                                                               say("Odwiedziłem kilka ciekawych miejsc i musiałem")
                                                                                               say("zmieżyć sie z wieloma kamieniami metin. Nie pomagały mi także Potwory ")
                                                                                               say("i ich liderzy. Ale wracając do tematu... ")
                                                                                               say("")
                                                                                               say("Wiele razy musialem uciekac i gdzies pogubilem fragmenty ")
                                                                                               say("klejnotów miałem ich 15 a gdy wróciłem z wyprawy zostało mi 5 ")
                                                                                               say("Te Klejnoty są mi niezmiernie potrzene do moich badań, ")
                                                                                               say("więc proszę cię bardzo poszukaj ich. ")
         say("")
                                                                                               say_reward("Akceptować misję?")
                                                                                                                               local s = select("Pomogę ci!", "Nie, nie mam czasu...")
                                                                                                                                               if s == 2 then
                                                                                                                                                               say_title("Uriel:")
                 say("")
                                                                                                                                                               say("Przykro, że mi nie chcesz pomóc..")
                                                                                                                                                               say("Misja została anulowana!")
                 say("")
                                                                                                                                                               say_reward("Żegnam!")
                                                                                                                                                               set_state(__PODDANIE__)
                                                                                                                                               end
                                                                                                                                               if s == 1 then
                                                                                                                                                               say_title("Uriel:")
                 say("")
                                                                                                                                                               say("Miejsca w których powinneś ich szukać to:")
                                                                                                                                                               say("Lochy pająków, Dolina Orków, Wierza Demonów, Pustynia, ")
                                                                                                                                                               say("Czerwony las i piekło. Nie zapominaj także o tym iż musiałem ")
                                                                                                                                                               say("")
                                                                                                                                                               say("uciekać przed kilkoma liderami potworów i zniszczyłem ")
                                                                                                                                                               say("wiele metinów. Więc powodzenia obyś znalazł je szybko! ")
                                                                                                                                                               say("Obiecuję, że nagroda będzie solidna."
                 say("")
                                                                                                                                                               say_item("Fragment klejnotu", 30210, "")
                                                                                                                                                               say_reward("Zdobądź je !")
                                                                                                                                                               set_state(__DALEJ__)
                                                                                                                                               end
                               end
               end
               state __DALEJ__ begin
                               when letter begin
                                               send_letter("Fragmenty Klejnotów")
                               end
                               when button or info begin
                               say_title("Miejsca i potwory w których szukać fragmentów:")
 say("")
                               say("Czarne Orki, ")
                               say("Loch Pająków (v1 i v2), ")
                               say("Ezotery, ")
                               say("Wierza demonów, ")
                               say("BOSS'y, ")
                               say("Pustynni zawadiacy, ")
                               say("Metiny 60-70lvl, ")
                               say("Drzewa z czerwonego lasu, ")
                               say("Piekło. ")
 say("")
                               end
                               when 636.kill begin
                                               local s = number(100, 200)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30210, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA1__)
                               when 2061.kill begin
                                               local s = number(50, 100)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30211, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA2__)
                               when 2133.kill begin
                                               local s = number(30, 100)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30212, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA3__)
                               when 707.kill begin
                                               local s = number(50, 100)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30213, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA4__)
                               when 1033.kill begin
                                               local s = number(30, 115)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30214, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA5__)
                               when 1901.kill begin
                                               local s = number(5, 8)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30215, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                       set_state(__NAGRODA6__)
                               when 2108.kill begin
                                               local s = number(20, 40)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30216, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA7__)
                               when 8014.kill begin
                                               local s = number(5, 15)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30217, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA8__)
                               when 2303.kill begin
                                               local s = number(50, 100)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30218, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA9__)
                               when 2204.kill begin
                                               local s = number(20, 60)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30219, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                               set_state(__NAGRODA10__)
                                               end
                               end
               end
               state __NAGRODA1__ __NAGRODA2__ __NAGRODA3__ __NAGRODA4__ __NAGRODA5__
               __NAGRODA10__ __NAGRODA9__ __NAGRODA8__ __NAGRODA7__ __NAGRODA6__ begin
                               when letter begin
                                               local v = find_npc_by_vnum(20011)
                                               if v != 0 then
                                                               target.vid("__TARGET__", v, "Uriel ")
                                               end
                                               send_letter("Fragmenty Klejnotu")
                               end
                               when button or info begin
                                       say_title("Fragmenty Klejnotu")
                                       say("")
                                                                               say("Zdobyłeś już wszystkikie fragmenty układanki,")
                                       say("udaj się do Uriela i przekaż mu je jak najszybciej. ")
                                                                               say("")
                               end
                               when 20011.chat."Mam wszystkie fragmenty!" begin
                                               target.delete("__TARGET__")
                                               say_title("Uriel:")
         say("")
                                                                                               say("Bardzo Ci dziękuje!")
                                                                                               say("Dzięki tobie mogę kontynuować swoje badania!")
         say("")
                                                                                               pc.remove_item(30210, 1)
                                                                                               pc.remove_item(30211, 1)
                                                                                               pc.remove_item(30212, 1)
                                                                                               pc.remove_item(30213, 1)
                                                                                               pc.remove_item(30214, 1)
                                                                                               pc.remove_item(30215, 1)
                                                                                               pc.remove_item(30216, 1)
                                                                                               pc.remove_item(30217, 1)
                                                                                               pc.remove_item(30218, 1)
                                                                                               pc.remove_item(30219, 1)
                                                                                               wait()
                                                                                               say_title("Uriel:")
         say("")
                                                                                               say("Tak, to mój kryształ!")
                                                                                               say("W zamian za twoją pomoc otrzymasz nagrodę!")
                                                                                               say("Życz mi szczęścia! Oto twoja nagroda!")
         say("")
                                                                                               say_reward("Otrzymano: Kamienie Duchowe!")
                                                                                               say_reward("Otrzymano: Dłonie Krytyka!")
                                                                                               say_reward("Otrzymano: Pierścienie doświadczenia!")
                                                                                               say_reward("Otrzymano: Bryłki złota!")
                                                                                               say_reward("Otrzymano: 50 000 000 Doświadczenia!")
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(71044, 20)
                                                                                               pc.give_item2(70005, 1)
                                                                                               pc.give_item2(70005, 1)
                                                                                               pc.give_item2(80008, 1)
                                                                                               pc.give_item2(80008, 1)
                                                                                               pc.give_exp2(50000000)
                                                                                               set_state(__ZROBIONE__)
                               end
               end
               state __PODDANIE__ begin
               end
               state __ZROBIONE__ begin
               end
end

 

Quest polaga na tym:

Uriel każe nam znaleźć 10 fragmentów klejnotu ID 30210-30219 które dropią z potworów: BO, Mistyki, dt, drzewa, Bossy, zawadiacy potwory z V1 i v2 i w piekle. Id są podane w kodzie. chciałbym żeby z każdego rodzaju potworów dropił jeden fragment

Quest ma być dostępny od poziomu 43.

Po zebraniu wszystkich części uriel miał dać nam 15x kamień duchowy 20 dłoni krytyka 2x bryłkę złota, 2x pierścienie doświadczenia + 50kk expa. Jeszcze raz proszę o pomoc i z góry dziękuję ;)

Opublikowano

@UP sprawdz czy teraz dziala

 

quest Fragmenty_Klejnotu begin
               state start begin
                               when login or levelup with pc.level >= 43 begin
                                               set_state(informacja)
                               end
               end
               state informacja begin --20011
                               when letter begin
                                               local v = find_npc_by_vnum(20011)
                                               if v != 0 then
                                                               target.vid("__TARGET__", v, "Uriel ")
                                               end
                                               send_letter("Fragmenty Klejnotu1")
                               end
                               when button or informacja begin
                                       say_title("Fragmenty Klejnotu1")
                                       say("")
                                                                               say("Uriel potrzebuje pomocy")
                                       say("Udaj się do Uriela i dowiedz się o co chodzi.")
                                                                               say("")
                               end
                               when 20011.chat."Fragmenty Klejnotu" begin
                                               target.delete("__TARGET__")
                                               say_title("Uriel: ")
say("")
                                                                                               say("Witaj! ")
                                                                                               say("Nie wiem czy wiesz ale ostatnio byłem w terenia na badaniach. ")
                                                                                               say("Odwiedziłem kilka ciekawych miejsc i musiałem")
                                                                                               say("zmieżyć sie z wieloma kamieniami metin. Nie pomagały mi także Potwory ")
                                                                                               say("i ich liderzy. Ale wracając do tematu... ")
                                                                                               say("")
                                                                                               say("Wiele razy musialem uciekac i gdzies pogubilem fragmenty ")
                                                                                               say("klejnotów miałem ich 15 a gdy wróciłem z wyprawy zostało mi 5 ")
                                                                                               say("Te Klejnoty są mi niezmiernie potrzene do moich badań, ")
                                                                                               say("więc proszę cię bardzo poszukaj ich. ")
		say("")
                                                                                               say_reward("Akceptować misję?")
                                                                                                                               local s = select("Pomogę ci!", "Nie, nie mam czasu...")
                                                                                                                                               if s == 2 then
                                                                                                                                                               say_title("Uriel:")
                 say("")
                                                                                                                                                               say("Przykro, że mi nie chcesz pomóc..")
                                                                                                                                                               say("Misja została anulowana!")
                 say("")
                                                                                                                                                               say_reward("Żegnam!")
                                                                                                                                                               set_state(__PODDANIE__)
                                                                                                                                               end
                                                                                                                                               if s == 1 then
                                                                                                                                                               say_title("Uriel:")
                 say("")
                                                                                                                                                               say("Miejsca w których powinneś ich szukać to:")
                                                                                                                                                               say("Lochy pająków, Dolina Orków, Wierza Demonów, Pustynia, ")
                                                                                                                                                               say("Czerwony las i piekło. Nie zapominaj także o tym iż musiałem ")
                                                                                                                                                               say("")
                                                                                                                                                               say("uciekać przed kilkoma liderami potworów i zniszczyłem ")
                                                                                                                                                               say("wiele metinów. Więc powodzenia obyś znalazł je szybko! ")
                                                                                                                                                               say("Obiecuję, że nagroda będzie solidna."
                 say("")
                                                                                                                                                               say_item("Fragment klejnotu", 30210, "")
                                                                                                                                                               say_reward("Zdobądź je !")
                                                                                                                                                               set_state(__DALEJ__)
                                                                                                                                               end
                               end
               end
               state __DALEJ__ begin
                               when letter begin
                                               send_letter("Fragmenty Klejnotów")
                               end
							end
                               when button or info begin
                               say_title("Miejsca i potwory w których szukać fragmentów:")
 say("")
                               say("Czarne Orki, ")
                               say("Loch Pająków (v1 i v2), ")
                               say("Ezotery, ")
                               say("Wierza demonów, ")
                               say("BOSS'y, ")
                               say("Pustynni zawadiacy, ")
                               say("Metiny 60-70lvl, ")
                               say("Drzewa z czerwonego lasu, ")
                               say("Piekło. ")
 say("")
                               end
                               when 636.kill begin
                                               local s = number(100, 200)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30210, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA1__)
                               when 2061.kill begin
                                               local s = number(50, 100)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30211, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA2__)
                               when 2133.kill begin
                                               local s = number(30, 100)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30212, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA3__)
                               when 707.kill begin
                                               local s = number(50, 100)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30213, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA4__)
                               when 1033.kill begin
                                               local s = number(30, 115)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30214, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA5__)
                               when 1901.kill begin
                                               local s = number(5, 8)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30215, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                       set_state(__NAGRODA6__)
                               when 2108.kill begin
                                               local s = number(20, 40)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30216, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA7__)
                               when 8014.kill begin
                                               local s = number(5, 15)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30217, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA8__)
                               when 2303.kill begin
                                               local s = number(50, 100)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30218, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                                               set_state(__NAGRODA9__)
                               when 2204.kill begin
                                               local s = number(20, 60)
                                               if s == 1 and pc.getqf("Fragmenty_Klejnotu") == 0 then
                                                               pc.setqf("Fragmenty_Klejnotu", 1)
                                                               pc.give_item2(30219, 1)
                                                               say_reward("Zdobyłeś jeden fragment klejnotu!")
                                                               set_state(__NAGRODA10__)
                                               end
                               end
               end
               state __NAGRODA1__ __NAGRODA2__ __NAGRODA3__ __NAGRODA4__ __NAGRODA5__
               __NAGRODA10__ __NAGRODA9__ __NAGRODA8__ __NAGRODA7__ __NAGRODA6__ begin
                               when letter begin
                                               local v = find_npc_by_vnum(20011)
                                               if v != 0 then
                                                               target.vid("__TARGET__", v, "Uriel ")
                                               end
                                               send_letter("Fragmenty Klejnotu")
                               end
                               when button or info begin
                                       say_title("Fragmenty Klejnotu")
                                       say("")
                                                                               say("Zdobyłeś już wszystkikie fragmenty układanki,")
                                       say("udaj się do Uriela i przekaż mu je jak najszybciej. ")
                                                                               say("")
                               end
                               when 20011.chat."Mam wszystkie fragmenty!" begin
                                               target.delete("__TARGET__")
                                               say_title("Uriel:")
         say("")
                                                                                               say("Bardzo Ci dziękuje!")
                                                                                               say("Dzięki tobie mogę kontynuować swoje badania!")
         say("")
                                                                                               pc.remove_item(30210, 1)
                                                                                               pc.remove_item(30211, 1)
                                                                                               pc.remove_item(30212, 1)
                                                                                               pc.remove_item(30213, 1)
                                                                                               pc.remove_item(30214, 1)
                                                                                               pc.remove_item(30215, 1)
                                                                                               pc.remove_item(30216, 1)
                                                                                               pc.remove_item(30217, 1)
                                                                                               pc.remove_item(30218, 1)
                                                                                               pc.remove_item(30219, 1)
                                                                                               wait()
                                                                                               say_title("Uriel:")
         say("")
                                                                                               say("Tak, to mój kryształ!")
                                                                                               say("W zamian za twoją pomoc otrzymasz nagrodę!")
                                                                                               say("Życz mi szczęścia! Oto twoja nagroda!")
         say("")
                                                                                               say_reward("Otrzymano: Kamienie Duchowe!")
                                                                                               say_reward("Otrzymano: Dłonie Krytyka!")
                                                                                               say_reward("Otrzymano: Pierścienie doświadczenia!")
                                                                                               say_reward("Otrzymano: Bryłki złota!")
                                                                                               say_reward("Otrzymano: 50 000 000 Doświadczenia!")
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(50513, 1)
                                                                                               pc.give_item2(71044, 20)
                                                                                               pc.give_item2(70005, 1)
                                                                                               pc.give_item2(70005, 1)
                                                                                               pc.give_item2(80008, 1)
                                                                                               pc.give_item2(80008, 1)
                                                                                               pc.give_exp2(50000000)
                                                                                               set_state(__ZROBIONE__)
                               end
               end
               state __PODDANIE__ begin
               end
               state __ZROBIONE__ begin
               end
end

dCrwk2h.gif

Opublikowano

@up nadal nie działa:

syntax error : [string "informacja"]:36: `)' expected (to close `(' at line 35) near `say'
quest1.quest:63:Abort (core dumped)
\

teraz taki błąd...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...