Quest auf einer Map verbieten

09/01/2015 01:13 zazadi#1
Hallo,
ich hätte mal ne frage bezüglich einer quest.
Unzwar ist es möglich eine quest auf einer bestimmten map zu verbieten?
d.h ich will, dass die warpring.quest auf mapindex 23 sich nicht öffnen lässt und
wenn möglich unten im chat steht: Du kannst den Warpring auf dieser Map nicht nutzen.

Ist sowas möglich?
wenn ja, könnte mir jemand den teil dafür villt schreiben, sodass ich den nurnoch in meiner quest einfügen muss?

Lg
09/01/2015 01:19 Yiv#2
Code:
if pc.get_map_index() == 23 then
    syschat("Du kannst den Warpring auf dieser Map nicht nutzen.")
    return
end
Das einfach direkt unter dem when...begin-Block einfügen :)

MfG
09/01/2015 02:12 zazadi#3
Funktioniert nicht ...
09/01/2015 02:29 Yiv#4
Dann hast du das wohl an der falschen Stelle eingefügt.
Poste doch bitte mal deine ganze Quest, inkl. dem neu Eingefügtem.

MfG
09/01/2015 11:48 MaxChri#5
Quote:
Originally Posted by Core ツ View Post
Funktioniert nicht ...
Bevor der Befehl pc.warp() kommt, fügst du die Abfrage ein. Der eingefügte Code muss
genau auf der selben Ebene sein, wie der zuvor genannte Befehl.

Quote:
if pc.get_map_index() == 23 then
syschat("Du kannst den Warpring auf dieser Map nicht nutzen.")
return
end
pc.warp()
09/01/2015 11:55 rollback#6
Quote:
Originally Posted by MaxChri View Post
Bevor der Befehl pc.warp() kommt, fügst du die Abfrage ein. Der eingefügte Code muss
genau auf der selben Ebene sein, wie der zuvor genannte Befehl.
oder einfach direkt unter dem trigger ... wieso sollte man denn überhaupt eine map auswählen dürfen?
09/01/2015 12:18 zazadi#7
Hier ist mal der obere abschnitt der quest, damit es nicht so lang wird :D

PHP Code:
quest warpring begin
    state start begin
        when login begin
            cmdchat
("NeuerIndex Warpring "..q.getcurrentquestindex())
        
end 
        when button begin
        
if pc.get_map_index() == 358 then
    syschat
("Du kannst den Warpring auf dieser Map nicht nutzen.")
    return
end
say_title
("Warpring"
say("Wohin möchtest du Teleportiert werden?")
local empire pc.get_empire() 
local selectmap select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen")
if 
selectmap == 8 then
return
elseif 
selectmap == 7 then
say_title
("Warpring"
say("Wohin möchtest du Teleportiert werden?"
09/01/2015 12:20 rollback#8
Das sieht richtig aus, bist du dir sicher, dass der mapindex 358 ist? Falls das ein Dungeon ist musst du den Mapindex mal 1000 rechnen und dann zwischen dem ersten und dem 999. Wert (358000 - 358999) abfragen.
09/01/2015 12:22 zazadi#9
Quote:
Originally Posted by Seחsi View Post
Das sieht richtig aus, bist du dir sicher, dass der mapindex 358 ist? Falls das ein Dungeon ist musst du den Mapindex mal 1000 rechnen und dann zwischen dem ersten und dem 999. Wert (358000 - 358999) abfragen.
Ist eine Neue Map, die ein Kollege erstellt hatte.
und Mapindex stimmt auch.

Lg
09/01/2015 12:55 iPeri /..#10
Code:
quest warpring begin 
	state start begin 
		when login begin 
			cmdchat("NeuerIndex Warpring "..q.getcurrentquestindex()) 
		end  
		when button begin
			if pc.get_map_index() == 358 then 
				syschat("Du kannst den Warpring auf dieser Map nicht nutzen.") 
				return
			else
				local empire = pc.get_empire()  
				say_title("Warpring")  
				say("Wohin möchtest du Teleportiert werden?")
				local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen") 
				if selectmap >= 8 then 
					return
				elseif selectmap == 7 then 
					say_title("Warpring")  
					say("Wohin möchtest du Teleportiert werden?")
				end
			end
		end
	end
end
Vielleicht geht es ja so :)
Die Quest führt ja trotzdem den IF + Die Say's aus...

oder umgekehrt :)!

Code:
quest warpring begin 
	state start begin 
		when login begin 
			cmdchat("NeuerIndex Warpring "..q.getcurrentquestindex()) 
		end  
		when button begin
			if pc.get_map_index() != 358 then 
				local empire = pc.get_empire()  
				say_title("Warpring")  
				say("Wohin möchtest du Teleportiert werden?") 
				local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen") 
				if selectmap == 8 then 
					return 
				elseif selectmap == 7 then 
					say_title("Warpring")  
					say("Wohin möchtest du Teleportiert werden?")
				end
			else
				syschat("Du kannst den Warpring auf dieser Map nicht nutzen.") 
				return
			end
		end
	end
end
Edit: Und bitte ändere mal was an deiner Formatierung :)
das sieht echt grauenhaft aus :)!
09/01/2015 13:02 rollback#11
Quote:
Originally Posted by iPeri™ View Post
Code:
quest warpring begin 
	state start begin 
		when login begin 
			cmdchat("NeuerIndex Warpring "..q.getcurrentquestindex()) 
		end  
		when button begin
			if pc.get_map_index() == 358 then 
				syschat("Du kannst den Warpring auf dieser Map nicht nutzen.") 
				return
			else
				say_title("Warpring")  
				say("Wohin möchtest du Teleportiert werden?") 
				local empire = pc.get_empire()  
				local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen") 
				if selectmap == 8 then 
				return 
				elseif selectmap == 7 then 
				say_title("Warpring")  
				say("Wohin möchtest du Teleportiert werden?")
			end
		end
	end
