Fethi Polat 1
Fethi Polat
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Scarlet 1
Scarlet
xranzei 1
xranzei
Hikaye Ekle

pc.get_map_index() sorunu

  • Konuyu başlatan Konuyu başlatan gardbrom
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 10
  • Görüntüleme Görüntüleme 2K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Merhaba arkadaşlar. Serverimde quest leri düzeltiyordum. bi quest de "if pc.get_map_index() == 72" bu kod sürgündeysen demesi lazım sürgünde olmasına ragmen çalışmıyor. acaba 72 yi tanımlıyamıyor mu? Kısaca quest çalışmıyor. Sürgünde olmasına rağmen sürgünde olman gerekiyor diyor.

Else yi sildim yani sürgünde olman gerekir kodlarını sildim. Bu sefer 2.katta olduğunu belirleyemiyor. Yardımlarınızı bekliyorum.
Quest;
Kod:
quest ejderha_tilsimi begin	state start begin
		when 30180.use begin
			if pc.get_map_index() == 72 and not pc.is_gm() then
				say_title("Ejderha Tanrı Tılsımı ")
				say("")
				say("Eğer gitmek istediğin yer Sürgün Mağarası'nın")
				say("2. katında bulunuyorsa, öncelikle 2. kata")
				say("geçmen gerekiyor. Orada tılsımı kullandığın")
				say("zaman farklı seçenekler çıkacak.")
				say("")
				say_reward("Birini seç.")
				local s = select("Karanlık Tapınak","Sura İskeletleri","Mağaranın sonu","Vazgeç ")
				if s == 1 then
					say_title("Ejderha Tanrı Tılsımı ")
					say("")
					say("Karanlık Tapınak yakınlarına ışınlanıyorsun...")
					say("")
					wait()
					pc.warp(82900,1286200)
				elseif s == 2 then
					say_title("Ejderha Tanrı Tılsımı ")
					say("Birini seç.")
					local a = select("Sura İskeleti-1","Sura İskeleti-2","Sura İskeleti-3","Sura İskeleti-4","Vazgeç ")
					if a == 1 then
						say_title("Ejderha Tanrı Tılsımı ")
						say("")
						say("Sura İskeleti-1 yakınlarına ışınlanıyorsun...")
						say("")
						wait()
						pc.warp(20800,1290300)
					elseif a == 2 then
						say_title("Ejderha Tanrı Tılsımı ")
						say("")
						say("Sura İskeleti-2 yakınlarına ışınlanıyorsun...")
						say("")
						wait()
						pc.warp(11800,1334300)
					elseif a == 3 then
						say_title("Ejderha Tanrı Tılsımı ")
						say("")
						say("Sura İskeleti-3 yakınlarına ışınlanıyorsun...")
						say("")
						wait()
						pc.warp(48300,1340700)
					elseif a == 4 then
						say_title("Ejderha Tanrı Tılsımı ")
						say("")
						say("Sura İskeleti-4 yakınlarına ışınlanıyorsun...")
						say("")
						wait()
						pc.warp(42000,1268200)
					elseif a == 5 then
						return
					end
				elseif s == 3 then
					say_title("Ejderha Tanrı Tılsımı ")
					say("")
					say("Mağaranın 1. katının sonuna ışınlanıyorsun...")
					say("")
					wait()
					pc.warp(131900,1343700)
				elseif s == 4 then
					return
				end
			elseif pc.get_map_index() == 73 and not pc.is_gm() then
				say_title("Ejderha Tanrı Tılsımı ")
				say("")
				say("Sürgün Mağarası 2. kattasın. Gidebileceğin")
				say("yerler aşağıda. Eğer gitmek istediğin yer")
				say("1. katta ise önce 1. kata dönmelisin.")
				say("")
				say_reward("Birini seç.")
				local ss = select("Komutanlar","Sura Ruhu","Sura İskeleti-5","Vazgeç ")
				if ss == 1 then
					say_title("Ejderha Tanrı Tılsımı ")
					say("Birini seç.")
					local aa = select("Komutan","General (1)","General (2)","General (3)","Vazgeç ")
					if aa == 1 then
						say_title("Ejderha Tanrı Tılsımı ")
						say("")
						say("Komutanın yakınlarına ışınlanıyorsun...")
						say("")
						wait()
						pc.warp(195800,1220600)
					elseif aa == 2 then
						say_title("Ejderha Tanrı Tılsımı ")
						say("")
						say("General (1) yakınlarına ışınlanıyorsun...")
						say("")
						wait()
						pc.warp(279600,1260800)
					elseif aa == 3 then
						say_title("Ejderha Tanrı Tılsımı ")
						say("")
						say("General (2) yakınlarına ışınlanıyorsun...")
						say("")
						wait()
						pc.warp(191100,1233400)
					elseif aa == 4 then
						say_title("Ejderha Tanrı Tılsımı ")
						say("")
						say("General (3) yakınlarına ışınlanıyorsun...")
						say("")
						wait()
						pc.warp(229700,1317600)
					elseif aa == 5 then
						return
					end
				elseif ss == 2 then
					say_title("Ejderha Tanrı Tılsımı ")
					say("")
					say("Sura Ruhu yakınlarına ışınlanıyorsun...")
					say("")
					wait()
					pc.warp(180100,1220400)
				elseif ss == 3 then
					say_title("Ejderha Tanrı Tılsımı ")
					say("")
					say("Sura İskeleti-5 yakınlarına ışınlanıyorsun...")
					say("")
					wait()
					pc.warp(251600,1296000)
				elseif ss == 4 then
					return
				end
			elseif pc.is_gm() then
				local aaa = select("Mağaranın sonu","Sura Ruhu","pc.setf","Vazgeç ")
				if aaa == 1 then
					say_title("Ejderha Tanrı Tılsımı ")
					say("")
					say("Mağaranın 1. katının sonuna ışınlanıyorsun...")
					wait()
					pc.warp(131900,1343700)
				elseif aaa == 2 then
					say_title("Ejderha Tanrı Tılsımı ")
					say("")
					say("Sura Ruhu yakınlarına ışınlanıyorsun...")
					wait()
					pc.warp(180100,1220400)
				elseif aaa == 3 then
					say_title("pc.setf")
					say("")
					say("Quest adını gir.")
					say("")
				local q1 = input()
				say_title("pc.setf")
				say("")
				say("Komutu gir.")
				say("")
				local komut = input()
				say_title("pc.setf")
				say("")
				say("Sayıyı gir.")
				local sayi = input()
					pc.setf(q1,komut,sayi)
				elseif aaa == 4 then
					return
				end
			else
				say_title("Ejderha Tanrı Tılsımı ")
				say("")
				say("Tılsımı kullanmak için Sürgün Mağarası ")
				say("içerisinde olman gerekiyor.")
				say("")
			end
		end
	end
