Skocz do zawartości

Problem z zadaniem pierścienia teleportacji - nie reaguje

Opublikowano

ring_warp.quest, pliki martysama 5.8

--> Quest sie wczytuje.

70058    pierscien_tp    Pier�cie� Teleportacji    3    10    0    1    41344    8192    0        1000    1000    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    -1    -1    -1    0    0    0           

 

To jego item.porto w bazie domyslnie ma type 18 i subtype 10, ja zmienilem type na 3 i nie pomoglo. Zastanawiam sie czy ktoś moglby to rozczytac 😄

Potrafilby ktoś rozczytac moze co zmienic w itemproto, bo po kliknieciu na niego, nic sie nie dzieje.  Nizej zostawiam caly plik.

 

quest ring_warp begin
    state start begin
        when 70058.use begin
            local empire = pc.get_empire()

            local max_use = item.get_value(0)
            local n = item.get_socket (0)
            if n >= max_use then
                say (gameforge.ring_warp._010_say)
                return
            end

            local t = item.get_socket(1)
            if t > get_global_time() then
                say (string.format(gameforge.ring_warp._020_say, (t - get_global_time()) / 60 ))
                return
            end
            say(string.format(gameforge.ring_warp._030_say, max_use -n))
            local sub_set = 0

            local town1={
                    gameforge.functions._100_say,
                    gameforge.functions._110_say,
                    gameforge.functions._120_say,
                }

            local town2={
                    gameforge.functions._130_say,
                    gameforge.functions._140_say,
                    gameforge.functions._150_say,
                }
            sub_set = select(town1[empire], town2[empire], locale.map_name[64], locale.map_name[63], locale.map_name[61], locale.map_name[62], gameforge.locale.cancel)
            if sub_set == 7 then
                return
            end

            local warp = {
                { -- empire town -1

                    { 474300 , 954800 },
                    { 63800 , 166400 },
                    { 959900 , 269200 },
                },
                { -- empire town -2
                    { 353100 , 882900},
                    { 145500 , 240000 },
                    { 863900 , 246000 },

                },
                -- 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 },
                },
                -- 62 metin2_map_n_flame_01
                {
                    { 599400, 756300 },
                    { 597800, 622200 },
                    { 730700, 689800 },
                },
            }

            if not pc.warp(warp[sub_set][empire][1], warp[sub_set][empire][2]) then
                return
            end

            item.set_socket(1, get_global_time() + item.get_value(1))
            if n == max_use - 1 then
                item.remove()
            else
                item.set_socket(0, n + 1)
            end
        end --when
     end -- end_of_state
end -- end_of_quest
 

Rozwiązane przez wojciech74

Przejdź do rozwiązania

Featured Replies

Opublikowano

typ 18 musi być jak przedmiot ma działać z questem 

Opublikowano
  • Autor
7 minut temu, Sasori napisał(a):

typ 18 musi być jak przedmiot ma działać z questem 

wlasnie problem z tym ze nie dziala ;/

Opublikowano

podaj anydesca 

Opublikowano
  • Autor
17 minut temu, Sasori napisał(a):

podaj anydesca 

napisalem pw

siema

Opublikowano
  • Autor

Ktoś coś?

Opublikowano
26 minut temu, eksyyy napisał(a):

Ktoś coś?

Jeżeli chcesz zeby przedmiot był questowy to dajesz type na 18 i subtype na 0.

Potem dodajesz quest na serwer. Kolejno w questlist dodajesz sciezke do questa. Kolejno wylaczasz serwer. Kompilujesz quest i wlaczasz serwer.

Dodatkowo mozesz sobie w gen_settings odpalic test server, wtedy gdy np bedziesz mial jakis blad w quescie to Ci wypluje na chacie w grze mniej wiecej gdzie lezy blad. Pamietaj ze po kazdej edycji gen_settings musisz przeladowac configi zeby all sie nadpisalo w kanalach. Oczywiscie na wylaczonym serwerze. A no i nie zapomnij ze po edycji item_proto musisz skompilowac item_proto poprzez Mysql2Proto i wrzucic pliki do locale, spakowac i wrzucic do pack

Edytowane przez Kamil506
nie wiem

