[SERVICE] Die Questerstellung

02/15/2015 00:02 G.I Duke#2191
Quote:
Originally Posted by .Stefan View Post
Das sieht sehr gut aus, werde es nachher mal testen. Danke :)

€: Also bei mir kommt folgendes :

locale/germany/quest/questlib.lua:1992: unexpected symbol near `when'
Der scheint glaube ich Probleme mit dem "letter" zu haben
falls ich mich nicht irre.. wars ein Klammerfehler
PHP Code:
function jagdquest_do(i)
    
mob_info = { --nummeranzahl
        
{10150}, -- 5
        
{10150}, -- 10
        
{10150}, -- 15
        
{10150}, -- 20
        
{10150}, -- 25
        
{10150}, -- 30
        
{10150}, -- 35
        
{10150}, -- 40
        
{10150}, -- 45
        
{10150}, -- 50
        
{10150}, -- 55
        
{10150}, -- 60
        
{10150}, -- 65
        
{10150}, -- 70
        
{10150}, -- 75
        
{10150}, -- 80
        
{10150}, -- 85
        
{10150} -- 90
    
}
    
when letter begin
        send_letter
("Jagdquest "..i)
    
end
    when button 
or info begin
        say
("Du musst "..mob_info[i][2].."x "..mob_name(mob_info[i][1]).." töten.")
        
pc.setqf("count"mob_info[i][2])
    
end
    when kill with npc
.get_race() == mob_info[i][1begin
        
if pc.getqf("count") >= 2 then
            pc
.setqf("count"pc.getqf("count")-1)
        else
            
say("Aufgabe abgeschlossen")
            
pc.delqf("count")
        
end
    end
end 
Greetings.
02/15/2015 00:10 rollback#2192
Quote:
Originally Posted by .Stefan View Post
Das sieht sehr gut aus, werde es nachher mal testen. Danke :)

€: Also bei mir kommt folgendes :

locale/germany/quest/questlib.lua:1992: unexpected symbol near `when'
Der scheint glaube ich Probleme mit dem "letter" zu haben
PHP Code:
function jagdquest_do(i)
    
mob_info = { --nummeranzahl
        
{10150}, -- 5
        
{10150}, -- 10
        
{10150}, -- 15
        
{10150}, -- 20
        
{10150}, -- 25
        
{10150}, -- 30
        
{10150}, -- 35
        
{10150}, -- 40
        
{10150}, -- 45
        
{10150}, -- 50
        
{10150}, -- 55
        
{10150}, -- 60
        
{10150}, -- 65
        
{10150}, -- 70
        
{10150}, -- 75
        
{10150}, -- 80
        
{10150}, -- 85
        
{10150} -- 90
    
}
    
when letter begin
        send_letter
("Jagdquest "..i)
    
end
    when button 
or info begin
        say
("Du musst "..mob_info[i][2].."x "..mob_name(mob_info[i][1]).." töten.")
        
pc.setqf("count"mob_info[i][2])
    
end
    when kill with npc
.get_race() == mob_info[i][1begin
        
if pc.getqf("count") >= 2 then
            pc
.setqf("count"pc.getqf("count")-1)
        else
            
say("Aufgabe abgeschlossen")
            
pc.delqf("count")
        
end
    end
end 
02/15/2015 00:31 WyppyOne#2193
Hi,is possible to make a quest when if you have set a value to can quip a weapon,acc and armor ? something like : if pc.getqf("vip") == 1 and use.item_vnum and pc.get_lvl >= item_vnum_lvl then equip item else say " you dont have permission to equip this " ?
02/15/2015 00:43 rollback#2194
Quote:
Originally Posted by WyppyOne View Post
Hi,is possible to make a quest when if you have set a value to can quip a weapon,acc and armor ? something like : if pc.getqf("vip") == 1 and use.item_vnum and pc.get_lvl >= item_vnum_lvl then equip item else say " you dont have permission to equip this " ?
.use can only be used with items which have type 18 in the db and items with type 18 cant be equiped
02/15/2015 00:45 WyppyOne#2195
Quote:
Originally Posted by [Sensenmann] View Post
.use can only be used with items which have type 18 in the db and items with type 18 cant be equiped
That's why i asked,is possible to make a quest like that without use ?
02/15/2015 11:03 mkiiing#2196
Hallo zusammen :)

wäre es möglich eine PvP quest zuschreiben, wo man abwechslungsweise einen Krieger/Ninja/sura/schami killen muss, und erst dann was kriegt (zb 5hm). Die Zeit zwischen den Kills könnte 15s sein...

