[SERVICE] Die Questkontrolle

03/12/2012 21:00 [SA]KiLLeD#5071
Bevor ich die neue Pvpkill quest teste, wollte ich kurz noch nen kleines problem lösen, also ich will der starterquest befehle einfügen, so dass wenn man sich einloggt automatisch alle drachengottitems besitzt und kritischer und durchbohrender treffer, aber habe wiedermal keine ahnung wo ich das einfügen muss und wie der befehl selbst heißt. tut mir echt leid :(

PHP Code:
quest willkommen begin 
    state start begin 
        when login begin 
            
if pc.getqf("start") == 0 then 
                pc
.setqf("start"1
                
say_title("DeineMudda"
                
say("Herzlich Willkommen auf DeineMudda!"
                
say("Hier kannst du deinen eigenen"
                
say("Style designen!"
                
say("Wir wünschen dir noch Viel Spaß!"
                
pc.give_item2 ("27003"200
                
pc.give_item2 ("27003"200
                
pc.give_item2 ("27003"200
                
pc.give_item2 ("27003"200
                
pc.give_item2 ("27003"200
                
pc.give_item2 ("27006"200
                
pc.give_item2 ("27006"200
                
pc.give_item2 ("71050"200
                
pc.give_item2 ("72702"1
                
pc.give_item2 ("50053"1
                
pc.give_item2 ("70044"1
                
pc.give_item2 ("70045"1
                
pc.change_money 1000000 
                
horse.set_level(21
                
say_reward("1000 Rote Potts erhalten."
                
say_reward("400 Blaue Potts erhalten"
                
say_reward("200 Violette Potts erhalten."
                
say_reward("Windschuhe+ erhalten."
                
say_reward("Reittieritem erhalten."
                
say_reward("Reittieritem2 erhalten."
                
clear_letter() 
            
end 
        end 
    end 
end 
Ich weiß es müsste bei pc.give_item2 sein da zwischen glaube ich bin mir aber nicht sicher. pls help, also alle drachengottitems und die 2 trefferpotts da :(
03/12/2012 21:01 havmonster#5072
Quote:
Originally Posted by RealMadrid94rk View Post
Was heißt login or enter?
Enter habe ich noch nie gehört, habs also mal rausgelassen.
Du hattest pc.get_map_index falsch gesetzt und das gleichheitszeichen vergessen. Jetzt sehe ich aber keine Fehler mehr
PHP Code:
quest anfang begin  
    state start begin 
        when login with pc
.get_map_index() == 205 begin  
            say_title
("Willkommen bei lwmt2")  
            
say("Stuerze dich auf die Spannenden")  
            
say("Abenteuer in dieser")  
            
say("unerforschten Welt")  
            
say("")  
            
say_reward("Sammle genug Yang, um dich wieder in die bekannte Welt")  
            
say_reward("zurueck zu teleportieren")  
            
say_reward("Teleportieren kannst du dich beim alten Mann")  
        
end  
    end 
end 
Enter hab ich in einer anderen quest gesehen, es geht aber immernoch nicht selber Fehler...
03/12/2012 22:13 collado#5073
PHP Code:
quest willkommen begin  
    state start begin  
        when login begin  
            
if pc.getqf("start") == 0 then  
                pc
.setqf("start"1)  
                
say_title("DeineMudda")  
                
say("Herzlich Willkommen auf DeineMudda!")  
                
say("Hier kannst du deinen eigenen")  
                
say("Style designen!")  
                
say("Wir wünschen dir noch Viel Spaß!")  
                
pc.give_item2 (27003200)  
                
pc.give_item2 (27003200)  
                
pc.give_item2 (27003200)  
                
pc.give_item2 (27003200)  
                
pc.give_item2 (27003200)  
                
pc.give_item2 (27006200)  
                
pc.give_item2 (27006200)  
                
pc.give_item2 (71050200)  
                
pc.give_item2 (727021)  
                
pc.give_item2 (500531)  
                
pc.give_item2 (700441)  
                
pc.give_item2 (700451)
                
pc.give_item2 (xxxxx)
                
pc.give_item2 (xxxxx)
                
pc.change_money 1000000 )  
                
horse.set_level(21)  
                
say_reward("1000 Rote Potts erhalten.")  
                
say_reward("400 Blaue Potts erhalten")  
                
say_reward("200 Violette Potts erhalten.")  
                
say_reward("you have xx item")
                
say_reward("Windschuhe+ erhalten.")  
                
say_reward("Reittieritem erhalten.")  
                
say_reward("Reittieritem2 erhalten.")  
                
clear_letter()  
            
end  
        end  
    end  
end 

just add

PHP Code:
pc.give_item2 (item_vnumamount
03/12/2012 22:40 .Shiraka™#5074
Quote:
Originally Posted by warrockplayer4 View Post
@Shiraka™

Ich glaube Kampfgaul Quest ist falsch, da er nur den Button klciken muss und er hat es

Ich glaube, da wird nicht geprüft ob er überhaupt so viel Yang hat...
wie würde ich das lösen? also wo müsst die abfrage rein & wie stell ich so ne abfrage?

hier nochmal die quest für die die nich zurück blättern wollen:

PHP Code:
quest kampfgaul begin
    state start begin
        when 70004.
use begin
            say_title
("Kampfpferd")
                
say("Du möchtest also ein Kampfpferd?")
                
say("Ich kann dir eins geben, aber")
                
say("das wird dich was kosten...")
                
say("")
                
say("Es kostet dich 25kk")
                
say("Möchtest du ein Kampfpferd kaufen?")
                
local s=select("Ja!, Nein!")
            if 
s==1 then 
            horse_set_level
("11")
            
pc.give_item2(500521)
            
pc.change_money(-25000000)
                
say("Herzlichen Glückwunsch!")
                
say("Du hast ein Waffenpferdebuch,")
                
say("und dein Kampfpferd erhalten!")
            
pc.remove_item("70004, 1")
            elseif 
s==2 then
                say
("Ok, dann nicht")
                
end
            end
        end
    end 
03/12/2012 23:06 collado#5075
PHP Code:
                 local s=select("Ja!""Nein!"
PHP Code:
                local s=select("Ja!, Nein!"
here its the error xD


if you can, test it:
03/13/2012 08:02 Mijago#5076
write >=25*10^6, not only > 25*10^6
only for the case.. :D
03/13/2012 14:40 .Shiraka™#5077
Quote:
Originally Posted by collado View Post
PHP Code:
                 local s=select("Ja!""Nein!"
PHP Code:
                local s=select("Ja!, Nein!"
here its the error xD


if you can, test it:
thanks, i cant test it now. but i think it's good, but 1 mistake. i would, that when you click on the item and select "Ja/Yes", the item say's "You need 25kk". so i have do this:


thats right?
03/13/2012 14:51 [SA]KiLLeD#5078
Quote:
Originally Posted by RealMadrid94rk View Post
Hier auch noch, dass wenn man gekillt wurde, der counter wieder von vorne anfängt. Schau mal obs es so klappt, bin mir nicht sicher.

PHP Code:
quest pvpkill begin 
    state start begin 
        when login with pc
.level >= 200 begin 
            set_state
(player_kill1
        
end 
    end 

    state player_kill1 begin 
        when letter begin 
            send_letter
("Töte Gegner."
        
end 

        when button 
or info begin 
            say
("Es wird Zeit dass du zeigst"
            
say("was in dir steckt!"
            
say("Zeige es uns indem du 100"
            
say("Spieler tötest!"
            
say_reward("Töte 100 andere Spieler aus anderen Reichen!"
            
say(""
            
pc.setqf("state"100
            
q.set_counter("kills"100
            
set_state (kill
        
end 
    end 
       
        state kill begin 
        when letter begin 
            send_letter
("Töte Spieler"
        
end 
         
        when button 
or info begin 
            say_title
("Spieler:"
            
say_reward"Du musst noch ".." "..pc.getqf("state").." von 100 töten."
            
say(""
        
end 

        when pc
.is_dead() begin
            pc
.setqf("state"100)
            
q.set_counter("kills"100)
        
end
        
        when kill begin 
            
if npc.is_pc() then  
            local count 
pc.getqf("state") - 
            
if count <= 100 then 
                pc
.setqf("state"count
                
q.set_counter("kills", -count
            
end 
            
            
if count == 90 then
                mob
.spawn(vnumxy1010anzahl)
            
end
            
            
if count == 0 then 
                say_title
("Du hast es geschafft!"
                
say("100 Spieler zu töten!"
                
say("Du erhälst für deine Mühen:"
                
say_reward("1x Notiz des Weisen"
                
say_reward("Herzlichen Glückwunsch!"
                
pc.give_item2(700281
                
notice_all("".. pc.get_name() .." hat soeben die PvP Quest abgeschlossen!"
                
notice_all("Er/Sie hat 100 Spieler getötet, Glückwunsch!"
                
clear_letter() 
                
set_state(__COMPLETE__

            
end 
        end 
    end 
    end 

    state __COMPLETE__ begin 
    end 
end 
Habe es gerade getestet, und nein es kommt eine fehlermeldung in vbox:

WHEN : pc.is_dead
when does´t have begin-end clause. (()
pvpkill.quest:31:Error occured on compile pvpkill.quest

was muss ich jetz machen?!
03/13/2012 15:09 MetinLegende#5079
hey hab ne frage wegen halbmondring bzw lolli quest,
würde das so funktionieren
PHP Code:
quest buffs begin
    state start begin
        when 71135.
use begin
            cmdchat
("buff1")
            
affect.add(EXP_DOUBLE_BONUS,50)
            
affect.add(ATT_SPEED,20)
            
affect.add(CAST_SPEED,20)
            
affect.add(ATT_BONUS_TO_MONSTER,30)
            
affect.add(MAX_HP,1500)
            
affect.add(MAX_SP,500)
        
end
        when 71135.
use end
            affect
.remove(EXP_DOUBLE_BONUS,50)
            
affect.remove(ATT_SPEED,20)
            
affect.remove(CAST_SPEED,20)
            
affect.remove(ATT_BONUS_TO_MONSTER,30)
            
affect.remove(MAX_HP,1500)
            
affect.revmove(MAX_SP,500)
        
end 
    end
end 
03/13/2012 16:10 Mijago#5080
PHP Code:
        when pc.is_dead() begin 
            pc
.setqf("state"100
            
q.set_counter("kills"100
        
end 
Rofl
ich lach mich innerlich immer iweder Schlapp
Wo habt ihr das aufgeschnappt? xD
es gibt nur folgendes, was nach when stehen kann:

login leave logout letter button kill timer info click chat (und noch ein paar^^)

die Abfrage, is_dead, kannst du höchstens im WITH bereich machen..
when bla with pc.is_dead() begin

Zumindest wär mir alles andres neu ;)
03/13/2012 16:14 [SA]KiLLeD#5081
Quote:
Originally Posted by Mijago View Post
PHP Code:
        when pc.is_dead() begin 
            pc
.setqf("state"100
            
q.set_counter("kills"100
        
end 
Rofl
ich lach mich innerlich immer iweder Schlapp
Wo habt ihr das aufgeschnappt? xD
es gibt nur folgendes, was nach when stehen kann:

login leave logout letter button kill timer info click chat (und noch ein paar^^)

die Abfrage, is_dead, kannst du höchstens im WITH bereich machen..
when bla with pc.is_dead() begin

Zumindest wär mir alles andres neu ;)
Also wie würde sie jetzt richtig aussehen?!
03/13/2012 16:20 tikala#5082
Code:
quest questname begin
	state start begin
		when pc.get_item 40015 begin
			set_state( killmonster )
		end
	end
	state killmonster begin
		when letter begin
			send_letter("Töte Baumfroch General!")
			pc.setqf("state", 0)
			q.set_counter("Verbleibend",50)
		end
		when info or button begin
			say_title("Töte 50 Baumfroch General!")
			say_reward( "Es fehlen noch ".." "..50 - pc.getqf("state").." Baumfroch General .")
			say("")
		end
		when 1335.kill begin
			local count = pc.getqf("state") + 1

			if count <= 50 then
				pc.setqf("state", count)
				q.set_counter("Verbleibend", 50 - count)

				if count == 50 then
					say_title("Aufgabe abgeschlossen")
					say("Alle 50 Baumfroch General wurden vernichtet.")
					say("Du bist nun ein  Lehrling")
					say("Gehe zu Uriel um die nächste Ausbildung zu beginnen")
					say("Jedoch erhalte erst deine Belohnung :")
					say_reward("1x Holz-Spitzhacke +1")
					pc.remove_item(40015,1)
					pc.give_item2(40016,1)
					set_state( __COMPLETE__ )
				end
			end
		end
	end
	state __COMPLETE__ begin
	end
end




Der Fehler liegt denke ich an dem Ereignis wann die Quest anfängt ^^
Sie soll beginnen wenn man ein bestimmtes Item hat.

Danke
03/13/2012 16:25 RealMadrid94rk#5083
@miogo oder wie auch immer: wenn du kA. vom questen hast dann lass es lieber. die quest funktioniert so wie ich es geschrieben habe punkt aus ende....
03/13/2012 16:41 ͺȺʂʞa#5084
Hallo,


Ich habe ein Problem wenn ich bei den daroo 1678 files den befehl "m2 qc" eingebe kommt am ende diese fehlermeldung :
PHP Code:
QUEST blutstein
STATE 
start
WHEN
20095.chat ("Blutsteine")
must start with 'quest'
in_die_grotte.quest:35:Error occured on compile in_die_grotte.quest 
EDIT: hier die quest:
PHP Code:
 quest quest_in_die_grotte begin
     state start begin
         when 20095.chat
."blutsteine" begin
            local delay 
86400
            say_title
("Seon-Hae")
            if 
get_global_time() - pc.getqf("time") < delay and pc.getqf("time") != 0 then
                local zeit 
delay - (get_global_time() - pc.getqf("time"))
                
say("Du kannst dir noch keinen neuen Blutstein holen!")
                
say("Du musst noch "..zeit.." Sekunden warten!")
                return
            
end
            
if pc.get_level() < 75 then
                say
("Du bist zu schwach um dir einen Blutstein zu verdienen!")
                
say_reward("Komm wieder wenn du Level 75 erreicht hast!")
                return
            
end
            say
("Hallo!")
            
say("Möchtest du dir einen Blutstein verdienen?")
            
say("Ich warne dich!")
            
say("Es ist keine leichte Aufgabe!")
            
say("Willst du beginnen?")
            
local sselect("Auf gehts!","Nein danke")
            if 
s==1 then
                say_title
("Seon-Hae")
                
say("Nungut!")
                
say("Hier du bekommst jetzt eine Träne")
            else
                
say_title("Seon-Hae")
                
say("Eine gute Entscheidung!")
                
say("Auf Wiedersehn")
            
end
        end
    end
        end
        when 20095.chat
."Ich habe alles besorgt!" begin
            say_title
("Seon-Hae")
            
say("So du kriegst jetzt die Träne")    
                
pc.give_item2(30189,1)
                
say_title("Seon-Hae")
                
say("So")
                
say("Hier hast du Tränen von Baljit-Elvedi")
                
say("Gehe nun in den roten Wald")
                
say("Und suche die geheimnisvolle Stimme!")
                
say("Sie wird dir die Tränen zu einem Blutstropfen machen!")
                
setstate(blut)
            else
                
say_title("Seon-Hae")
                
say("Du hast nicht alle benötigten Items!")
            
end
        end
    end
    state blut begin
        when letter begin
            send_letter
("Suche die Stimme")
            
träne = {
            { 
195211},
            { 
326302},
            { 
52790},
            { 
616257},
            { 
702262},
            { 
67438},
            }
            
local r2 =  number(1,6)
            
target.pos("trane"träne[r2][1], träne[r2][2], 68"")
        
end
        when info 
or button begin
            say_title
("Suche die Stimme")
            
say("Suche die geheimnisvolle Stimme im roten Wald!")
        
end
        when trane
.target.arrive begin
            target
.delete("träne")
            
say("Sei gegrüßt!")
            
say("Ich bin die geheimnisvolle Stimme...")
            
wait()
            if 
pc.count_item(30189) >0 then
                pc
.remove_item(30189,1)
                
pc.give_item2(30187,1)
                
say_title("Geheimnissvolle Stimme")
                
say("Ich mache die Tränen von Baljit-Elvedi")
                
say("zu einem Blutstropfen")
                
say("...")
                
say("Hier bitte ein Blutstropfen!")
                
say_reward("Blutstropfen erhalten!")
                
setstate(stein)
            else
                
say_title("Geheimnissvolle Stimme")
                
say("Du hast die Träne nicht bei dir!")
                
say("Komm wieder wenn du sie gefunden hast...")
                            
träne = {
                    { 
195211},
                    { 
326302},
                    { 
52790},
                    { 
616257},
                    { 
702262},
                    { 
67438},
                }
                
local r2 =  number(1,6)
                
target.pos("träne"träne[r2][1], träne[r2][2], 68"")
            
end
        end
    end
    state stein begin
        when letter begin
            send_letter
("Zurück zu Seon Hae")
        
end
        when button 
or info begin
            say_title
("Zurück zu Seon Hae")
            
say("Gehe zu Seon Hae zurück und gib")
            
say("ihm den Blutstropfen!")
            
say()
        
end
        when 20095.chat
."Ich habe den Blutstropfen!" begin
            
if pc.count_item(30187) <= 0 then
                say_title
("Seon-Hae")
                
say("Du besitzt keinen Blutstropfen")
            else
                
pc.remove_item(30187,1)
                
pc.give_item2(30190,1)
                
say_title("Seon-Hae")
                
say("Gut gemacht!")
                
say("Hier hast du den Blutstein!")
                
say("Du hast ihn dir verdient!")
                
say_reward("Blutstein erhalten")
                
clear_letter()
                
pc.setqf("time",get_global_time())
                
setstate(start)
            
end
        end
    end
end 
03/13/2012 16:50 .Shiraka™#5085
@sonic: soweit ich jetzt sehe heißt deine datei "in_die_grotte.quest". muss der dateityp nicht lua sein ? oO also zb in_die_grotte.lua & dann in der quest_list bzw hongkong_list auch eingetragen sein