[SERVICE] Die Questkontrolle

02/22/2016 11:55 Remix yoyoyo#12196
Quote:
Originally Posted by .ERDLING. View Post
PHP Code:
quest Teleport begin
    state start begin
        when 20011.chat
."Mondlichttruhen-Event" and game.get_event_flag("event_2") == 1 begin
                say_title
("Mondlichttruhen-Event")
                
say("")
                
say_reward("Möchtest du am Mondi-Event teilnehmen?")
                
local a select("Ja""Nein"
Kann mir jemand diese Quest weiter schreiben?
Nach dem man auf Ja gedrückt hat, sollte es je nach Reich einen WarpSpawn geben.
Code:
quest Teleport begin 
    state start begin 
        when 20011.chat."Mondlichttruhen-Event" and game.get_event_flag("event_2") == 1 begin 
                say_title("Mondlichttruhen-Event") 
                say("") 
                say_reward("Möchtest du am Mondi-Event teilnehmen?") 
                local a = select("Ja", "Nein")
                if a == 1 then
                	local spawns = {
                		{0,0},
                		{0,0},
                		{0,0}
                	}
                	pc.warp(spawns[pc.empire][1], spawns[pc.empire][2])
                end
        end
    end
end
02/24/2016 09:44 Famouz™#12197
Kann mir einer sagen warum die quest nich Funktioniert ??

02/27/2016 10:31 stenlykkk#12198

Hello,
I have a little problem.
Part of the players activates alchemy.
A debris falling from them every monster.
(Or stone)
Do you know where she might be wrong?
02/28/2016 23:26 .Tera.#12199
Hey, ich habe einen Auftrag geschrieben und möchte, dass sie mit Level 30 beginnt aber ingame startet sie bereits mit Level 1. Danke im voraus.

PHP Code:
quest Sammelquest begin 
    state start begin 
        when login 
or levelup with pc.get_level() >= 30 begin 
            set_state
(go
        
end 
    end 

    state go begin 
        when letter begin 
            local v 
find_npc_by_vnum(20381
            if 
!= 0 then target.vid("__TARGET__"v"Sammelquest"
            
end 
            send_letter
("Sammelquest"
        
end 

        when button 
or info begin 
            say_title
("Sammelquest"
            
say(""
            
say("Konfuzius sucht dich!"
            
say(""
            
say_reward("Sprich mit Konfuzius!"
            
say(""
        
end 
         
        when __TARGET__
.target.click or 20381.chat."Sammelquest" begin 
            target
.delete("__TARGET__"
            
say("Konfuzius:"
            
say(""
            
say("Bringe mir 5x Orkzahn."
            
say(""
            
say_item_vnum(30006
            
say(""
            
say("Belohnung:"
            
say("5.000.000 Yang"
            
say("1x Karotte"
            
say(""
            
say_reward("Finde 5x Orkzahn."
            
say(""
            
set_state(collect_orcteeth)  
            
pc.setqf("collect_count",0)  
        
end  
    end  
     
    state collect_orcteeth begin  
        when letter begin  
            send_letter
("Sammelquest")  
        
end  
         
        when button 
or info begin  
            say_title
("Sammelquest")  
            
say("")  
            
say("Finde 5x Orkzahn und bringe")  
            
say("sie zu Konfuzius.")  
            
say("")  
            
say_item_vnum(30006)   
            
say("")  
        
end  

        when 20381.chat
."Sammelquest" with pc.count_item(30006) >= 5 begin  
            say
("Konfuzius:")  
            
say(""
            
say("Gut gemacht.")  
            
say("Du erhaelst deine Belohnung.")  
            
say("")  
            
say("Belohnung:"
            
say("5.000.000 Yang"
            
say("1x Karotte"
            
say(""
            
pc.remove_item("30006"5)  
            
pc.change_money(5000000
            
pc.give_item2(500551
            
clear_letter() 
            
set_state(__COMPLETE__
        
end 
    end 

    state __COMPLETE__ begin 
    end   
end 
02/29/2016 10:09 .Ryuzaki™#12200
Quote:
Originally Posted by .Tera. View Post
Hey, ich habe einen Auftrag geschrieben und möchte, dass sie mit Level 30 beginnt aber ingame startet sie bereits mit Level 1. Danke im voraus.

PHP Code:
quest Sammelquest begin 
    state start begin 
        when login 
or levelup with pc.get_level() >= 30 begin 
            set_state
(go
        
end 
    end 

    state go begin 
        when letter begin 
            local v 
find_npc_by_vnum(20381
            if 
!= 0 then target.vid("__TARGET__"v"Sammelquest"
            
end 
            send_letter
("Sammelquest"
        
end 

        when button 
or info begin 
            say_title
("Sammelquest"
            
say(""
            
say("Konfuzius sucht dich!"
            
say(""
            
say_reward("Sprich mit Konfuzius!"
            
say(""
        
end 
         
        when __TARGET__
.target.click or 20381.chat."Sammelquest" begin 
            target
.delete("__TARGET__"
            
say("Konfuzius:"
            
say(""
            
say("Bringe mir 5x Orkzahn."
            
say(""
            
say_item_vnum(30006
            
say(""
            
say("Belohnung:"
            
say("5.000.000 Yang"
            
say("1x Karotte"
            
say(""
            
say_reward("Finde 5x Orkzahn."
            
say(""
            
set_state(collect_orcteeth)  
            
pc.setqf("collect_count",0)  
        
end  
    end  
     
    state collect_orcteeth begin  
        when letter begin  
            send_letter
("Sammelquest")  
        
end  
         
        when button 
or info begin  
            say_title
("Sammelquest")  
            
say("")  
            
say("Finde 5x Orkzahn und bringe")  
            
say("sie zu Konfuzius.")  
            
say("")  
            
say_item_vnum(30006)   
            
say("")  
        
end  

        when 20381.chat
."Sammelquest" with pc.count_item(30006) >= 5 begin  
            say
("Konfuzius:")  
            
say(""
            
say("Gut gemacht.")  
            
say("Du erhaelst deine Belohnung.")  
            
say("")  
            
say("Belohnung:"
            
say("5.000.000 Yang"
            
say("1x Karotte"
            
say(""
            
pc.remove_item("30006"5)  
            
pc.change_money(5000000
            
pc.give_item2(500551
            
clear_letter() 
            
set_state(__COMPLETE__
        
end 
    end 

    state __COMPLETE__ begin 
    end   
end 

Versuchs mal so:

PHP Code:
quest Sammelquest begin 
    state start begin 
        when login 
or levelup with pc.level >= 30 begin 
            set_state
(go
        
end 
    end 

    state go begin 
        when letter begin 
            local v 
find_npc_by_vnum(20381
            if 
!= 0 then target.vid("__TARGET__"v"Sammelquest"
            
end 
            send_letter
("Sammelquest"
        
end 

        when button 
or info begin 
            say_title
("Sammelquest"
            
say(""
            
say("Konfuzius sucht dich!"
            
say(""
            
say_reward("Sprich mit Konfuzius!"
            
say(""
        
end 
         
        when __TARGET__
.target.click or 20381.chat."Sammelquest" begin 
            target
.delete("__TARGET__"
            
say("Konfuzius:"
            
say(""
            
say("Bringe mir 5x Orkzahn."
            
say(""
            
say_item_vnum(30006
            
say(""
            
say("Belohnung:"
            
say("5.000.000 Yang"
            
say("1x Karotte"
            
say(""
            
say_reward("Finde 5x Orkzahn."
            
say(""
            
set_state(collect_orcteeth)  
            
pc.setqf("collect_count",0)  
        
end  
    end  
     
    state collect_orcteeth begin  
        when letter begin  
            send_letter
("Sammelquest")  
        
end  
         
        when button 
or info begin  
            say_title
("Sammelquest")  
            
say("")  
            
say("Finde 5x Orkzahn und bringe")  
            
say("sie zu Konfuzius.")  
            
say("")  
            
say_item_vnum(30006)   
            
say("")  
        
end  

        when 20381.chat
."Sammelquest" with pc.count_item(30006) >= 5 begin  
            say
("Konfuzius:")  
            
say(""
            
say("Gut gemacht.")  
            
say("Du erhaelst deine Belohnung.")  
            
say("")  
            
say("Belohnung:"
            
say("5.000.000 Yang"
            
say("1x Karotte"
            
say(""
            
pc.remove_item("30006"5)  
            
pc.change_money(5000000
            
pc.give_item2(500551
            
clear_letter() 
            
set_state(__COMPLETE__
        
end 
    end 

    state __COMPLETE__ begin 
    end   
end 
02/29/2016 11:34 rollback#12201
Quote:
Originally Posted by .Ryuzaki™ View Post
Versuchs mal so:

PHP Code:
quest Sammelquest begin 
    state start begin 
        when login 
or levelup with pc.level >= 30 begin 
            set_state
(go
        
end 
    end 

    state go begin 
        when letter begin 
            local v 
find_npc_by_vnum(20381
            if 
!= 0 then target.vid("__TARGET__"v"Sammelquest"
            
end 
            send_letter
("Sammelquest"
        
end 

        when button 
or info begin 
            say_title
("Sammelquest"
            
say(""
            
say("Konfuzius sucht dich!"
            
say(""
            
say_reward("Sprich mit Konfuzius!"
            
say(""
        
end 
         
        when __TARGET__
.target.click or 20381.chat."Sammelquest" begin 
            target
.delete("__TARGET__"
            
say("Konfuzius:"
            
say(""
            
say("Bringe mir 5x Orkzahn."
            
say(""
            
say_item_vnum(30006
            
say(""
            
say("Belohnung:"
            
say("5.000.000 Yang"
            
say("1x Karotte"
            
say(""
            
say_reward("Finde 5x Orkzahn."
            
say(""
            
set_state(collect_orcteeth)  
            
pc.setqf("collect_count",0)  
        
end  
    end  
     
    state collect_orcteeth begin  
        when letter begin  
            send_letter
("Sammelquest")  
        
end  
         
        when button 
or info begin  
            say_title
("Sammelquest")  
            
say("")  
            
say("Finde 5x Orkzahn und bringe")  
            
say("sie zu Konfuzius.")  
            
say("")  
            
say_item_vnum(30006)   
            
say("")  
        
end  

        when 20381.chat
."Sammelquest" with pc.count_item(30006) >= 5 begin  
            say
("Konfuzius:")  
            
say(""
            
say("Gut gemacht.")  
            
say("Du erhaelst deine Belohnung.")  
            
say("")  
            
say("Belohnung:"
            
say("5.000.000 Yang"
            
say("1x Karotte"
            
say(""
            
pc.remove_item("30006"5)  
            
pc.change_money(5000000
            
pc.give_item2(500551
            
clear_letter() 
            
set_state(__COMPLETE__
        
end 
    end 

    state __COMPLETE__ begin 
    end   
end 
pc.level ruft auch die pc.get_level funktion auf. Das ist über den Metatable von pc geregelt:

Beispiel:
Code:
pc = {}
function pc.get_level()
return 1337
end

local pc_index_table = {
level = pc.get_level
}

setmetatable(pc, {__index = pc_index_table})
02/29/2016 12:43 .Ryuzaki™#12202
Quote:
Originally Posted by Seחsi View Post
pc.level ruft auch die pc.get_level funktion auf. Das ist über den Metatable von pc geregelt:

Beispiel:
Code:
pc = {}
function pc.get_level()
return 1337
end

local pc_index_table = {
level = pc.get_level
}

setmetatable(pc, {__index = pc_index_table})
Ja das weiß ich, aber es geht halt nicht.
Seine Quest ist doch richtig..?
03/01/2016 16:16 PeeacH#12203
Kann mir einer diesen fehler sagen :D

quest Mbs begin
state start begin
when 50137.use begin
local anzahl = 1
if pc.job == 0 then
local r = number(1, 10)
if r == 1 then
pc.give_item(50401,1)
end
if r == 2 then
pc.give_item(50402,1)
end
if r == 3 then
pc.give_item(50403,1)
end
if r == 4 then
pc.give_item(50404,1)
end
if r == 5 then
pc.give_item(50405,1)
end
if r == 6 then
pc.give_item(50416,1)
end
if r == 7 then
pc.give_item(50417,1)
end
if r == 8 then
pc.give_item(50418,1)
end
if r == 9 then
pc.give_item(50419,1)
end
if r == 10 then
pc.give_item(50420,1)
end
end

if pc.job == 1 then
local r = number(1, 10)
if r == 1 then
pc.give_item(50431,1)
end
if r == 2 then
pc.give_item(50432,1)
end
if r == 3 then
pc.give_item(50433,1)
end
if r == 4 then
pc.give_item(50434,1)
end
if r == 5 then
pc.give_item(50435,1)
end
if r == 6 then
pc.give_item(50446,1)
end
if r == 7 then
pc.give_item(50447,1)
end
if r == 8 then
pc.give_item(50448,1)
end
if r == 9 then
pc.give_item(50449,1)
end
if r == 10 then
pc.give_item(50450,1)
end
end

if pc.job == 2 then
local r = number(1, 12)
if r == 1 then
pc.give_item(50461,1)
end
if r == 2 then
pc.give_item(50462,1)
end
if r == 3 then
pc.give_item(50463,1)
end
if r == 4 then
pc.give_item(50464,1)
end
if r == 5 then
pc.give_item(50465,1)
end
if r == 6 then
pc.give_item(50466,1)
end
if r == 7 then
pc.give_item(50476,1)
end
if r == 8 then
pc.give_item(50478,1)
end
if r == 9 then
pc.give_item(50479,1)
end
if r == 10 then
pc.give_item(50480,1)
end
if r == 11 then
pc.give_item(50481,1)
end
if r == 12 then
pc.give_item(50477,1)
end
end

if pc.job == 3 then
local r = number(1, 12)
if r == 1 then
pc.give_item(50491,1)
end
if r == 2 then
pc.give_item(50492,1)
end
if r == 3 then
pc.give_item(50493,1)
end
if r == 4 then
pc.give_item(50494,1)
end
if r == 5 then
pc.give_item(50495,1)
end
if r == 6 then
pc.give_item(50496,1)
end
if r == 7 then
pc.give_item(50506,1)
end
if r == 8 then
pc.give_item(50507,1)
end
if r == 9 then
pc.give_item(50508,1)
end
if r == 10 then
pc.give_item(50509,1)
end
if r == 11 then
pc.give_item(50510,1)
end
if r == 12 then
pc.give_item(50511,1)
end
end

end
end
end


Mann kann die truhe nicht öffnen :S
03/01/2016 17:42 MQTT.#12204
hast du in der db den type angepasst?
03/01/2016 23:43 Rofelmau#12205
Eigentlich müsste deine auch gehen, ist nur kürzer und wie ich finde übersichtlicher.
Solltest mal schauen was nguyen schon sagte ob das item in der DB typ 18 hat und ob du die quest richtig eingefügt hast
03/08/2016 00:32 .ERDLING.#12206
Kann mir jemand folgende Quests schreiben?


03/08/2016 20:11 LoowKing#12207
bitte um hilfe ich habe eine fb Quest funkt alles gut aber wen die fbs in stapel sind verschwinden alle. wie kann ich so machen das nur 1 verschwindet?

Quote:
quest fbread begin
state start begin
function learnskill(skill)
local SkillLevel = pc.get_skill_level(skill)
if SkillLevel < 1 then
syschat("<Mongo> Das kannst du nicht lesen.")
return
end
if SkillLevel < 20 then
syschat("<Mongo> Diese Fertigkeit hast du noch nicht erlernt.")
return
end
if SkillLevel > 29 then
syschat("<Mongo> Du hast diese Fertigkeit bereits gelernt.")
return
end
pc.set_skill_level(skill, SkillLevel+1)
syschat("<Mongo> Du hast das Fertigkeitsbuch erfolgreich gelesen.")
item.remove()
if pc.is_skill_book_no_delay() then
pc.remove_skill_book_no_delay()
end
end
when 50401.use or 50402.use or 50403.use or 50404.use or 50405.use or
50416.use or 50417.use or 50418.use or 50419.use or 50420.use or
50431.use or 50432.use or 50433.use or 50434.use or 50435.use or
50446.use or 50447.use or 50448.use or 50449.use or 50450.use or
50461.use or 50462.use or 50463.use or 50464.use or 50465.use or 50466.use or
50476.use or 50477.use or 50478.use or 50479.use or 50480.use or 50481.use or
50491.use or 50492.use or 50493.use or 50494.use or 50495.use or 50496.use or
50506.use or 50507.use or 50508.use or 50509.use or 50510.use or 50511.use begin
fbread.learnskill(item.get_vnum()-50400)
end
end
end
03/10/2016 11:28 .He3o Copy™#12208
Quote:
Originally Posted by LoowKing View Post
bitte um hilfe ich habe eine fb Quest funkt alles gut aber wen die fbs in stapel sind verschwinden alle. wie kann ich so machen das nur 1 verschwindet?
ändere item.remove()
in
pc.remove_item(item.get_vnum(), 1)
ab
03/10/2016 18:17 Drαεth#12209
Code:
quest bla begin
	state start begin
		when login or levelup begin
			local bonus = {
				[126] = {1, 5000},
				[127] = {7, 5},
			}
			local level = pc.get_level()
			local given = pc.getqf("given")
			if given < level then
				given = given + 1
				if bonus[given] ~= nil then
					chat("BONUS")
					affect.add_collect(bonus[given][1], bonus[given][2],60*60*24*365*60)
				end
				pc.setqf("given", given)
			end
		end
	end
end
Diese Quest funktioniert nicht .... x.x
03/11/2016 11:54 .Delta#12210
probiers doch mal so, man levelt doch nur einmal auf das level :)
PHP Code:
quest bla begin
    state start begin
        when levelup begin
            local bonus 
= ({
                [
126] = {15000},
                [
127] = {75},
            })[
pc.get_level()]
            if 
bonus ~= nil then
                chat
("BONUS")
                
affect.add_collect(bonus[1], bonus[2],60*60*24*365*60)
            
end
        end
    end
end