[SERVICE] Die Questkontrolle

09/28/2013 13:20 ©Fitchi#9046
das mit der Pet-Quest hat sich erledigt, danke trz :)
09/29/2013 20:40 BashYouTime#9047
Hallo ich hab ne Reittier Quest und zwar diese hier:
Code:
quest reittier1 begin 
    state start begin 
        when 71114.use begin  
                chat("Du reitest nun den Schwarzen Löwen.") 
				horse.ride()
				pc.mount(20118,9999) 
        end 
    end 
end
Jetzt wollte ich fragen wie man einfügt das man wenn man aufsteigt
einen Bonus dazu bekommt & wenn man absteigt ihn wieder verliert??
Wäre Cool, wenn mir einer helfen könnte!!


lg!
09/29/2013 20:50 [Castro]#9048
Quote:
Originally Posted by BashYouTime View Post
Hallo ich hab ne Reittier Quest und zwar diese hier:
Code:
quest reittier1 begin 
    state start begin 
        when 71114.use begin  
                chat("Du reitest nun den Schwarzen Löwen.") 
				horse.ride()
				pc.mount(20118,9999) 
                               affect.add_collect(apply.ATT_BONUS_TO_MONSTER,5,60*60*24*365*60) -- DEN BONUS MUSST DU ÄNDERN so: (BONUS, WERT, ZEIT)
        end 
    end 
end
Jetzt wollte ich fragen wie man einfügt das man wenn man aufsteigt
einen Bonus dazu bekommt & wenn man absteigt ihn wieder verliert??
Wäre Cool, wenn mir einer helfen könnte!!


lg!
siehe oben, versuchs mal so:D

Wenn du willst das der Bonus beim absteigen weg geht musst du das halt noch dazu schreiben.
09/29/2013 20:53 BashYouTime#9049
Quote:
Originally Posted by [Castro] View Post
siehe oben, versuchs mal so:D

Wenn du willst das der Bonus beim absteigen weg geht musst du das halt noch dazu schreiben.
Perfekt danke,
ehm da sind doch jetzt 5% monster drauf oder verstehe ich das richtig?

Code:
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,5,60*60*24*365*60) -- DEN BONUS MUSST DU ÄNDERN so: (BONUS, WERT, ZEIT)
Code:
5,60*60*24*365*60
Verstehe es ned so ganz sorry :D

Und wie geht der Bonus beim absteigen weg? was muss ich da dazu schreiben?
09/29/2013 21:05 [Castro]#9050
ja das ist 5% gegen monster :) Für die Boni IDs einfach in DB schauen oder hier die SuFu nutzen.

Mit absteigen gehts so:

PHP Code:
quest reittier1 begin 
    state start begin 
        when 71114.
use begin
            
if pc.getqf("mount_ride") == 0 then
                chat
("Du reitest nun den Schwarzen Löwen."
                
horse.ride()
                
pc.mount(20118,9999
                
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,5,60*60*24*365*60)
                
pc.setqf("mount",1)
            else
                
chat("Dein Mount verabschieded sich!")
                
pc.unmount()
                
affect.remove_collect(apply.ATT_BONUS_TO_MONSTER560*60*24*365*60)
            
end
        end 
    end 
end 

das
PHP Code:
60*60*24*365*60 
ist die Zeit. 60 sek X 60 min X 24H X 365 Tage X 60 Jahre --> Das dient dazu das der Effekt da bleibt und nicht nach einer Sekunde weggeht.
09/29/2013 21:19 BashYouTime#9051
Quote:
Originally Posted by [Castro] View Post
ja das ist 5% gegen monster :) Für die Boni IDs einfach in DB schauen oder hier die SuFu nutzen.

Mit absteigen gehts so:

PHP Code:
quest reittier1 begin 
    state start begin 
        when 71114.
use begin
            
if pc.getqf("mount_ride") == 0 then
                chat
