Register for your free account! | Forgot your password?

You last visited: Today at 07:11

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Quest]Dynamisches Teleporter-Menü

Discussion on [Quest]Dynamisches Teleporter-Menü within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
musicinstructor's Avatar
 
elite*gold: 190
Join Date: Nov 2008
Posts: 1,670
Received Thanks: 3,365
Wink [Quest]Dynamisches Teleporter-Menü

Hi,

ich habe mal die Teleporter-Quest verbessert, sodass man Orte nur noch in die warp-Tabelle in der get_warp_set-Funktion eintragen muss. Dabei muss man den gewünschen Anzeigenamen, eine Kondition (= Bedingung), unter der die Map der AUflistung hinzugefügt werden soll sowie die Koordinaten für jedes Reich.

Die Quest ist als Datei im Anhang, ihr könnt sie euch aber hier auch anschauen:
Code:
----------------------------------------------------
-- New Teleport-Lib
-- (c) 2011 by  2011
----------------------------------------------------
quest map_warp begin
	state start begin
		when 9012.chat."Möchtest du reisen?" begin
			say_title("Teleporter:")
			say("Dies ist eine faszinierende Gegend. Aber")
			say("passiert hier denn auch mal etwas")
			say("Außergewöhnliches? Eher wohl nicht. In anderen")
			say("Teilen des Landes sieht es mitunter ganz anders.")
			say("aus! Es gibt daher sicher einen intressanten")
			say("Ort, an den ich dich teleportieren könnte. Da")
			say("jedoch die Kräfte des Bösen wieder stärker")
			say("geworden sind, wurden Raum und Zeit ins Chaos")
			say("gestürzt. Dadurch kann es passieren, dass deine")
			say("Rückkehr nicht immer augenblicklich funktioniert.")
			say("Möchtest du dennoch teleportiert werden?")
			
			local main_set = select("Ja", "Nein")
			if main_set == 2 then
				return
			end
			
			if pc.get_level() <= 10 then
				say_title("Teleporter:")
				say("Hm… Mit deinem derzeitigen Level bist du noch")
				say("zu schwach für die Reise durch Zeit und Raum.")
				say("Komm wieder, wenn du höher als Level 10 bist.")
				return
			end
			
			local cost = math.floor(pc.get_level() / 5) * 1000
			
			if cost < 1000 then
				cost = 1000
			end
			
			wx, wy = map_warp.select_warp_location(0, color256(255, 230, 186).."Teleporter:"..color256(196, 196, 196).."[ENTER]Wohin möchtest du teleportiert werden?[ENTER]"..color256(255, 200, 200)..string.format("Das kostet dich %d Yang.", cost)..color256(196, 196, 196), pc.get_map_index(), pc.get_level())
			
			if wx == 0 and wy == 0 then
				return
			end
			
			if pc.gold < cost then
				say_title("Teleporter:")
				say("Du hast nicht genug Geld.")
				say("Ich würde dich auch kostenlos teleportieren,")
				say("aber ich habe eine große Familie. Um sie zu")
				say("ernähren, muss ich Geld verdienen.")
				say_reward(string.format("Es kostet dich %d Yang.", cost))
				return
			end
			
			pc.changegold(-cost)
			
			say_title("Teleporter:")
			say("Achtung, ich teleportiere dich jetzt. Du wirst")
			say("an einem gefährlichen Ort landen, also pass auf")
			say("dich auf. Viel Glück!")
			wait()
			pc.warp(wx, wy)
		end
		
		function select_warp_location(site, text, map_index, level)
			say(text)
			local more_areas = (table.getn(map_warp.get_warp_set(map_index, level, 1 + (site+1)*6, 5)) > 0)
			local warp_set = {}
			
			if more_areas == true and site != 0 then
				warp_set = map_warp.get_warp_set(map_index, level, 1 + site*6 + 1, 4)
			elseif more_areas == true and site == 0 then
				warp_set = map_warp.get_warp_set(map_index, level, 1 + site*6, 5)
			else
				warp_set = map_warp.get_warp_set(map_index, level, 1 + site*6, 5)
			end
			local warp_string = {}
			local i = 1 
			while i <= 1 + 5 do
				if warp_set[i] == nil then
					break
				end
				table.insert(warp_string, warp_set[i].name)
				i = i + 1
			end
			if site != 0 then
				table.insert(warp_string, "Zurück")
			end
			if more_areas == true then
				table.insert(warp_string, "Andere Gebiete")
			else
				table.insert(warp_string, "Abbrechen")
			end
			
			local s = select_table(warp_string)
			
			if s == table.getn(warp_string) and more_areas == false then
				return 0, 0
			elseif s == table.getn(warp_string) and more_areas == true then
				return map_warp.select_warp_location(site + 1, text, map_index, level)	
			elseif s == table.getn(warp_string) - 1 and site != 0 then
				return map_warp.select_warp_location(site - 1, text, map_index, level)
			else
				return warp_set[s].x, warp_set[s].y
			end
		end
		
		function get_warp_set(map_index, level, start, length)
			local empire = pc.get_empire()
			local warp = {
				-- map1
				{
					namestring = map_warp.get_empire_namestring(1, empire),
					con = map_warp.is_village_map_index(map_index) == false,
					pos = {{469300, 964200}, {55700, 157900}, {969600, 278400}},
				},
				-- map2
				{
					namestring = map_warp.get_empire_namestring(2, empire),
					con = map_warp.is_village_map_index(map_index) == false,
					pos = {{353100, 882900}, {145500, 240000}, {863900, 246000}},
				},
				-- guild_map
				{
					namestring = map_warp.get_guild_map_name(),
					con = map_warp.is_village_map_index(map_index) == true,
					pos = {{128500, 1000}, {179500, 1000}, {271800, 13000}},
				},
				-- 64 map_n_threeway
				{
					namestring = "Tal von Seungryong",
					con = map_warp.is_village_map_index(map_index) == true,
					pos = {{402100, 673900}, {270400, 739900}, {321300, 808000}},
				},
				-- 63 metin2_map_n_desert_01
				{
					namestring = "Yongbi-Wüste",
					con = map_warp.is_village_map_index(map_index) == true,
					pos = {{217800, 627200}, {221900, 502700}, {344000, 502500}},
				},
				-- 61 map_n_snowm_01
				{
					namestring = "Berg Sohan",
					con = map_warp.is_village_map_index(map_index) == true,
					pos = {{434200, 290600}, {375200, 174900}, {491800, 173600}},
				},
				--empire_castle
				{
					namestring = map_warp.get_empire_castle_name(),
					con = map_warp.is_village_map_index(map_index) == true and game.get_event_flag("empire_castle") == 1,
					pos = {{975200, 133000}, {977200, 185000}, {923900, 183600}},
				} ,
				--Drachengottamulett
				{
					namestring = "Drachengottamulett benutzen",
					con = map_warp.is_village_map_index(map_index) == true,
					pos = {{283600, 808300}, {283600, 808300}, {283600, 808300}},
				} ,
				-- 12 metin2_map_sungzi_milgyo_pass_01
				{
					namestring = "Zombiemap",
					con = (map_warp.is_village_map_index(map_index) == true and level >= 60),
					pos = {{1825400, 1821500}, {1825400, 1821500}, {1825400, 1821500}},
				},
				-- devil_tower
				{
					namestring = "Dämonenturm",
					con = (map_warp.is_village_map_index(map_index) == true and level >= 60),
					pos = {{590500, 110500}, {590500, 110500}, {590500, 110500}},
				},
				-- 62 metin2_map_n_flame_01
				{
					namestring = "Feuerland",
					con = (map_warp.is_village_map_index(map_index) == true and level >= 60),
					pos = {{599400, 756300}, {597800, 622200}, {730700, 689800}},
				},
				-- 67 metin2_map_trent
				{
					namestring = "Lungsam (Geisterwald)",
					con = (map_warp.is_village_map_index(map_index) == true and level >= 60),
					pos = {{288700, 5700}, {288700, 5700}, {288700, 5700}},
				},
				-- 68 metin2_map_trent02
				{
					namestring = "Lungsam (Roter Wald)",
					con = (map_warp.is_village_map_index(map_index) == true and level >= 60),
					pos = {{1119900, 70800}, {1119900, 70800}, {1119900, 70800}},
				},
				-- 8 metin2_map_dragon_timeattack_03
				{
					namestring = "Wüstenpfad",
					con = (map_warp.is_village_map_index(map_index) == true and level >= 60),
					pos = {{1008600, 1011700}, {1008600, 1011700}, {1008600, 1011700}},
				},
			}
			local res = {}
			local i = start
			while i <= start + length do
				if warp[i] == nil then
					break
				end
				if warp[i].con == true then
					table.insert(res, {name = warp[i].namestring, x = warp[i].pos[empire][1], y = warp[i].pos[empire][2]})
				end
				i = i + 1
			end
			return res
		end
		
		function is_village_map_index(index)
			return (index == 1 or index == 3 or index == 21 or index == 23 or index == 41 or index == 43)
		end
		function get_empire_namestring(village, empire)
			local names = {
				{"Yongan", "Joan", "Pyungmoo"},
				{"Jayang", "Bokjung", "Bakra"},
			}
			return names[village][empire]
		end
		function get_empire_castle_name()
			local castle_names = {"Burg Milaard", "Burg Listhmos", "Burg Dendera"}
			return castle_names[pc.get_empire()]
		end
		function get_guild_map_name()
			local guild_map_names = {"Jungrang (Gildenzone)", "Waryong (Gildenzone)", "Imha (Gildenzone)"}
			return guild_map_names[pc.get_empire()]
		end
	end
