[SERVICE] Die Questerstellung

12/09/2015 23:13 ItChino#3271
Haii Leute,

Kann jemand ne Quest schreiben in der folgende Funktion gegeben sein soll:

Man klickt auf eine Truhe und hat die auswahl von 5 Items wen man sich eins ausgesucht hat bekommt man das Item und die Truhe verschwindet

Danke im Vorraus
12/09/2015 23:16 °Ace°#3272
Kann mir einer eine Quest erstellen, womit man sich bei einem NPC, mit einem Item teleportieren kann ?
12/09/2015 23:48 ItChino#3273
Haii Leute,

Kann jemand ne Quest schreiben in der folgende Funktion gegeben sein soll:

Man klickt auf eine Truhe und hat die auswahl von 5 Items wen man sich eins ausgesucht hat bekommt man das Item und die Truhe verschwindet

Danke im Vorraus
12/10/2015 00:00 Rofelmau#3274
Quote:
Originally Posted by ItChino View Post
Haii Leute,

Kann jemand ne Quest schreiben in der folgende Funktion gegeben sein soll:

Man klickt auf eine Truhe und hat die auswahl von 5 Items wen man sich eins ausgesucht hat bekommt man das Item und die Truhe verschwindet

Danke im Vorraus
PHP Code:
quest truhe begin
    state start begin
        when vnumtruhe
.use begin
            local items 
= {vnumItem1,vnumItm2,vnumUtem3,vnumItem4,vnumItem5}
            
local s select("nameItem1","nameItem2","nameItem3","nameItem4","nameItem5","Abbruch")
            if 
!= 6 then
                pc
.give_item2(items[s],1)
                
pc.remove_item(vnumTruhe,1)
            
end
        end
    end
end 
nur noch die vnums für die truhe vor use eintragen, die vnums für die items in die tabelle, die namen der items beim select und nochmal die vnum für die truhe bei remove_item


@ Ace
PHP Code:
quest port begin
    state start begin
        when NPCVnum
.chat"Porten" begin
            local maps 
= {"Map1","Map2","Map3"}
            
local tab = {}
            for 
1table.getn(maps), do
                
table.insert(tab,""..maps[i].."")
            
end
            table
.insert("abbruch")
            
local e select_table(tab)
            if 
== table.getn(tabthen 
                
return
            
end
            local warps 
= { 
                            {
xmap1,ymap1},
                            {
xmap2,ymap2},
                            {
xmap3,ymap3}
                          }
            
pc.warp(warps[e][1],warps[e][2])
        
end
    end
end 
In die Tabelle maps, die namen der maps eintragen
in die tabelle warps die koordinaten eintragen {x,y}
12/10/2015 08:15 rollback#3275
Quote:
Originally Posted by ItChino View Post
Haii Leute,

Kann jemand ne Quest schreiben in der folgende Funktion gegeben sein soll:

Man klickt auf eine Truhe und hat die auswahl von 5 Items wen man sich eins ausgesucht hat bekommt man das Item und die Truhe verschwindet

Danke im Vorraus
Die Quest wurde dir jetzt schon 3x geschrieben
12/10/2015 21:41 Sogma#3276
Hallo,

ich bräuchte etwas Hilfe bei einer PvP-Quest.
Es gibt eine PvP Arena mit 33 Arenen. In jeder Arena können maximal zwei Leute gleichzeitig sein. Ich habe dafür bereits eine Funktion geschrieben, die die Warp-Positionen als return-value hat. Nun fehlt mir die Routine die überprüft, ob bereits zwei Leute in eine Arena teleportiert wurden.
PHP Code:
function arena()
            return
            {
                [
"arena_pos"] = {
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy},
                    {
xy}
                },
            }
        
end 
Wie kann ich nun sicherstellen, dass die nächsten Spieler, nachdem bereits zwei Spieler in bsplw. in der ersten Arena sind, auch in die zeiten, dritte, n'te Arena geportet werden?

Danke für's Gedanken machen!
12/10/2015 22:56 ItChino#3277
danke dir für die quest :)
12/11/2015 14:17 .UNLTD.#3278
Suche eine Quest, die beim ersten Login den Charakter auf Level 75 bringt.
Und ihm Start Equipment für die Rasse gibt.

Danke im Vorraus.
12/11/2015 19:46 Creek'#3279
Quote:
Originally Posted by .UNLTD. View Post
Suche eine Quest, die beim ersten Login den Charakter auf Level 75 bringt.
Und ihm Start Equipment für die Rasse gibt.

Danke im Vorraus.
Code:
quest firstlogin begin
	state start begin
		function GetItems()
			return {
				[0] = { -- Krieger
					{11299,1},
					{189,1},
				},
				[1] = { -- Ninja
					{11499,1},
					{189,1},
				},		
				[2] = { -- Sura
					{11699,1},
					{189,1},
				},	
				[3] = { -- Schamane
					{11899,1},
					{189,1},
				},				
			} or 0		
		end
		function SetLevel(level)
			while pc.get_level() < level do
				pc.give_exp(pc.get_next_exp())
			end
		end
		when login with pc.getqf("firstlogin") == 0 begin
			firstlogin.SetLevel(75)
			local items = firstlogin.GetItems()
			for i in ipairs(items[pc.get_job()]) do
				pc.give_item2(items[pc.get_job()][i][1],items[pc.get_job()][i][2])
			end			
		end
	end