("Du reitest nun den Schwarzen Löwen."
                
horse.ride()
                
pc.mount(20118,9999
                
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,5,60*60*24*365*60)
                
pc.setqf("mount",1)
            else
                
chat("Dein Mount verabschieded sich!")
                
pc.unmount()
                
affect.remove_collect(apply.ATT_BONUS_TO_MONSTER560*60*24*365*60)
            
end
        end 
    end 
end 

das
PHP Code:
60*60*24*365*60 
ist die Zeit. 60 sek X 60 min X 24H X 365 Tage X 60 Jahre --> Das dient dazu das der Effekt da bleibt und nicht nach einer Sekunde weggeht.
EDIT:

Es geht nicht, wenn ich absteige hab ich den boni noch immer, wenn ich aufsteig grieg ich ihn Nochmal dazu, und so weiter, da kann man sich den boni hoch pushen, das ist ja nicht Sinn & Zweck der Sache !

QuesT:
Code:
quest reittier1 begin 
    state start begin 
        when 71114.use begin
            if pc.getqf("mount_ride") == 0 then
                chat("Du reitest nun den Schwarzen Löwen.") 
		chat("Solang du auf ihm sitzt hast du ")
		chat("250 mehr Angriffswert.")
                horse.ride()
                pc.mount(20118,9999) 
                affect.add_collect(apply.ATT_GRADE_BONUS, 250, 60*60*24*365*60)
                pc.setqf("mount",1)
				
            else
                chat("Dein Mount verabschieded sich!")
                pc.unmount()
                affect.remove_collect(apply.ATT_GRADE_BONUS, 250, 60*60*24*365*60)
            end
        end 
    end 
end
(250 Angriffswert)
& Das:
Code:
 chat("Dein Mount verabschieded sich!")
Kommt auch nicht wenn ich absteige!!!

HILFE BITTE!!
09/30/2013 02:34 PlayaStylee#9052
Hallo Bin auf der Suche Nacht Automatische Chatblock quest der automatisch von db denn banwort ausliest und dann automatisch cb verpasst für 15 min gibt es denn sowas wenn ja Kann mir einer geben wäre echt nett von euch BITTE BITTE
09/30/2013 07:32 Mijago#9053
BashYou: probiers mit when unmount begin zum absetzen
Playa: möglich mit einem Server_loop_timer pro core, wenn man es geschickt anstellt
09/30/2013 12:43 [Castro]#9054
Quote:
Originally Posted by BashYouTime View Post
EDIT:

Es geht nicht, wenn ich absteige hab ich den boni noch immer, wenn ich aufsteig grieg ich ihn Nochmal dazu, und so weiter, da kann man sich den boni hoch pushen, das ist ja nicht Sinn & Zweck der Sache !

QuesT:
Code:
quest reittier1 begin 
    state start begin 
        when 71114.use begin
            if pc.getqf("mount_ride") == 0 then
                chat("Du reitest nun den Schwarzen Löwen.") 
		chat("Solang du auf ihm sitzt hast du ")
		chat("250 mehr Angriffswert.")
                horse.ride()
                pc.mount(20118,9999) 
                affect.add_collect(apply.ATT_GRADE_BONUS, 250, 60*60*24*365*60)
                pc.setqf("mount",1)
				
            else
                chat("Dein Mount verabschieded sich!")
                pc.unmount()
                affect.remove_collect(apply.ATT_GRADE_BONUS, 250, 60*60*24*365*60)
            end
        end 
    end 
end
(250 Angriffswert)
& Das:
Code:
 chat("Dein Mount verabschieded sich!")
Kommt auch nicht wenn ich absteige!!!

HILFE BITTE!!
Es geht deshalb nicht weil die Questflags verschiedene namen haben "mount_ride" & "mount"

Probier mal das:
PHP Code:
quest reittier1 begin 
    state start begin 
        when 71114.
use begin
            
if pc.getqf("mount_ride") == 0 then
                chat
("Du reitest nun den Schwarzen Löwen."
        
chat("Solang du auf ihm sitzt hast du ")
        
chat("250 mehr Angriffswert.")
                
horse.ride()
                
pc.mount(20118,9999
                
affect.add_collect(apply.ATT_GRADE_BONUS25060*60*24*365*60)
                
pc.setqf("mount_ride",1)
                
            else
                
chat("Dein Mount verabschieded sich!")
                
pc.unmount()
                
affect.remove_collect(apply.ATT_GRADE_BONUS25060*60*24*365*60)
                
pc.setqf("mount_ride",0)
            
end
        end 
    end 
end 
09/30/2013 19:49 BashYouTime#9055
Super, danke jetzt gehts.
09/30/2013 21:14 [Castro]#9056
Quote:
Originally Posted by BashYouTime View Post
Super, danke jetzt gehts.
kein Ding :) Mach ich gerne!
10/01/2013 11:05 x3Schaufelx3#9057


Also,
Ich dies is die Originale Metin2.de Quest für das Kampf Pferd.

Es geht jetz darum ich möchte gerne die Zeit dort raus haben,sprich man muss ja 8Stunden Warten,das soll raus,man soll sofort Das KG + Kg Buch bekommen :) Kann mir jemand die abändern?
10/01/2013 12:34 .Inya#9058
Quote:
Originally Posted by x3Schaufelx3 View Post


Also,
Ich dies is die Originale Metin2.de Quest für das Kampf Pferd.

Es geht jetz darum ich möchte gerne die Zeit dort raus haben,sprich man muss ja 8Stunden Warten,das soll raus,man soll sofort Das KG + Kg Buch bekommen :) Kann mir jemand die abändern?
PHP Code:
quest horse_upgrade begin
    state start begin
        when 20349.chat