Opublikowano
  • Autor
7 minut temu, Kamil506 napisał(a):

Jeżeli chcesz zeby przedmiot był questowy to dajesz type na 18 i subtype na 0.

Potem dodajesz quest na serwer. Kolejno w questlist dodajesz sciezke do questa. Kolejno wylaczasz serwer. Kompilujesz quest i wlaczasz serwer.

Dodatkowo mozesz sobie w gen_settings odpalic test server, wtedy gdy np bedziesz mial jakis blad w quescie to Ci wypluje na chacie w grze mniej wiecej gdzie lezy blad. Pamietaj ze po kazdej edycji gen_settings musisz przeladowac configi zeby all sie nadpisalo w kanalach. Oczywiscie na wylaczonym serwerze. A no i nie zapomnij ze po edycji item_proto musisz skompilowac item_proto poprzez Mysql2Proto i wrzucic pliki do locale, spakowac i wrzucic do pack

gdzie dokladnie znajde gen settings?

 

 

Opublikowano
Teraz, eksyyy napisał(a):

gdzie dokladnie znajde gen settings?

 

 

w main folderze

Kolejno w tym pliku będziesz miał linijke 

#("TEST_SERVER: %d", (True))

Jeżeli masz na początku # znaczy że jest wyłączony test serwer, jeżeli chcesz wlączyć to usuwasz #

Kolejno musisz wygenerować nowe configi po edycji tego pliku. W panelu gdzie odpalasz serwer szukasz Generate(gen) zapewne bedzie to 666 jezeli uzywasz martysamy. Po czym odpalasz serwer. Pamietaj ze test serwer to np tez takie cos jak prawa GM na kazdej postaci. Nie musisz dodawac GM w navi, na test serwerze kazda postac ma prawa GM.

Opublikowano
  • Autor
1 minutę temu, Kamil506 napisał(a):

w main folderze

Kolejno w tym pliku będziesz miał linijke 

#("TEST_SERVER: %d", (True))

Jeżeli masz na początku # znaczy że jest wyłączony test serwer, jeżeli chcesz wlączyć to usuwasz #

Kolejno musisz wygenerować nowe configi po edycji tego pliku. W panelu gdzie odpalasz serwer szukasz Generate(gen) zapewne bedzie to 666 jezeli uzywasz martysamy. Po czym odpalasz serwer. Pamietaj ze test serwer to np tez takie cos jak prawa GM na kazdej postaci. Nie musisz dodawac GM w navi, na test serwerze kazda postac ma prawa GM.

aha w main, w plikach gry nie klienta haha ja myslalem o kliencie pierw XD

Opublikowano
  • Autor

Dziekuje za informacje:)

Opublikowano
  • Autor
10 minut temu, eksyyy napisał(a):

gdzie dokladnie znajde gen settings?

 

 

image.png.bfbd20fd008a1653f30f967b4950bf9d.png

 

Dalej nie moge kliknąc w to :CC

Opublikowano
6 minut temu, eksyyy napisał(a):

image.png.bfbd20fd008a1653f30f967b4950bf9d.png

 

Dalej nie moge kliknąc w to :CC

To widocznie nie masz wgranego questa. Odsyłam Cię do poradników paszki na YT. Np zł wgrać questa. Zamiast pytać o podstawowe rzeczy na które już były udzielane odpowiedzi tysiące razy, oraz są dokładne poradniki na YT co pokolei zrobić to po prostu usiądź i przestudiuj wszystkie jego filmiki i potem wróć z pytaniami 

Edytowane przez Kamil506

Opublikowano
  • Autor
3 minuty temu, Kamil506 napisał(a):

To widocznie nie masz wgranego questa. Odsyłam Cię do poradników paszki na YT. Np zł wgrać questa. Zamiast pytać o podstawowe rzeczy na które już były udzielane odpowiedzi tysiące razy, oraz są dokładne poradniki na YT co pokolei zrobić to po prostu usiądź i przestudiuj wszystkie jego filmiki i potem wróć z pytaniami 

quest, jest wgrany, wpisany w quest.list nawet widze w konosli ze go czyta.

Opublikowano
4 minuty temu, eksyyy napisał(a):