end
Die Funktionen könnte man auch sehr einfach für einen Warpring benutzen.
Attached Files
File Type: rar map_warp.rar (2.4 KB, 149 views)
musicinstructor is offline  
Thanks
24 Users
Old 01/12/2012, 21:20   #2
 
Pänguä's Avatar
 
elite*gold: 289
Join Date: Jan 2012
Posts: 155
Received Thanks: 1,281
nice thx fürs pub machen
Pänguä is offline  
Old 01/12/2012, 21:22   #3
 
.Nagato's Avatar
 
elite*gold: 1
Join Date: Mar 2011
Posts: 1,473
Received Thanks: 1,382
Was muss ich dazu noch sagen?
Scheiße man, du bist so geil.. ich will dich hier und jetzt zum Mann nehmen!
#nanananice
.Nagato is offline  
Old 01/12/2012, 21:24   #4
 
Fear *_*'s Avatar
 
elite*gold: 2
Join Date: Mar 2009
Posts: 1,427
Received Thanks: 584
nice nice danke!
Fear *_* is offline  
Old 01/12/2012, 22:31   #5
 
.IanCaVence's Avatar
 
elite*gold: 0
Join Date: Jan 2012
Posts: 93
Received Thanks: 33
echt nice
.IanCaVence is offline  
Old 01/12/2012, 22:37   #6
 