."Ich möchte mein Pferd verbessern" with horse.get_grade() == and horse.get_level() == 10 begin
            
if horse.is_dead() then
                say_title
("Stallbursche:")
                
say("")
                
say("Du kannst ein totes Pferd nicht verbessern!")
                
say("Besorge ein Kraut der leichten Affen, dann kann ich dein")
                
say("Pferd wiederbeleben.")
                
say("")
                
say_item_vnum(50057)
                
say("Dann können wir über die Verbesserung deines Pferdes reden.")
                
say("")
            elseif 
pc.get_level() < 35 then
                say_title
("Stallbursche:")
                
say("")
                
say("Dein Level ist zu gering, um dein Pferd zu verbessern.")
                
say("Erst nachdem du das Level 35 erreicht hast, kann ich")
                
say("dein Pferd verbessern.")
                
say("Komme wieder, wenn du Level 35 erreicht hast.")
                
say("")
            elseif 
horse.get_level() < 10 then
                say_title
("Stallbursche:")
                
say("")
                
say("Das Level deines Pferdes ist zu gering.")
                
say("")
                
say("Geh und trainiere dein Pferd weiter, bis es Level 10")
                
say("erreicht hat. Danach kannst du wiederkommmen.")
                
say("")
            elseif 
pc.count_item(50050) < 1 then
                say_title
("Stallbursche:")
                
say("")
                
say("Wenn du dein Pferd verbessern möchtest, benötigst du")
                
say("eine Pferdemedaille.")
                
say("Du kannst diese in den Affendungeons bekommen.")
                
say("")
                
say_item_vnum(50050)
                
say("Natürlich werden es dir die Affen nicht leicht machen.")
                
say("")
                
set_state(pm_needed)
            elseif 
pc.count_item(50051) < 1 then
                say_title
("Stallbursche:")
                
say("")
                
say("Ich möchte dir das nicht zweimal sagen:")
                
say("")
                
say_item_vnum(50051)
                
say("Du benötigst eine Reitlizenz, wenn du reiten möchtest.")
                
say("")
            elseif 
horse.get_level() == 10 and not horse.is_dead() and pc.count_item(50050) >= and pc.get_level() >= 35 then
                say_title
("Stallbursche:")
                
say("")
                
say("Wenn du das Waffen-Pferdebuch hast, kannst du deine")
                