Liebe Grüsse
02/15/2015 11:20 rollback#2197
Quote:
Originally Posted by mkiiing View Post
Hallo zusammen :)

wäre es möglich eine PvP quest zuschreiben, wo man abwechslungsweise einen Krieger/Ninja/sura/schami killen muss, und erst dann was kriegt (zb 5hm). Die Zeit zwischen den Kills könnte 15s sein...

Liebe Grüsse
Versuch mal das:
PHP Code:
quest pvpkills begin
    state start begin
        when login with pc
.getqf("count") == 0 begin
            pc
.setqf("count"40)
            
pc.setqf("nextkill"0)
            
notice("Als nächstes musst du einen "..({"Krieger""Ninja""Sura""Schamane"})[pc.getqf("nextkill")+1].." töten.")
        
end
        when kill with npc
.is_pc() and pc.getqf("count") >= and get_time() >= pc.getqf("wait_time") and npc_get_job() == pc.getqf("nextkill"begin
            
if pc.getqf("count") >= 2 then
                pc
.setqf("count"pc.getqf("count")-1)
                
pc.setqf("nextkill", (pc.getqf("nextkill") <= and pc.getqf("nextkill")+or 0))
                
pc.setqf("wait_time"get_time() + 15)
                
notice("Als nächstes musst du einen "..({"Krieger""Ninja""Sura""Schamane"})[pc.getqf("nextkill")+1].." töten.")
            else
                
notice("Du hast die Quest abgeschlossen und erhälst 5% Halbmenschen.")
                
pc.delqf("count")
                
pc.delqf("nextkill")
                
affect.add_collect(apply.ATTBONUS_HUMAN560*60*24*730)
                
set_state(_COMPLETE_)
            
end
        end
    end
    state _COMPLETE_ begin
    end
end 
02/15/2015 14:50 .Stefan#2198
Quote:
Originally Posted by G.I Duke View Post
falls ich mich nicht irre.. wars ein Klammerfehler
PHP Code:
function jagdquest_do(i)
    
mob_info = { --nummeranzahl
        
{10150}, -- 5
        
{10150}, -- 10
        
{10150}, -- 15
        
{10150}, -- 20
        
{10150}, -- 25
        
{10150}, -- 30
        
{10150}, -- 35
        
{10150}, -- 40
        
{10150}, -- 45
        
{10150}, -- 50
        
{10150}, -- 55
        
{10150}, -- 60
        
{10150}, -- 65
        
{10150}, -- 70
        
{10150}, -- 75
        
{10150}, -- 80
        
{10150}, -- 85
        
{10150} -- 90
    
}
    
when letter begin
        send_letter
("Jagdquest "..i)
    
end
    when button 
or info begin
        say
("Du musst "..mob_info[i][2].."x "..mob_name(mob_info[i][1]).." töten.")
        
pc.setqf("count"mob_info[i][2])
    
end
    when kill with npc
.get_race() == mob_info[i][1begin
        
if pc.getqf("count") >= 2 then
            pc
.setqf("count"pc.getqf("count")-1)
        else
            
say("Aufgabe abgeschlossen")
            
pc.delqf("count")
        
end
    end
end 
Greetings.
Quote:
Originally Posted by [Sensenmann] View Post
PHP Code:
function jagdquest_do(i)
    
mob_info = { --nummeranzahl
        
{10150}, -- 5
        
{10150}, -- 10
        
{10150}, -- 15
        
{10150}, -- 20
        
{10150}, -- 25
        
{10150}, -- 30
        
{10150}, -- 35
        
{10150}, -- 40
        
{10150}, -- 45
        
{10150}, -- 50
        
{10150}, -- 55
        
{10150}, -- 60
        
{10150}, -- 65
        
{10150}, -- 70
        
{10150}, -- 75
        
{10150}, -- 80
        
{10150}, -- 85
        
{10150} -- 90
    
}
    
when letter begin
        send_letter
("Jagdquest "..i)
    
end
    when button 
or info begin
        say
("Du musst "..mob_info[i][2].."x "..mob_name(mob_info[i][1]).." töten.")
        
pc.setqf("count"mob_info[i][2])
    
end
    when kill with npc
.get_race() == mob_info[i][1begin
        
if pc.getqf("count") >= 2 then
            pc
.setqf("count"pc.getqf("count")-1)
        else
            
say("Aufgabe abgeschlossen")
            
pc.delqf("count")
        
end
    end
end 
Danke für die schnelle Hilfe. Aber immernoch der selbe Fehler :

locale/germany/quest/questlib.lua:1992: unexpected symbol near `when'
02/15/2015 23:24 Rofelmau#2199
Quote:
Originally Posted by .Stefan View Post
Danke für die schnelle Hilfe. Aber immernoch der selbe Fehler :

locale/germany/quest/questlib.lua:1992: unexpected symbol near `when'
Versuch es mal so

02/16/2015 03:09 .Stefan#2200
Leider immernoch der selbe Fehler :/
02/16/2015 09:53 Sp0ngeb0b ist cool#2201
Man kann keine When-Bedingung in eine Funktion packen.
Die beiden sind sogesehen gleichgestellt ;)

PHP Code:
function jagdquest_do(i
    
local mob_info = { --nummeranzahl 
        
{10150}, -- 
        
{10150}, -- 10 
        
{10150}, -- 15 
        
{10150}, -- 20 
        
{10150}, -- 25 
        
{10150}, -- 30 
        
{10150}, -- 35 
        
{10150}, -- 40 
        
{10150}, -- 45 
        
{10150}, -- 50 
        
{10150}, -- 55 
        
{10150}, -- 60 
        
{10150}, -- 65 
        
{10150}, -- 70 
        
{10150}, -- 75 
        
{10150}, -- 80 
        
{10150}, -- 85 
        
{10150} -- 90 
    
}
    return 
mob_info[i]
end    
when letter begin 
    send_letter
("Jagdquest "..i) --i muss irgendwo deklariert werdenin Form von QF zum Beispiel
end 
when button 
or info begin 
    say
("Du musst "..QUESTNAME.jagdquest_do[2].."x "..mob_name(QUESTNAME.jagdquest_do[1]).." töten."
    
pc.setqf("count"QUESTNAME.jagdquest_do[2]) 
end 
when kill with npc
.get_race() == QUESTNAME.jagdquest_do[1begin 
    
if pc.getqf("count") >= 1 then 
        pc
.setqf("count"pc.getqf("count")-1
    else 
        
say("Aufgabe abgeschlossen"
        
pc.delqf("count"
    
end 
end 
02/16/2015 11:57 .Stefan#2202
Irgendwelche Lösungen ? ._.
02/16/2015 17:55 mkiiing#2203
Quote:
Originally Posted by [Sensenmann] View Post
Versuch mal das:
PHP Code:
quest pvpkills begin
    state start begin
        when login with pc
.getqf("count") == 0 begin
            pc
.setqf("count"40)
            
pc.setqf("nextkill"0)
            
notice("Als nächstes musst du einen "..({"Krieger""Ninja""Sura""Schamane"})[pc.getqf("nextkill")+1].." töten.")
        
end
        when kill with npc
.is_pc() and pc.getqf("count") >= and get_time() >= pc.getqf("wait_time") and npc_get_job() == pc.getqf("nextkill"begin
            
if pc.getqf("count") >= 2 then
                pc
.setqf("count"pc.getqf("count")-1)
                
pc.setqf("nextkill", (pc.getqf("nextkill") <= and pc.getqf("nextkill")+or 0))
                
pc.setqf("wait_time"get_time() + 15)
                
notice("Als nächstes musst du einen "..({"Krieger""Ninja""Sura""Schamane"})[pc.getqf("nextkill")+1].." töten.")
            else
                
notice("Du hast die Quest abgeschlossen und erhälst 5% Halbmenschen.")
                
pc.delqf("count")
                
pc.delqf("nextkill")
                
affect.add_collect(apply.ATTBONUS_HUMAN560*60*24*730)
                
set_state(_COMPLETE_)
            
end
        end
    end
    state _COMPLETE_ begin
    end
end 
funktioniert nicht... "du musst einen Krieger töte", kill ich einen Ninja, kommt, als nächstes musst du einen ninja töten... aber wenn ich einen ninja töte passiert nichts^^ sind die jobs vlt vertauscht?

E: es geht nicht weiter, egal welche rasse ich kill :(

lg
02/16/2015 18:22 .yorliK#2204
Quote:
Originally Posted by mkiiing View Post
funktioniert nicht... "du musst einen Krieger töte", kill ich einen Ninja, kommt, als nächstes musst du einen ninja töten... aber wenn ich einen ninja töte passiert nichts^^ sind die jobs vlt vertauscht?

E: es geht nicht weiter, egal welche rasse ich kill :(

lg

Soweit ich weiß händelt npc_get_race() mit der npc.get_race() Funktion und dort sind die Jobs der Rassen anders, solltet euch die Funktion mal schauen. Hier ne Lösung mit npc.get_vid() und pc.get_job() Funktion:

Code:
quest pvpkills begin
	state start begin
		when letter begin
			send_letter("PvP-Quest")
		end
		when login with pc.getqf("count") == 0 begin
			pc.setqf("count", 40)
			pc.setqf("nextkill", 0)
			notice("Als nächstes musst du einen "..({"Krieger", "Ninja", "Sura", "Schamane"})[pc.getqf("nextkill")+1].." töten.")
			q.set_counter("Verbleibend", 40)
		end
		when button or info begin
			say_title("PvP-Quest")
			say("")
			say("Als nächstes musst du einen "..({"Krieger", "Ninja", "Sura", "Schamane"})[pc.getqf("nextkill")+1].." töten.")
			say("Verbleibend: "..pc.getqf("count"))
		end
		when kill with npc.is_pc() and pc.getqf("count") >= 1 and get_time() >= pc.getqf("wait_time") begin
			local m = pc.select(npc.get_vid())
				local job = pc.get_job()
			pc.select(m)
			if job != pc.getqf("nextkill") then return end
			if pc.getqf("count") >= 2 then
				pc.setqf("count", pc.getqf("count")-1)
				q.set_counter("Verbleibend", pc.getqf("count"))
				pc.setqf("nextkill", (pc.getqf("nextkill") <= 2 and pc.getqf("nextkill")+1 or 0))
				pc.setqf("wait_time", get_time() + 15)
				notice("Als nächstes musst du einen "..({"Krieger", "Ninja", "Sura", "Schamane"})[pc.getqf("nextkill")+1].." töten.")
			else
				notice("Du hast die Quest abgeschlossen und erhälst 5% Halbmenschen.")
				pc.delqf("count")
				pc.delqf("nextkill")
				affect.add_collect(apply.ATTBONUS_HUMAN, 5, 60*60*24*730)
				set_state(_COMPLETE_)
			end
		end
	end
	state _COMPLETE_ begin
	end
end
02/16/2015 18:29 mkiiing#2205
Quote:
Originally Posted by Kilroy. View Post
Soweit ich weiß händelt npc_get_race() mit der npc.get_race() Funktion und dort sind die Jobs der Rassen anders, solltet euch die Funktion mal schauen. Hier ne Lösung mit npc.get_vid() und pc.get_job() Funktion:

Code:
quest pvpkills begin
	state start begin
		when letter begin
			send_letter("PvP-Quest")
		end
		when login with pc.getqf("count") == 0 begin
			pc.setqf("count", 40)
			pc.setqf("nextkill", 0)
			notice("Als nächstes musst du einen "..({"Krieger", "Ninja", "Sura", "Schamane"})[pc.getqf("nextkill")+1].." töten.")
			q.set_counter("Verbleibend", 40)
		end
		when button or info begin
			say_title("PvP-Quest")
			say("")
			say("Als nächstes musst du einen "..({"Krieger", "Ninja", "Sura", "Schamane"})[pc.getqf("nextkill")+1].." töten.")
			say("Verbleibend: "..pc.getqf("count"))
		end
		when kill with npc.is_pc() and pc.getqf("count") >= 1 and get_time() >= pc.getqf("wait_time") begin
			local m = pc.select(npc.get_vid())
				local job = pc.get_job()
			pc.select(m)
			if job != pc.getqf("nextkill") then return end
			if pc.getqf("count") >= 2 then
				pc.setqf("count", pc.getqf("count")-1)
				q.set_counter("Verbleibend", pc.getqf("count"))
				pc.setqf("nextkill", (pc.getqf("nextkill") <= 2 and pc.getqf("nextkill")+1 or 0))
				pc.setqf("wait_time", get_time() + 15)
				notice("Als nächstes musst du einen "..({"Krieger", "Ninja", "Sura", "Schamane"})[pc.getqf("nextkill")+1].." töten.")
			else
				notice("Du hast die Quest abgeschlossen und erhälst 5% Halbmenschen.")
				pc.delqf("count")
				pc.delqf("nextkill")
				affect.add_collect(apply.ATTBONUS_HUMAN, 5, 60*60*24*730)
				set_state(_COMPLETE_)
			end
		end
	end
	state _COMPLETE_ begin
	end
end
danke bin am testen :)

E: funktioniert :) sehr schöne quest.. danke viel mals <3 noch ganz kurz^^ läuft die einmal durch ? also nach 40kills ist sie fertig oder? ^^