ToBii™'s Avatar
 
elite*gold: 0
Join Date: May 2011
Posts: 385
Received Thanks: 260
Ich versteht nicht ganz was die Quest bringen soll , kann mir das einer erklären bitte ? Danke
ToBii™ is offline  
Old 01/12/2012, 22:57   #7
 
musicinstructor's Avatar
 
elite*gold: 190
Join Date: Nov 2008
Posts: 1,670
Received Thanks: 3,365
Quote:
Originally Posted by ToBii™ View Post
Ich versteht nicht ganz was die Quest bringen soll , kann mir das einer erklären bitte ? Danke
sie ist komfortabler zu bearbeiten und man kann theoretisch unendlich mal im menü vor und zurück klicken.
musicinstructor is offline  
Thanks
1 User
Old 01/12/2012, 23:00   #8
 
ToBii™'s Avatar
 
elite*gold: 0
Join Date: May 2011
Posts: 385
Received Thanks: 260
ok ty^^
ToBii™ is offline  
Old 01/13/2012, 12:03   #9
 
elite*gold: 0
Join Date: Aug 2009
Posts: 962
Received Thanks: 97
Muss man den index hinschreiben oder kann man auch -- metin2_map_trent ???
lautlosertot is offline  
Old 01/13/2012, 12:24   #10
 
musicinstructor's Avatar
 
elite*gold: 190
Join Date: Nov 2008
Posts: 1,670
Received Thanks: 3,365
Quote:
Originally Posted by lautlosertot View Post
Muss man den index hinschreiben oder kann man auch -- metin2_map_trent ???
das ist nur zur info, die zeile kannst du auch ganz weglassen, wenn du willst.
musicinstructor is offline  
Old 01/13/2012, 14:20   #11
 
elite*gold: 0
Join Date: Nov 2011
Posts: 588
Received Thanks: 127
Sehr schöner und gut laufender Release!

Best Regards
Zynex! is offline  
Old 02/10/2012, 12:49   #12
 