say("Gegner vom Rücken deines Pferdes angreifen. Ich werde")
                
say("deine Kampferfahrung und deine Reitkunst testen.")
                
say("Geh in die Wüste und töte einige Skorpionbogenschützen")
                
say("oder Schlangenbogenschützen.")
                
say("")
                
say("Du darfst diese Aufgabe in einer Gruppe erledigen, aber")
                
say("du musst der Gruppenführer sein.")
                
say("")
                
local b select("Annehmen""Ablehnen")
                if 
== b then
                    
if pc.count_item(50050) >= 1 then
                        pc
.remove_item(500501)
                        
set_state(test)
                    
end
                
elseif == b then
                    say
("Okay, komme später wieder.")
                else
                    
say("UNBEKANNTER BUTTON ["..b.."]")
                
end
            
else
                
say_title("Stallbursche:")
                
say("")
                
say("Ich denke, dass du das Waffen-Pferdebuch nicht bekommen")
                
say("kannst. Das ist seltsam. Ich weiss nicht warum.")
                
say("Du solltest einen Game Master fragen, warum.")
                
say("")
            
end
        end
    end
    state pm_needed begin
        when letter begin
            setskin
(NOWINDOW)
            
makequestbutton("Besorge eine Pferdemedaille")
            
q.set_title("Besorge eine Pferdemedaille!")
            
q.start()
        
end
        when button 
or info begin
            say_title
("Besorge eine Pferdemedaille!")
            
say("")
            
say("Du benötigst eine Pferdemedaille um die Waffen-Pferdebuch")
            
say("Quest zu starten.")
            
say("")
            
say_item_vnum(50050)
            
say("Du kannst sie in den Affendungeons finden.")
            
say("")
            
set_state(start)
            
q.done()
        
end
    end
    state test begin
        when letter begin
            q
.set_counter("Verbleibende Bogenschützen"100 pc.getqf("kill_count"))
        
end
        when 2105.party_kill begin
            pc
.setqf("kill_count"pc.getqf("kill_count")+1)
            
q.set_counter("Bogenschützen übrig:"100 pc.getqf("kill_count"))
            if 