end
Vielleicht geht es ja so :)
Die Quest führt ja trotzdem den IF + Die Say's aus...

oder umgekehrt :)!

Code:
quest warpring begin 
	state start begin 
		when login begin 
			cmdchat("NeuerIndex Warpring "..q.getcurrentquestindex()) 
		end  
		when button begin
			if pc.get_map_index() != 358 then 
				say_title("Warpring")  
				say("Wohin möchtest du Teleportiert werden?") 
				local empire = pc.get_empire()  
				local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen") 
				if selectmap == 8 then 
				return 
				elseif selectmap == 7 then 
				say_title("Warpring")  
				say("Wohin möchtest du Teleportiert werden?")
			else
				syschat("Du kannst den Warpring auf dieser Map nicht nutzen.") 
				return
			end
		end
	end
end
Edit: Und bitte ändere mal was an deiner Formatierung :)
das sieht echt grauenhaft aus :)!
Es ist vollkommen egal, ob man nur ein if (ohne else) hat und in diesem returned, oder ob man ein else benutzt. Ich finde ersteres deutlich übersichtlicher, weil man durch ein else den kompletten Code weiter einrückt.

Deine Einrückung ist aber auch nicht so wie man es machen sollte ;)
09/01/2015 13:07 iPeri /..#12
Ja, ich habe jetzt ein paar Stellen ausgelassen :) Soll ich diese noch korrigieren :D? Also ich mache solche Abfragen immer mit einem "else" und bei mir klappt es auch immer :D bin kein Profi also gebe ich dir einfach mal Recht :D

Edit: Habe es verschönert :)!
09/01/2015 13:17 zazadi#13
Quote:
Originally Posted by iPeri™ View Post
Code:
quest warpring begin 
	state start begin 
		when login begin 
			cmdchat("NeuerIndex Warpring "..q.getcurrentquestindex()) 
		end  
		when button begin
			if pc.get_map_index() == 358 then 
				syschat("Du kannst den Warpring auf dieser Map nicht nutzen.") 
				return
			else
				local empire = pc.get_empire()  
				say_title("Warpring")  
				say("Wohin möchtest du Teleportiert werden?")
				local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen") 
				if selectmap >= 8 then 
					return
				elseif selectmap == 7 then 
					say_title("Warpring")  
					say("Wohin möchtest du Teleportiert werden?")
				end
			end
		end
	end
end
Vielleicht geht es ja so :)
Die Quest führt ja trotzdem den IF + Die Say's aus...

oder umgekehrt :)!

Code:
quest warpring begin 
	state start begin 
		when login begin 
			cmdchat("NeuerIndex Warpring "..q.getcurrentquestindex()) 
		end  
		when button begin
			if pc.get_map_index() != 358 then 
				local empire = pc.get_empire()  
				say_title("Warpring")  
				say("Wohin möchtest du Teleportiert werden?") 
				local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen") 
				if selectmap == 8 then 
					return 
				elseif selectmap == 7 then 
					say_title("Warpring")  
					say("Wohin möchtest du Teleportiert werden?")
				end
			else
				syschat("Du kannst den Warpring auf dieser Map nicht nutzen.") 
				return
			end
		end
	end
end
Edit: Und bitte ändere mal was an deiner Formatierung :)
das sieht echt grauenhaft aus :)!
hat funktioniert. Vielen dank :D

Quote:
Originally Posted by Seחsi View Post
Es ist vollkommen egal, ob man nur ein if (ohne else) hat und in diesem returned, oder ob man ein else benutzt. Ich finde ersteres deutlich übersichtlicher, weil man durch ein else den kompletten Code weiter einrückt.

Deine Einrückung ist aber auch nicht so wie man es machen sollte ;)
Danke Sensi und Yiv für euere Hilfe
09/01/2015 13:19 iPeri /..#14
Haha @Sensi :D
Kein Problem, hab ich gerne gemacht :)!