[ShiizoPhreN]™'s Avatar
 
elite*gold: 40
Join Date: May 2010
Posts: 413
Received Thanks: 519
Hi..

@Music darf ich mal fragen wo es definiert wird auf welchen Mapindex man geportet wird ich habe eine map hinzugefügt allerdings wird mir die nicht im menü angezeigt

MfG

#Edit: okay nun weiß ich bescheid ich sah nichts weil ich unter dem angefordertem Level lag xD
[ShiizoPhreN]™ is offline  
Old 03/01/2012, 20:21   #13
 
Gl0bal's Avatar
 
elite*gold: 8
Join Date: Oct 2010
Posts: 564
Received Thanks: 906
...

Ehm beim ausführen der Make.py der der 2011er files kommt:
Code:
QUEST : map_warp
STATE : start
WHEN  : 9012.chat ("Möchtest du reisen?")
FUNCTION select_warp_location(site,text,map_index,level)
FUNCTION get_warp_set(map_index,level,start,length)
FUNCTION is_village_map_index(index)
FUNCTION get_empire_namestring(village,empire)
FUNCTION get_empire_castle_name()
FUNCTION get_guild_map_name()
Calls undeclared function! :
color256
Abort trap (core dumped)
Error occured on compile map_warp.quest
ich hab nichts verändert
Gl0bal is offline  
Old 03/01/2012, 20:24   #14
 
musicinstructor's Avatar
 
elite*gold: 190
Join Date: Nov 2008
Posts: 1,670
Received Thanks: 3,365
Quote:
Originally Posted by Striker1.6 View Post
Ehm beim ausführen der Make.py der der 2011er files kommt:
Code:
QUEST : map_warp
STATE : start
WHEN  : 9012.chat ("Möchtest du reisen?")
FUNCTION select_warp_location(site,text,map_index,level)
FUNCTION get_warp_set(map_index,level,start,length)
FUNCTION is_village_map_index(index)
FUNCTION get_empire_namestring(village,empire)
FUNCTION get_empire_castle_name()
FUNCTION get_guild_map_name()
Calls undeclared function! :
color256
Abort trap (core dumped)
Error occured on compile map_warp.quest
ich hab nichts verändert
eigentlich sollte die quest trotzdem kompiliert werden, aber wenn nicht, kannst du color256 zur quest_functions-Datei hinzufügen.
musicinstructor is offline  
Old 10/28/2012, 17:25   #15
 
[ShiizoPhreN]™'s Avatar
 
elite*gold: 40
Join Date: May 2010
Posts: 413
Received Thanks: 519
Ich hätte mla eine frage und zwar wie definiere ich eine neue funktion für die gildenzonen

für gildenzonen-1 und gildenzonen-2

mit function get_guild_map_name_2()

funktioniert es nciht xD

MfG
[ShiizoPhreN]™ is offline  
Reply

Tags
hinzufügen, how to, map_warp, teleporter, tutorial


Similar Threads Similar Threads
Teleporter Quest
01/23/2011 - Metin2 Private Server - 0 Replies
Hallo Ich suche jemanden der meine Teleporter Quest bearbeiten könnte mfg Don
Teleporter-Quest nicht verfügbar und Seelenstein-Quest verbugt
01/03/2011 - Metin2 Private Server - 4 Replies
Heyho. Habe letztens in FileZilla gesehen, dass ich garkeine Teleporter-Quest habe und das die Seelenstein Quest verbugt ist. Und eben hab ich noch germerkt, dass es auch keine Lager-Quest gibt... xD Deswegen wollte ich in diesem Thread fragen ob mir jmd die Quests vllt noch unverändert hochladen kann und mir den Download-Link hier oder per Mail schreibt... Teleporter-Quest = map_warp.quest Seelenstein-Quest = training_grandmaster_skill.quest Lager-Quest = warehouse.quest MfG :)
Teleporter Quest
10/18/2010 - Metin2 Private Server - 0 Replies
Kann jemand die teleporter quest von computerkrank schicken?? Da wo die neuen maps drauf sind. Thx
Teleporter Quest
12/18/2009 - Metin2 Private Server - 1 Replies
Hallo Com, Ok hab was gefunden nun suche ich noch Lagerverwalter und Stadtwächter Übersetzung wäre cool wenn das jemand mir geben kann.... mfg Dennis



All times are GMT +1. The time now is 07:17.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.