get_time() >= pc.getqf("limit_time"then
                set_state
(fail)
            
end
        end
        when 2107.party_kill begin
            pc
.setqf("kill_count"pc.getqf("kill_count")+1)
            
q.set_counter("Bogenschützen übrig:"100 pc.getqf("kill_count"))
            if 
get_time() >= pc.getqf("limit_time"then
                set_state
(fail)
                
q.done()
            
end
        end
        when letter begin
            q
.set_clock("Verbleibende Zeit"pc.getqf("limit_time") - get_time())
        
end
        when enter begin
            pc
.setqf("limit_time"get_time() + 30*60)
            
pc.setqf("kill_count"0)
        
end
        when leave begin
            q
.done()
        
end
        when letter begin
            setskin
(NOWINDOW)
            
makequestbutton("Waffen-Pferdebuch Test")
            
q.set_title("Waffen-Pferdebuch Test")
            
q.start()
        
end
        when button 
or info begin
            say_title
("Waffen-Pferdebuch Test")
            
say("")
            
say("Töte 100 Skorpion- oder Schlangenbogenschützen in 30 Minuten")
            
say("und berichte es anschließend dem Stallburschen.")
            
say("")
            
say("Du kannst Hilfe deiner Gruppe bekommen, falls du der Gruppen-")
            
say("führer bist.")
            
say("")
        
end
        when 2105.party_kill with pc
.getf("horse_upgrade","kill_count") >= 100 and pc.getf("horse_upgrade","limit_time")>=get_time() begin
            setstate
(report)
        
end
        when 2107.party_kill with pc
.getf("horse_upgrade","kill_count") >= 100 and pc.getf("horse_upgrade","limit_time")>=get_time() begin
            setstate
(report)
        
end
        when 20349.chat
."Fortschritt des Waffen-Pferdebuch Tests" begin
            say_title
("Stallbursche:")
            
say("")
            
say("Töte 100 Skorpion- oder Schlangenbogenschützen in 30 Minuten")
            
say("und berichte es anschließend dem Stallburschen.")
            
say("")
            
say("Du kannst Hilfe deiner Gruppe bekommen, falls du der Gruppen-")
            
say("führer bist.")
            
say("")
            
local b select("Weiter""Abbrechen")
            if 
== b then
            
elseif == b then
                say_title
("Stallbursche:")
                
say("")
                
say("Bist du dir sicher, dass du die Mission abbrechen willst?")
                
local b select("Ja""Das war nur ein Witz!")
                if 
== b then
                    say_title
("Stallbursche:")
                    
say("")
                    
say("Okay, viel Glück, das nächste mal.")
                    
say("")
                    
set_state(start)
                    
q.done()
                elseif 
== b then
                    say_title
("Stallbursche:")
                    
say("")
                    
say("Du hast dafür keine Zeit!")
                    
say("")
                    
say("Geh und töte so schnell wie möglich 100 Skorpion- oder Schlangen-")
                    
say("bogenschützen.")
                    
say("")
                else
                    
say("UNBEKANNTER BUTTON ["..b.."]")
                
end
            
else
                
say("UNBEKANNTER BUTTON ["..b.."]")
            
end
        end
    end
    state report begin
        when letter begin
            setskin
(NOWINDOW)
            
makequestbutton("Zurück zum Stallburschen")
            
q.set_title("Zurück zum Stallburschen")
            
q.start()
        
end
        when button 
or info begin
            say_title
("Zurück zum Stallburschen")
            
say("")
            
say("Gebe dem Stallburschen eine Rückmeldung der Testresultate.")
            
say("")
        
end
        when 20349.chat
."Waffen-Pferdebuch Quest-Report" with horse.get_grade() != 1 begin
            set_state
(start)
            
q.done()
        
end
        when 20349.chat
."Waffen-Pferdebuch Quest-Report" with horse.get_grade() == 1 begin
            say_title
("Stallbursche:")
            
say("")
            
say("Gut gemacht.")
            
say("Für die Verbesserung deines Pferdes brauche ich einige")
            
say("Zeit. Warum kommst du nicht morgen nocheinmal? Ãœbrigens,")
            
say("die Herstellung kostet 500.000 Yang.")
            
say("")
            
set_state(buy)
        
end
    end
    state wait begin
        when letter begin    
            setskin
(NOWINDOW)
            
makequestbutton("Warten auf das Waffen-Pferdebuch")
            
q.set_title("Warten auf das Waffen-Pferdebuch")
            
q.start()
        
end
        when button 
or info begin
            say_title
("Warten auf das Waffen-Pferdebuch")
            
say("")
            
say("Warte bis der Stallbursche das Waffen-Pferdebuch")
            
say("hergestellt hat. Die Herstellung sollte zwischen")
            
say("8 und 16 Stunden dauern.")
            
say("")
        
end
        when login with get_time
() >= pc.getqf("horse_upgrade""make_time"begin
            set_state
(buy)
        
end
        when 20349.chat
."Verbessere deinen Pferdestatus" with horse.get_grade() != 1 begin
            set_state
(start)
            
q.done()
        
end
        when 20349.chat
."Ist die Lizenz fertig?" with horse.get_grade() == 1 begin
            say_title
("Stallbursche:")
            
say("")
            
say("Es tut mir leid, aber du musst noch ein bisschen")
            
say("warten. Und vergiss nicht:")
            
say("")
            
say("Du brauchst 500.000 Yang für das Waffen-Pferdebuch.")
            
say("")
        
end
    end
    state buy begin
        when letter begin
            setskin
(NOWINDOW)
            
makequestbutton("Gehe zum Stallburschen")
            
q.set_title("Gehe zum Stallburschen")
            
q.start()
        
end
        when button 
or info begin
            say_title
("Gehe zum Stallburschen")
            
say("")
            
say("Gehe zum Stallburschen und hole dein Waffen-Pferdebuch.")
            
say("")
            
say_item_vnum(50052)
            
say("Du brauchst 500.000 Yang.")
            
say("")
        
end
        when 20349.chat
."Verbessere deinen Pferdestatus" with horse.get_grade()!=1 begin
            setstate
(start)
            
q.done()
        
end
        when 20349.chat
."Verbessere deinen Pferdestatus" with horse.get_grade()==and horse.get_level()!=10 begin
            setstate
(start)
            
q.done()
        
end
        when 20349.chat
."Die Lizenz ist fertig!" with horse.get_grade() == and horse.get_level() == 10 begin
            say_title
("Stallbursche:")
            
say("")
            
say("Wenn du das Waffen-Pferdebuch hast, kannst du")
            
say("schneller reiten und währenddessen angreifen.")
            
say("")
            
say("Wenn du 500.000 Yang dabei hast, kann ich dir")
            
say("das Waffen-Pferdebuch aushändigen.")
            
say("")
            
local b select("Ich habe das Geld""Ich habe es nicht")
            if 
== b then
                
if pc.get_money >= 500000 then
                    
if pc.count_item(50051) >= 1 then
                        pc
.changemoney(-500000)
                        
pc.remove_item(500511)
                        
horse.unride()
                        
horse.advance()
                        
horse.ride()
                        
pc.give_item2(500521)
                        
say_title("Stallbursche:")
                        
say("")
                        
say("Pass auf das Pferdebuch auf. Wenn du es verlierst,")
                        
say("musst du dir ein neues kaufen.")
                        
say("")
                        
set_state(start)
                        
q.done()
                    else
                        
say_title("Stallbursche:")
                        
say("")
                        
say("Du brauchst das Pferdebild.")
                    
end
                
else
                    
say_title("Stallbursche:")
                    
say("")
                    
say("Du brauchst 500.000 Yang.")
                
end
            
elseif == b then
                say_title
("Stallbursche:")
                
say("")
                
say("Komm wieder, wenn du das Geld hast.")
                
say("")
            else
                
say("UNBEKANNTER BUTTON ["..b.."]")
            
end
        end
    end
    state fail begin
        when letter begin
            setskin
(NOWINDOW)
            
makequestbutton("Zeit um!")
            
q.set_title("Zeit um!")
            
q.start()
        
end
        when button 
or info begin
            say_title
("Zeit um!")
            
say("")
            
say("Leider hast du es nicht geschafft, die 50")
            
say("Bogenschützen zu töten. Du hast den Test nicht")
            
say("bestanden.")
            
say("")
            
say("Wenn du es nocheinmal versuchen möchtest, besorge")
            
say("eine neue Pferdemedaille und gehe zurück zum")
            
say("Stallburschen.")
            
say("")
            
set_state(start)
            
q.done()
        
end
    end
    state __COMPLETE__ begin
        when enter begin
            q
.done()
        
end
    end
end 
10/01/2013 14:37 x3Schaufelx3#9059
Die is Fehler haft,

Es liegt hier dran

PHP Code:
local t number(1224)
            
pc.setqf("horse_upgrade"t*60*60)
            
set_state(wait
Is jz aus der Originalen Quest,wenn ich aber die 60*60 ändere wird die Quest nich angezeigt,also wie vile man noch töten muss
10/01/2013 16:50 sven12345#9060
PHP Code:
quest shop2 begin
    state start begin
    
        when 9002.chat
."Ruestungen" begin
            npc
.open_shop(12)
        
setskin(NOWINDOW)
        
end

        when 9002.chat
."Schmuck" begin
             npc
.open_shop(13)
        
setskin(NOWINDOW)
        
end
    end
end 
Funktioinert bei mir nicht, in Navicat wurden 12/13 im shop festgelegt was da dabei ist. Wenn ich aber die Quests starte (m2 qc)
Kommt immer nur error occured ...