quest, jest wgrany, wpisany w quest.list nawet widze w konosli ze go czyta.

Sprawdź syssery kanału na którym jesteś. Może tam dowiesz się czegoś więcej. Na forum niestety wyczerpały się już szklane kule 

Opublikowano
  • Autor
6 minut temu, Kamil506 napisał(a):

Sprawdź syssery kanału na którym jesteś. Może tam dowiesz się czegoś więcej. Na forum niestety wyczerpały się już szklane kule 

Sysser, czysty,  nic o quescie

Opublikowano
2 minuty temu, eksyyy napisał(a):

Sysser, czysty,  nic o quescie

No to albo złe quest wgrany. Albo złe quest napisany. 

Opublikowano
  • Autor
1 minutę temu, Kamil506 napisał(a):

No to albo złe quest wgrany. Albo złe quest napisany. 

posiadasz moze takiego questa?

 

Opublikowano
9 minut temu, eksyyy napisał(a):

posiadasz moze takiego questa?

 

Nope

  • Sevence zmienił(a) tytuł na Problem z zadaniem pierścienia teleportacji - nie reaguje
Opublikowano
  • Rozwiązanie

image.png.7d0e6ce3abccdd480298e3cdb19a7ba6.png

quest tpring begin
	state start begin
		
		function zone(index,value)
			
			bolgeler = {
				-- [index]     = { mapindex, "mapname", minlv, maxlv, warpx, warpy, altmenu, altmenu2},
				[1]     = { 1, "Wioski", 1, 130, 469300, 964200, 1, 6},
				
				-- [2]     = { 103, "Lochy Bossa (75-105)", 75, 130, 34200, 60300, 0, 0},
				[2]     = { 64, "Dolina", 25, 99, 1079400, 1089900, 0, 0},
				[3]     = { 63, "Pustynia Yongbi", 25, 99, 296700, 547300, 21, 24},
				[4]     = { 61, "Góra Sohan", 40, 99, 436400, 215600, 25, 28},
				[5]     = { 65, "Swiatynia", 40, 99, 553600, 143600, 29, 32},
				[6]     = { 66, "Wieza Diabla", 40, 99, 590500, 110500, 0, 0},
				[7]     = { 104, "Lochy Pajaków", 30, 99, 92300, 525500, 7, 12},
				[8]     = { 62, "Doyyumhwan", 55, 99, 602000, 687400, 33, 35},
				-- [10]     = { 69, "Dolina Wezy (70-105)", 70, 130, 1073500, 775200, 0, 0},
				[9]     = { 70, "Kraina Gigantów", 60, 99, 856000, 729500, 36, 38},
				[10]     = { 67, "Las Duchów", 60, 99, 288700, 5700, 0, 0},
				[11]     = { 68, "Czerwony Las (65-99)", 65, 99, 1120100, 70500, 39, 43},
				[12]     = { 72, "Jaskinia Wygnania", 1, 120, 10280000, 1144600, 15, 16},
				[13]     = { 210, "Zaklety Las (85-99)", 85, 99, 816700, 1505000, 0, 0},
				--[13]     = { 301, "Smoczy Plomien (90-105)", 90, 120, 1104600, 1785900, 44, 47},
				--[14]     = { 302, "Przepasc Gautama (90-105)", 90, 120, 1226300, 1681100, 48, 50},
				--[15]     = { 304, "Góry Blyskawic (90-105)", 90, 120, 1134900, 1654100, 51, 53},
				--[16]     = { 303, "Zatoka Jadeitu (90-105)", 90, 120, 1087800, 1649800, 54, 56},
				-- [18]     = { 209, "Swiatynia Ochao (105-120)", 105, 130, 853800, 1416400, 0, 0},
				--[19]     = { 363, "Zaklete Bagna (120-130)", 120, 130, 5555500, 5555600, 0, 0},
				--[18]     = { 228, "Wspólny Region", 1, 130, 12393100, 12391600, 0, 0},
				
			}
			if value == 99 then
				return tonumber(table.getn(bolgeler))
			end
			return bolgeler[index][value]
		end
		
		function altmenu(index, value)
	
			altbolgeler = {
				-- [index]     = { mapindex, "mapname", minlv, maxlv, warpx, warpy},
				[1]     = { 1, "Czerwone Miasto 1", 1, 130, 469300, 964200},
				[2]     = { 3, "Czerwone Miasto 2", 1, 130, 360800, 877600},
				[3]     = { 21, "Zólte Miasto 1", 1, 130, 55700, 157900},
				[4]     = { 23, "Zólte Miasto 2", 1, 130, 138500, 234900},
				[5]     = { 41, "Niebieskie Miasto 1", 1, 130, 969600, 278400},
				[6]     = { 43, "Niebieskie Miasto 2", 1, 130, 873100, 242600},
				[7]     = { 104, "Pajecze Lochy, Poziom 1 (Poczatek)", 30, 130, 59800, 497300},
				[8]     = { 104, "Pajecze Lochy, Poziom 1 (Koniec)", 30, 130, 92300, 525500},
				[9]     = { 71, "Pajecze Lochy, Poziom 2 (Poczatek)", 30, 130, 704000, 463300},
				[10]    = { 71, "Pajecze Lochy, Poziom 2 (Koniec)", 30, 130, 704100, 522500},
				[11]    = { 217, "Pajecze Lochy, Poziom 3 (Poczatek)", 30, 130, 97800, 571200},
				[12]    = { 217, "Pajecze Lochy, Poziom 3 (Koniec)", 30, 130, 69000, 610900},
				[13]    = { 68, "Czerwony Las (Poczatek)", 1, 130, 1120100, 70500},
				[14]    = { 68, "Czerwony Las (Koniec)", 1, 130, 1119700, 7700},
				[15]    = { 72, "Jaskinia Wygnania (Wejscie)", 1, 120, 1028000, 1144700},
				[16]    = { 73, "Jaskinia Wygnania (Poziom 1, 75+)", 75, 120, 9900, 1208500},
				[17]    = { 64, "Srodek", 1, 130, 1079700, 1089800},
				[18]    = { 64, "Obszar Doswiadczenia 1", 1, 130, 1108100, 1086500},
				[19]    = { 64, "Obszar Doswiadczenia 2", 1, 130, 1075900, 1113500},
				[20]    = { 64, "Obszar Doswiadczenia 3", 1, 130, 1034300, 1051100},
				[21]    = { 63, "Srodek", 25, 130, 296700, 547300},
				[22]    = { 63, "Obszar Doswiadczenia 1", 25, 130, 260400, 570300},
				[23]    = { 63, "Obszar Doswiadczenia 2", 25, 130, 333800, 587700},
				[24]    = { 63, "Obszar Doswiadczenia 3", 25, 130, 257300, 517900},
				[25]    = { 61, "Srodek", 40, 130, 436400, 215600},
				[26]    = { 61, "Obszar Doswiadczenia 1", 40, 130, 499700, 235700},
				[27]    = { 61, "Obszar Doswiadczenia 2", 40, 130, 498000, 281200},
				[28]    = { 61, "Obszar Doswiadczenia 3", 40, 130, 434900, 191700},
				[29]    = { 65, "Wejscie", 40, 130, 553600, 143600},
				[30]    = { 65, "Obszar Doswiadczenia 1", 40, 130, 553800, 65100},
				[31]    = { 65, "Obszar Doswiadczenia 2", 40, 130, 629600, 65100},
				[32]    = { 65, "Obszar Doswiadczenia 3", 40, 130, 628100, 131200},
				[33]    = { 62, "Obszar Doswiadczenia 1", 55, 130, 602000, 687400},
				[34]    = { 62, "Obszar Doswiadczenia 2", 55, 130, 652100, 658200},
				[35]    = { 62, "Obszar Doswiadczenia 3", 55, 130, 730300, 723700},
				[36]    = { 70, "Poczatek", 60, 130, 829900, 763300},
				[37]    = { 70, "Obszar Doswiadczenia 2", 60, 130, 855700, 741700},
				[38]    = { 70, "Obszar Doswiadczenia 3", 60, 130, 844700, 744400},
				-- Dodano wybrane tlumaczenia
			}

			if value == 99 then
				return tonumber(table.getn(altbolgeler))
			end
			return altbolgeler[index][value]
		end

		when login begin
			local kac = tonumber(tpring.zone(1,99))
			local idx = pc.get_map_index()
			for i=1,kac do
				if idx == tpring.zone(i,1) then
					if pc.get_level() < tpring.zone(i,3) or pc.get_level() > tpring.zone(i,4)then
						syschat("Twój poziom nie jest odpowiedni, aby wejsc tutaj..")
						warp_to_village()
					end
				end
			end
		end
		
		when login begin
			local level = pc.get_level()
			local index = pc.get_map_index()
			if index == 72 or  index == 73 then
				if level < 75 then
					syschat("Twój poziom nie jest odpowiedni, aby wejsc tutaj.")
					warp_to_village()
				end
			elseif index == 301 or index == 302 or index == 303 or index == 304  then
				if level < 90 then
					syschat("Twój poziom nie jest odpowiedni, aby wejsc tutaj.")
					warp_to_village()
				end
			
			end
		end
		
		when 70058.use begin
			say_title("Pierscien Teleportacji : ")
			say("")
			local tablo = {}
			local kac = tonumber(tpring.zone(1,99))
			for i=1,kac do
				table.insert(tablo,tpring.zone(i,2))
			end
			table.insert(tablo,"Anuluj ")
			local yenitoplam = table.getn(tablo)
			local mapler = select_table(tablo)
			if mapler == yenitoplam then
				return
			end
			local m_index = tpring.zone(mapler,1)
			local m_isim = tpring.zone(mapler,2)
			local m_lv = tpring.zone(mapler,3)
			local m_lv2 = tpring.zone(mapler,4)
			local m_x = tpring.zone(mapler,5)
			local m_y = tpring.zone(mapler,6)
			local m_alt = tpring.zone(mapler,7)
			local m_alt2 = tpring.zone(mapler,8)
			if m_alt > 0 then
				local tablo_alt = {}
				local kac2 = tonumber(tpring.altmenu(1,99))
				for i=1,kac2 do
					if i >= m_alt and i <= m_alt2 then
						table.insert(tablo_alt,tpring.altmenu(i,2))
					end
				end
				table.insert(tablo_alt,"Anuluj ")
				local yenitoplam2 = table.getn(tablo_alt)
				local mapler2 = select_table(tablo_alt)
				if mapler2 == yenitoplam2 then
					return
				end
				local secim
				if mapler2 == 1 then
					secim = m_alt
				else
					secim = m_alt + mapler2 - 1
				end
				local m_isim2 = tpring.altmenu(secim,2)
				local m_x2 = tpring.altmenu(secim,5)
				local m_y2 = tpring.altmenu(secim,6)
				say_title("Iþýnlanma Yüzüðü :")
				say("")
				if m_lv > pc.get_level() or m_lv2 < pc.get_level() then
					say("Twój poziom nie jest odpowiedni, aby wejsc tutaj.")
					return
				end
				a = 1
				while( a < 5 ) do
					if pc.can_warp() then
						a = a+10
					else
						say_title("Pierscien Teleportacji :")
						say("")
						say("Gdy aktywne sa inne ekrany lub po dokonaniu handlu ")
						say("nie mozesz sie teleportowac przez 10 sekund.")
						wait()
					end
				end
				say(m_isim2.." Teleportujesz sie do wybranego regionu.")
				wait()
				pc.warp(m_x2,m_y2)
			else
				say_title("Pierscien Teleportacji :")
				say("")
				if m_lv > pc.get_level() or m_lv2 < pc.get_level() then
					say("Twój poziom nie jest odpowiedni, aby wejsc tutaj.")
					return
				end
				a = 1
				while( a < 5 ) do
					if pc.can_warp() then
						a = a+10
					else
						say_title("Pierscien Teleportacji :")
						say("")
						say("Gdy aktywne sa inne ekrany lub po dokonaniu handlu ")
						say("nie mozesz sie teleportowac przez 10 sekund.")
						wait()
					end
				end
				say(m_isim.." Teleportujesz sie do wybranego regionu.")
				wait()
				pc.warp(m_x,m_y)
			end
		end		
	end
end

 

  • Poly zablokował(a) ten temat
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.