end

Edit: Kod düzenleme.
 
Son düzenleme:

Hocam dediğim questi eklersen map index kodunu bulmuş olursun, yolladığım quest ile map index kodunu oradaki sayıyla değiştir quest çalışacaktır. Ayrıca gm olmama şartı koymuşsun, GM chardan farklı bir hesaptan denediğine emin misin questi?
Dostum gerçek muhteşemsin meğer index kodu sürgünün 72 değilde 33 felanmış değiştirdim ve çalıştı. Bu sefer başka sorun çıktı. Itemi ışınlandıktan sonra 1 kullanımlık yapmak istiyorum. ışnlandıktan sonra item silincek bunun için warp komutlarının altlarına pc remove komutu kullandım ve çalışıyo fakat ticaretten hemen sonra kullanınca ışınlamıyor 10sn beklememi söylüyor ve item yok oluyor. Bunun için engel yapabilirmiyiz bi kod biliyormusun mesela wait()=11 yapsak 11sn bekler mi? ilk yardımın için +rep verdim.
 
Son düzenleme:
Dostum gerçek muhteşemsin meğer index kodu sürgünün 72 değilde 33 felanmış değiştirdim ve çalıştı. Bu sefer başka sorun çıktı. Itemi ışınlandıktan sonra 1 kullanımlık yapmak istiyorum. ışnlandıktan sonra item silincek bunun için warp komutlarının altlarına pc remove komutu kullandım ve çalışıyo fakat ticaretten hemen sonra kullanınca ışınlamıyor 10sn beklememi söylüyor ve item yok oluyor. Bunun için engel yapabilirmiyiz bi kod biliyormusun mesela wait()=11 yapsak 11sn bekler mi? ilk yardımın için +rep verdim.
Maalesef bu şekilde bir şey yok fakat remove kodunu pc warp kodundan önce kullanırsan oyuncular ışınlanmasa bile item kaybolur. Zaten herkes biliyordur ticaretten sonra 10 saniye ışınlanamayacağını, bir de duyuru geçersen sıkıntı yaratacağını sanmıyorum.
 