end
12/11/2015 20:04 rollback#3280
Quote:
Originally Posted by ʟυɢıα View Post
Code:
quest firstlogin begin
	state start begin
		function GetItems()
			return {
				[0] = { -- Krieger
					{11299,1},
					{189,1},
				},
				[1] = { -- Ninja
					{11499,1},
					{189,1},
				},		
				[2] = { -- Sura
					{11699,1},
					{189,1},
				},	
				[3] = { -- Schamane
					{11899,1},
					{189,1},
				},				
			} or 0		
		end
		function SetLevel(level)
			while pc.get_level() < level do
				pc.give_exp(pc.get_next_exp())
			end
		end
		when login with pc.getqf("firstlogin") == 0 begin
			firstlogin.SetLevel(75)
			local items = firstlogin.GetItems()
			for i in ipairs(items[pc.get_job()]) do
				pc.give_item2(items[pc.get_job()][i][1],items[pc.get_job()][i][2])
			end			
		end
	end
end
pairs und ipairs gibt einen tupel zurück, einmal den key (bei ipairs das klassiche i) und den value (equivalent zu tbl[i]).
Kannst es also einfach so schreiben:
Code:
for i,v in ipairs(items[pc.get_job()]) do
	pc.give_item2(v[1],v[2])
end
ausserdem kannst du alle werte des tables ohne direkten zugriff übergeben:

Code:
for i,v in ipairs(items[pc.get_job()]) do
	pc.give_item2(unpack(v))
end
12/11/2015 22:09 Creek'#3281
Quote:
Originally Posted by Seחsi View Post
pairs und ipairs gibt einen tupel zurück, einmal den key (bei ipairs das klassiche i) und den value (equivalent zu tbl[i]).
Kannst es also einfach so schreiben:
Code:
for i,v in ipairs(items[pc.get_job()]) do
	pc.give_item2(v[1],v[2])
end
ausserdem kannst du alle werte des tables ohne direkten zugriff übergeben:

Code:
for i,v in ipairs(items[pc.get_job()]) do
	pc.give_item2(unpack(v))
end
Danke dir.
Ich wusste es schon nur habs aus dem Kopf geschrieben und nicht drauf geachtet^^
12/11/2015 23:23 .UNLTD.#3282
Quote:
Originally Posted by ʟυɢıα View Post
Code:
quest firstlogin begin
	state start begin
		function GetItems()
			return {
				[0] = { -- Krieger
					{11299,1},
					{189,1},
				},
				[1] = { -- Ninja
					{11499,1},
					{189,1},
				},		
				[2] = { -- Sura
					{11699,1},
					{189,1},
				},	
				[3] = { -- Schamane
					{11899,1},
					{189,1},
				},				
			} or 0		
		end
		function SetLevel(level)
			while pc.get_level() < level do
				pc.give_exp(pc.get_next_exp())
			end
		end
		when login with pc.getqf("firstlogin") == 0 begin
			firstlogin.SetLevel(75)
			local items = firstlogin.GetItems()
			for i in ipairs(items[pc.get_job()]) do
				pc.give_item2(items[pc.get_job()][i][1],items[pc.get_job()][i][2])
			end			
		end
	end
end
Funktioniert nicht.
Wenn ich mich einlogge bekomm ich auto kik und Channel is down.
12/11/2015 23:38 Creek'#3283
Quote:
Originally Posted by .UNLTD. View Post
Funktioniert nicht.
Wenn ich mich einlogge bekomm ich auto kik und Channel is down.
Schau mal was Sensi geschrieben hat:

Code:
quest firstlogin begin
	state start begin
		function GetItems()
			return {
				[0] = { -- Krieger
					{11299,1},
					{189,1},
				},
				[1] = { -- Ninja
					{11499,1},
					{189,1},
				},		
				[2] = { -- Sura
					{11699,1},
					{189,1},
				},	
				[3] = { -- Schamane
					{11899,1},
					{189,1},
				},				
			} or 0		
		end
		function SetLevel(level)
			while pc.get_level() < level do
				pc.give_exp(pc.get_next_exp())
			end
		end
		when login with pc.getqf("firstlogin") == 0 begin
			firstlogin.SetLevel(75)
			local items = firstlogin.GetItems()
			for k,v in ipairs(items[pc.get_job()]) do
				pc.give_item2(v[1],v[2])
			end			
		end
	end
end
12/11/2015 23:41 LaserFusion#3284
Weiß jemand, wie ich eine questlib machen kann, dass man über pc.get_map_index() auch den Mapnamen rausfinden kann, kann mir wer da ein Beispiel machen :D ?
12/11/2015 23:45 Creek'#3285
Quote:
Originally Posted by LaserFusion View Post
Weiß jemand, wie ich eine questlib machen kann, dass man über pc.get_map_index() auch den Mapnamen rausfinden kann, kann mir wer da ein Beispiel machen :D ?
Brauchst du den Serverside-Namen also "metin2_map_c1" oder die Namen wie z.B. "Map1 Blau"?