[SERVICE] Die Questkontrolle

01/27/2011 19:19 ***Marcel***#1336
Hallo liebe epvpers

Kann mir mal einer helfen ich möchte gerne diese 2 Quest´s
zum laufen bringen

Bei dieser Quest wollte ich eine Funktion ganz untern machen
das unseren GM´s verschiedene Npc´s ruft diese sollen aber nach 3-5min selber verschwinden Ganz unten in Rot ist von Mir =(


Würde mich sehr freuen wenn da jemand der mehr ahnung hat mal
drüber schauen kann :(:(:(

LG: Dragon
01/27/2011 21:28 ~shaylan~#1337
so, DragonFightServer

PHP Code:
quest gm_liste begin
    state start begin
        when 20352.chat
."GM Liste" begin
            say_title
("GM Liste")
            
say("")
            
say("Hier sind alle Team-Mitglieder die")
            
say("Online sind aufgelistet!")
            
say("Wenn ihr einen anschreiben wollt, dann")
            
say("vergisst nicht die 2 Klammern um")
            
say("das SA, DEV, GA, GM, TGM, Mod")
            
say_reward("Online ist : ")
            
say("")
            
            if 
game.get_event_flag("[SA]Dre4m")== 1 then
                say_reward
("[SA]Dre4m ist Online")
            
end
            
            
if game.get_event_flag("[DEV]Marcel")== 1 then
                say_reward
("[DEV]Marcel ist Online")
            
end
            
            
if game.get_event_flag("[GM]astraG")== 1 then
                say_reward
("[GM]astraG ist Online")
            
end
            
            
if game.get_event_flag("[GM]Exatro")== 1 then
                say_reward
("[GM]Exatro ist Online")
            
end
            
            
if game.get_event_flag("[SA]Dre4m")==and game.get_event_flag("[DEV]Marcel")==and game.get_event_flag("[GM]astraG")==and game.get_event_flag("[GM]Exatro")==0 then
                say_reward
("Zurzeit ist kein Team-Mitglied online!")
            
end
        end
    end
end 
Es fehlte ein end (finde ich i-wie gerne :D)
ich empfehle dir die quest immer so wie im phpcode einzurücken, da siehst du wo ein end fehlt bzw. wo es hin muss.
Dir ist hoffentlich auch klar das ein gegenstück zu der quest noch fehlt? ^^

################################################## ##

Für .remiinD

tausche einfach noch das npc.chat usw. wieder gg dein item aus.
der hatte nen problem mit >=
kann man auch anders schreiben.
statt >= 80
einfach nur > 79
selber effekt :)
nur es geht :P

Grüße
01/27/2011 21:56 ***Marcel***#1338
Ich danke dir Vielmals super arbeit =)
01/27/2011 22:44 Legend2007#1339
Quote:
Originally Posted by Legend2007 View Post
Hey Com,

Hier mal meine quest womit Ich ein problem hab...

PHP Code:
quest pony_buy_pvp begin
    state start begin
        when 20349.chat
."Horse" with horse.get_grade()==and pc.level >= 25 begin
            say
("So you want a Horse to travel faster?")
            
say("Then show me what you can!")
            
say("Prove me that you are worth it by")
            
say("killing 10 Players of another Kingdom!")
            
say_reward("Kill 10 Players of another Kingdom!")
            
say("")
            
set_state(player_kill1)
        
end
    end

    state player_kill1 begin 
        when letter begin
            send_letter
("Kill enemies of other Kingdoms")
        
end

        when button 
or info begin
            say
("So you want a Horse to travel faster?")
            
say("Then show me what you can!")
            
say("Prove me that you are worth it by")
            
say("killing 10 Players of another Kingdom!")
            
say_reward("Kill 10 Players of another Kingdom!")
            
say("")
            
pc.setqf("state"10)
            
q.set_counter("kills"10)
            
set_state (kills2)
        
end
    end
      
    state kills2 begin
        when letter begin
            send_letter
("Kill players")
        
end
        
        when button 
or info or letter begin
            say_title
("Stable Boy:")
            
say_reward"You have "..pc.getqf("state").." Players left to kill.")
            
say("")
        
end

        when kill begin
            
if npc.is_pc() and npc.empire != pc.empire then 
            local count 
pc.getqf("state") - 1
            
if count <= 10 then
                pc
.setqf("state"count)
                
q.set_counter("kills", -count)
            
end
            
if count == 0 then
                target
.vid("__TARGET__"20349"")
                
set_state(reward)
            
end
        end

        when TARGET
.click with horse.get_grade()==and pc.level >= 25 begin 
            
if pc.getqf("state") - <= 0 then
                say_title
("Congratulation!")
                
say("You proved to be courageous and strong!")
                
say("You deserve to be rewarded.")
                
say("Here, take this.")
                
say_reward("Level 1 Pony")
                
say_reward("500.000 Gold")
                
say_reward("1.000.000 EXP")
                
pc.change_money(500000)
                
pc.give_item2(500511)
                
pc.give_exp2(1000000)
                
horse.advance()
                
horse.summon()
                
clear_letter()
                
set_state(__COMPLETE__)
            
end
        end
    end 

    state __COMPLETE__ begin
    end
end 
Beim compilen dieser quest bekomme Ich diesen Fehler:
PHP Code:
syntax error : [string "kills2"]:12unexpected symbol near `when´
pony_buy_pvp.quest:74:Abort trap (core dumped)
Error occured on compile pony_buy_pvp.quest 
Was ist falsch? Ich sehe da keine falsche "symbole" neben kein "when"..

Danke im voraus.
Legend
Brauch immernoch hilfe mit meiner quest. Krieg's nicht gebacken -_x

Danke im voraus ._.
Legend
01/28/2011 00:26 .remiinD#1340
Mach mal bei set_state (kills2) das leerzeichen zwischen dem set_state und (kills2) weg!

also:#
PHP Code:
quest pony_buy_pvp begin 
    state start begin 
        when 20349.chat
."Horse" with horse.get_grade()==and pc.level >= 25 begin 
            say
("So you want a Horse to travel faster?"
            
say("Then show me what you can!"
            
say("Prove me that you are worth it by"
            
say("killing 10 Players of another Kingdom!"
            
say_reward("Kill 10 Players of another Kingdom!"
            
say(""
            
set_state(player_kill1
        
end 
    end 

    state player_kill1 begin  
        when letter begin 
            send_letter
("Kill enemies of other Kingdoms"
        
end 

        when button 
or info begin 
            say
("So you want a Horse to travel faster?"
            
say("Then show me what you can!"
            
say("Prove me that you are worth it by"
            
say("killing 10 Players of another Kingdom!"
            
say_reward("Kill 10 Players of another Kingdom!"
            
say(""
            
pc.setqf("state"10
            
q.set_counter("kills"10
            
set_state(kills2
        
end 
    end 
       
    state kills2 begin 
        when letter begin 
            send_letter
("Kill players"
        
end 
         
        when button 
or info or letter begin 
            say_title
("Stable Boy:"
            
say_reward"You have "..pc.getqf("state").." Players left to kill."
            
say(""
        
end 

        when kill begin 
            
if npc.is_pc() and npc.empire != pc.empire then  
            local count 
pc.getqf("state") - 
            
if count <= 10 then 
                pc
.setqf("state"count
                
q.set_counter("kills", -count
            
end 
            
if count == 0 then 
                target
.vid("__TARGET__"20349""
                
set_state(reward
            
end 
        end 

        when TARGET
.click with horse.get_grade()==and pc.level >= 25 begin  
            
if pc.getqf("state") - <= 0 then 
                say_title
("Congratulation!"
                
say("You proved to be courageous and strong!"
                
say("You deserve to be rewarded."
                
say("Here, take this."
                
say_reward("Level 1 Pony"
                
say_reward("500.000 Gold"
                
say_reward("1.000.000 EXP"
                
pc.change_money(500000
                
pc.give_item2(500511
                
pc.give_exp2(1000000
                
horse.advance() 
                
horse.summon() 
                
clear_letter() 
                
set_state(__COMPLETE__
            
end 
        end 
    end  

    state __COMPLETE__ begin 
    end 
end 
01/28/2011 08:19 .2good4you111#1341
PHP Code:
quest pony_buy_pvp begin 
    state start begin 
        when 20349.chat
."Horse" with horse.get_grade()==and pc.level >= 25 begin 
            say
("So you want a Horse to travel faster?"
            
say("Then show me what you can!"
            
say("Prove me that you are worth it by"
            
say("killing 10 Players of another Kingdom!"
            
say_reward("Kill 10 Players of another Kingdom!"
            
say(""
            
set_state(player_kill1
        
end 
    end 

    state player_kill1 begin  
        when letter begin 
            send_letter
("Kill enemies of other Kingdoms"
        
end 

        when button 
or info begin 
            say
("So you want a Horse to travel faster?"
            
say("Then show me what you can!"
            
say("Prove me that you are worth it by"
            
say("killing 10 Players of another Kingdom!"
            
say_reward("Kill 10 Players of another Kingdom!"
            
say(""
            
pc.setqf("state"10
            
q.set_counter("kills"10
            
set_state(kills2
        
end 
    end 
       
    state kills2 begin 
        when letter begin 
            send_letter
("Kill players"
        
end 
         
        when button 
or info or letter begin 
            say_title
("Stable Boy:"
            
say_reward"You have "..pc.getqf("state").." Players left to kill."
            
say(""
        
end 

        when kill begin 
            
if npc.is_pc() and npc.empire != pc.empire then  
            local count 
pc.getqf("state") - 
            
if count <= 10 then 
                pc
.setqf("state"count
                
q.set_counter("kills", -count
            
end 
            
if count == 0 then 
                target
.vid("__TARGET__"20349""
                
set_state(reward
            
end 
        end 

        when TARGET
.click with horse.get_grade()==and pc.level >= 25 begin  
            
if pc.getqf("state") == 0 then 
                say_title
("Congratulation!"
                
say("You proved to be courageous and strong!"
                
say("You deserve to be rewarded."
                
say("Here, take this."
                
say_reward("Level 1 Pony"
                
say_reward("500.000 Gold"
                
say_reward("1.000.000 EXP"
                
pc.change_money(500000
                
pc.give_item2(500511
                
pc.give_exp2(1000000
                
horse.advance() 
                
horse.summon() 
                
clear_letter() 
                
set_state(__COMPLETE__
            
end 
        end 
    end  

    state __COMPLETE__ begin 
    end 
end 
Versuchs mal so...


Sollte noch ein fehler drinnen sein, ist er hier. Habe aber gerade keinen Server zum testen.
PHP Code:
        when TARGET.click with horse.get_grade()==and pc.level >= 25 begin  
            
if pc.getqf("state") == 0 then 
                say_title
("Congratulation!"
                
say("You proved to be courageous and strong!"
                
say("You deserve to be rewarded."
                
say("Here, take this."
                
say_reward("Level 1 Pony"
                
say_reward("500.000 Gold"
                
say_reward("1.000.000 EXP"
                
pc.change_money(500000
                
pc.give_item2(500511
                
pc.give_exp2(1000000
                
horse.advance() 
                
horse.summon() 
                
clear_letter() 
                
set_state(__COMPLETE__
            
end 
        end 
01/28/2011 12:59 Legend2007#1342
Hab eure hinweise mal gefixt und ausprobiert, aber dann kam irgendwas mit assertion failed: nested==0 ... hab dann einfach mal die quest komplett neu geschrieben und jetzt wird sie auch fehlerfrei compiliert.. muss sie jedoch noch testen ob sie richtig funktioniert.

für wem es interessieren sollte:

Hab mich nun an einer weiteren quest gesetzt aber komme wieder nicht weiter.. wahrscheinlich hab ich die funktionen falsch eingesetzt oder was auch immer.. auf jeden fall "liest" die quest nicht fertigkeit levels nicht und somit wirkt sie nicht so wie ich sie wollte..

hier mal den code:

Was hab ich da falsch gemacht? Compilen geht einwandfrei >.>"

Danke im voraus
Legend
01/28/2011 16:12 FlyingHirsch31#1343
hey,
hat jemand mal die datei für die bioquest?
01/28/2011 21:57 ~shaylan~#1344
du musst schon genauer werden damit man dir helfen kann..
wenn du die quest ham willst, die ist in den instand serverfiles drinne.
einen [Only registered and activated users can see links. Click Here To Register...] gibts hier.
eine bioquest ohne zeit kannst du z.b. [Only registered and activated users can see links. Click Here To Register...] finden
umso genauer deine frage ist, desto genauer ist die antwort.

grüße
01/28/2011 21:59 Endless.#1345
Hier meine Gaulquest... Sehe da kein Core Dumped aber es passiert einfach nix
wenn man zum Stallburschen geht..

die Quest sollte so ablaufen..

1. Spieler geht zum Stallbursche mit oder ohne PM
2. Stallbursche nimmt dir die PM ab sobald man eine besitzt
und auch JA auswählt..
3. Wenn keine PM vorhanden.. wird man beauftragt
eerstmal eine zu holen.

PHP Code:

quest gaul begin
    state start begin
        when 20349.chat
."Pferd trainieren" begin
            
if pc.count_item(50050) >= 1 then
                say_title 
("Stallbursche: ")
                
say ("Sei gegrüsst "..pc.get_name().."!)
                say ("
Du kannst hier dein Pferd trainieren")
                say ("
und es somit zu einem Kampf oder Millitärs Pferd")
                say ("
trainierenDurch das Training steigt dein Pferd")
                say ("
immer 2 Level aufDies kannst du machen bis dein")
                say ("
Pferd Level 30 istallerdings kostet dich dies eine")
                say ("
Pferdemedallie...")
                say (" ")
                say_reward ("
Möchtest du dein Pferd trainieren?")
                local a = select ("
Ja", "Nein")
                if a == 1 then
                    chat ("
Du hast dein Pferd erfolgreich trainiert.")
                    horse.advance(2)
                    pc.remove_item(50050, 1)
                end
                if a == 2 then
                    return
                end
            end
            else if
                say_title ("
Stallbursche")
                say ("
Sei gegrüsst "..pc.get_name().."!")
                say ("
Ich trainiere Pferde bis sie voll")
                say ("
gut und belasstbar sindWenn du wllst")
                say ("
trainiere ich dein PferdEs kostet dich")
                say ("
eine Pferdemedallie für 2 LevelWas sagst du?")
                say ("
Bring mir einfach eine Pferdemedallie mit.")
            end
        end
    end
end 
Würde mich wirklich riesig freuen..wenn mir einer die Quest
richtig erklärt..zu fixxen..
möchte nämlich PM als ALternativdrop reinmachen
und dazu gehört auch..das man sein Pferd erfarmen muss:)
gebe natürlich nen Thanks:>

mfg

Endless;)
01/28/2011 22:04 CanbiZ#1346
PHP Code:
quest siegel begin
    state start begin
        when 71113.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20113,999999
        
end
        when 71114.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20110,999999
        
end
        when 71115.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20114,999999
        
end
        when 71116.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20111,999999
        
end
        when 71117.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20112,999999
        
end
        when 71118.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20116,999999
        
end
        when 71119.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20115,999999
        
end
        when 71120.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20117,999999
        
end
        when 71121.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20118,999999
        
end
        when 71122.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20119,999999
        
end
        when 71123.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20120,999999
        
end
    end
end 


Bleibt bei den quest das siegel immer da?
oder wie muss man das machen?
hab ihn noch nicht tested.
01/28/2011 22:52 .remiinD#1347
Quote:
Originally Posted by I34SH3R View Post
PHP Code:
quest siegel begin
    state start begin
        when 71113.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20113,999999
        
end
        when 71114.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20110,999999
        
end
        when 71115.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20114,999999
        
end
        when 71116.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20111,999999
        
end
        when 71117.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20112,999999
        
end
        when 71118.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20116,999999
        
end
        when 71119.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20115,999999
        
end
        when 71120.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20117,999999
        
end
        when 71121.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20118,999999
        
end
        when 71122.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20119,999999
        
end
        when 71123.
use begin 
            chat
("Du hast dein Reittier gerufen!")
            
pc.mount(20120,999999
        
end
    end
end 


Bleibt bei den quest das siegel immer da?
oder wie muss man das machen?
hab ihn noch nicht tested.

ja, wenn du das siegel nach em klicken entfernen möchtest musst du unter jedes pc.mount(...)
dashier setzten:

pc.remove_item([ItemVnum], [Wieviele])
01/28/2011 23:05 Legend2007#1348
Quote:
Originally Posted by xEndless View Post
Hier meine Gaulquest... Sehe da kein Core Dumped aber es passiert einfach nix
wenn man zum Stallburschen geht..

die Quest sollte so ablaufen..

1. Spieler geht zum Stallbursche mit oder ohne PM
2. Stallbursche nimmt dir die PM ab sobald man eine besitzt
und auch JA auswählt..
3. Wenn keine PM vorhanden.. wird man beauftragt
eerstmal eine zu holen.


Würde mich wirklich riesig freuen..wenn mir einer die Quest
richtig erklärt..zu fixxen..
möchte nämlich PM als ALternativdrop reinmachen
und dazu gehört auch..das man sein Pferd erfarmen muss:)
gebe natürlich nen Thanks:>

mfg

Endless;)
Probier die hier mal.. aber du musst sie noch um ein ganzes stück erweitern.. so wie die quest im moment is, nimmt der stalli die PM ab falls du eine hast und von dort aus müsstest du ein neues state deklarieren und dann noch strukturieren usw.. probiers mal aus.. und zur quest was du gepostest hast.. da sind ein paar syntax fehler.. hier mal ohne fehler:

PHP Code:
quest gaul begin
    state start begin
        when 20349.chat
."Pferd trainieren" begin
            
if pc.count_item(50050) >= 1 then
                say_title 
("Stallbursche: ")
                
say ("Sei gegrüsst "..pc.get_name().."!")
                
say ("Du kannst hier dein Pferd trainieren")
                
say ("und es somit zu einem Kampf oder Millitärs Pferd")
                
say ("trainieren. Durch das Training steigt dein Pferd")
                
say ("immer 2 Level auf. Dies kannst du machen bis dein")
                
say ("Pferd Level 30 ist, allerdings kostet dich dies eine")
                
say ("Pferdemedallie...")
                
say (" ")
                
say_reward ("Möchtest du dein Pferd trainieren?")
                
local a select ("Ja""Nein")
                if 
== 1 then
                    chat 
("Du hast dein Pferd erfolgreich trainiert.")
                    
horse.advance(2)
                    
pc.remove_item(500501)
                else
                    return
                
end
            
else
                
say_title ("Stallbursche: ")
                
say ("Sei gegrüsst "..pc.get_name().."!")
                
say ("Ich trainiere Pferde bis sie voll")
                
say ("gut und belasstbar sind. Wenn du wllst")
                
say ("trainiere ich dein Pferd. Es kostet dich")
                
say ("eine Pferdemedallie für 2 Level. Was sagst du?")
                
say ("Bring mir einfach eine Pferdemedallie mit.")
            
end
        end
    end
end 
P.S.: horse.advance() = erhöht um 1 lvl das pferdelevel.. soweit ich weiß gehören da drinne keine zahlen.. musst halt die funktion so oft schreiben wie du das level steigern willst
01/29/2011 00:14 Endless.#1349
Danke Legend :)

Quest klappt
01/29/2011 03:56 Legend2007#1350
@xEndless: Kein ding. :)

Ich brauche jedoch immernoch etwas hilfe mit meiner quest xD
sollte eine "lehre wechseln und skill levels auf andere lehre übertragen-quest" sein/werden... o.o"

Quote:
Originally Posted by Legend2007 View Post
Hab eure hinweise mal gefixt und ausprobiert, aber dann kam irgendwas mit assertion failed: nested==0 ... hab dann einfach mal die quest komplett neu geschrieben und jetzt wird sie auch fehlerfrei compiliert.. muss sie jedoch noch testen ob sie richtig funktioniert.

für wem es interessieren sollte:

Hab mich nun an einer weiteren quest gesetzt aber komme wieder nicht weiter.. wahrscheinlich hab ich die funktionen falsch eingesetzt oder was auch immer.. auf jeden fall "liest" die quest nicht fertigkeit levels nicht und somit wirkt sie nicht so wie ich sie wollte..

hier mal den code:

Was hab ich da falsch gemacht? Compilen geht einwandfrei >.>"

Danke im voraus
Legend