Maalesef bu şekilde bir şey yok fakat remove kodunu pc warp kodundan önce kullanırsan oyuncular ışınlanmasa bile item kaybolur. Zaten herkes biliyordur ticaretten sonra 10 saniye ışınlanamayacağını, bir de duyuru geçersen sıkıntı yaratacağını sanmıyorum.
şöyle bişey yapsak
Kod:
if pc.get_map_index()==33 // 33=sürgün map kodu
     pc . remove_item ( "30180" , 1 )
 
Son düzenleme:
şöyle bişey yapsak
Kod:
if pc.get_map_index()==33 // 33=sürgün map kodu
     pc . remove_item ( "30180" , 1 )
Zaten en başta pc.get_map_index kodu var, aynı şartı bir kere daha sunmak bir iş görmeyecektir.
Ben olayı yanlış anlamışım, şu şekilde yapabilirsin.


pc.remove_item(xx)
timer("tickontrol, 10")
pc.warp(..)
when tickontrol.timer begin
pc.give_item2("xx",1)
end
Peki bu kod ne işe yarayacak?
Bu kod oyuncu ışınlanırken bir timer çalıştıracak.
Timer kodları ışınlanınca deaktif oluyorlar diye biliyorum.
Işınlanınca timer çalışmayacaktır fakat ışınlanmazsa 10 saniye sonra item geri verilecektir.
Şunu da unutmamalısın. pc.warp tan sonra wait() veya say penceresi koyarsan kişi 10 saniye bekledikten sonra ışınlanırsa hem itemi alır hem de ışınlanır.Onun için ilk önce pc.remove_item, sonra timer kodu ve pc.warp kodu eklemelisin.
Sıralamayı yanlış yapma, bug oluşmaması için.
 
Son düzenleme:
Zaten en başta pc.get_map_index kodu var, aynı şartı bir kere daha sunmak bir iş görmeyecektir.
Ben olayı yanlış anlamışım, şu şekilde yapabilirsin.



end
Peki bu kod ne işe yarayacak?
Bu kod oyuncu ışınlanırken bir timer çalıştıracak.
Timer kodları ışınlanınca deaktif oluyorlar diye biliyorum.
Işınlanınca timer çalışmayacaktır fakat ışınlanmazsa 10 saniye sonra item geri verilecektir.
Şunu da unutmamalısın. pc.warp tan sonra wait() veya say penceresi koyarsan kişi 10 saniye bekledikten sonra ışınlanırsa hem itemi alır hem de ışınlanır.Onun için ilk önce pc.remove_item, sonra timer kodu ve pc.warp kodu eklemelisin.
Sıralamayı yanlış yapma, bug oluşmaması için.
İşte kusursuzluk budur :) Gerçekten muhteşemsin sonunda sorunsuz ekledim, üstümden yük kalkmış gibi hissediyorum. +rep veremedim tekrar vermemi engellemişler ama vericem. Çok teşekkür ederim :)
Konu kilitlenebilir, Sorun halloldu.
 
Son düzenleme:

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst