[SERVICE] Die Questkontrolle

03/02/2012 23:28 Sp0ngeb0b ist cool#4951
stimmt xD
je simpler die Quests um so mehr Fehler bau ich ein :facepalm:
03/03/2012 00:53 xxalbanxx3#4952
PHP Code:
quest drachnraum begin 
    state start begin         
        when 9010.chat
."Drachenraum" begin  --NPC zum Starten 
            say_title
(mob_name(9010)) --NPC zum Starten 
            say
("Hallo Abenteurer,"
            
say("ich habe längst verlassene Gänge und"
            
say("Schluchten entdeckt, wo Ungeheuer ihr"
            
say("unwesen treiben. Nur die stärksten"
            
say("Krieger halten denen Stand!"
            if 
pc.count_item(30227) == 0 then 
                say
("Du benötigst einen Drachenraum-Key um passieren zu können."
                
say_item_vnum(30227
                return 
            
end 
            say
("Soll ich dich dahin bringen?"
            
local s=select("Ja""Nein"
            if 
s==2 then 
                
return 
            
end 
            
if pc.count_item(30227) > 0 then 
                pc
.remove_item(302271
                
pc.warp(8432001066800
            
end 
        end 

        when login with pc
.get_map_index() == 308 begin 
            say
("Die Brücke ist kaputt gegangen."
            
say("Jetzt gibt es kein zurück mehr!"
        
end

        when 2493.kill begin  
            notice_all
("pipapo"
            
pc.warp(843200,1066800)
            
        
when "kill".timer begin    
        pc
.setqf("kill"2493)    
        
end    
        
        when login with pc
.getqf("kill") == 1 then    
        timer
("kill"30)
        
end 
    end 
end 
Ich nix können schreiben quest :facepalm: :D
03/03/2012 07:18 Benhero#4953
anstatt:
PHP Code:
when "kill".timer begin     
  pc
.setqf("kill"2493)     
end 
einfach mal
PHP Code:
when kill.timer begin     
  pc
.setqf("kill"2493)     
end 
Probieren.

Mfg. Benhero
03/03/2012 10:23 xxalbanxx3#4954
Quote:
Originally Posted by xxalbanxx3 View Post
PHP Code:
quest drachnraum begin 
    state start begin         
        when 9010.chat
."Drachenraum" begin  --NPC zum Starten 
            say_title
(mob_name(9010)) --NPC zum Starten 
            say
("Hallo Abenteurer,"
            
say("ich habe längst verlassene Gänge und"
            
say("Schluchten entdeckt, wo Ungeheuer ihr"
            
say("unwesen treiben. Nur die stärksten"
            
say("Krieger halten denen Stand!"
            if 
pc.count_item(30227) == 0 then 
                say
("Du benötigst einen Drachenraum-Key um passieren zu können."
                
say_item_vnum(30227
                return 
            
end 
            say
("Soll ich dich dahin bringen?"
            
local s=select("Ja""Nein"
            if 
s==2 then 
                
return 
            
end 
            
if pc.count_item(30227) > 0 then 
                pc
.remove_item(302271
                
pc.warp(8432001066800
            
end 
        end 

        when login with pc
.get_map_index() == 308 begin 
            say
("Die Brücke ist kaputt gegangen."
            
say("Jetzt gibt es kein zurück mehr!"
        
end

        when 2493.kill begin  
            notice_all
("pipapo"
            
pc.warp(843200,1066800)
            
        
when "kill".timer begin    
        pc
.setqf("kill"2493)    
        
end    
        
        when login with pc
.getqf("kill") == 1 then    
        timer
("kill"30)
        
end 
    end 
end 
Quote:
Originally Posted by Benhero View Post
anstatt:
PHP Code:
when "kill".timer begin     
  pc
.setqf("kill"2493)     
end 
einfach mal
PHP Code:
when kill.timer begin     
  pc
.setqf("kill"2493)     
end 
Probieren.

Mfg. Benhero
Geht auch nicht
03/03/2012 10:27 Sp0ngeb0b ist cool#4955
PHP Code:
quest drachnraum begin 
    state start begin         
        when 9010.chat
."Drachenraum" begin  --NPC zum Starten 
            say_title
(mob_name(9010)) --NPC zum Starten 
            say
("Hallo Abenteurer,"
            
say("ich habe längst verlassene Gänge und"
            
say("Schluchten entdeckt, wo Ungeheuer ihr"
            
say("unwesen treiben. Nur die stärksten"
            
say("Krieger halten denen Stand!"
            if 
pc.count_item(30227) == 0 then 
                say
("Du benötigst einen Drachenraum-Key um passieren zu können."
                
say_item_vnum(30227
                return 
            
end 
            say
("Soll ich dich dahin bringen?"
            
local s=select("Ja""Nein"
            if 
s==2 then 
                
return 
            
end 
            pc
.remove_item(302271
            
pc.warp(8432001066800
        
end 

        when login with pc
.get_map_index() == 308 begin 
            say
("Die Brücke ist kaputt gegangen."
            
say("Jetzt gibt es kein zurück mehr!"
        
end

        when kill begin 
            
if npc.get_race() == 2493 then 
                notice_all
("pipapo"
                
pc.warp(843200,1066800
            
end    
        end    
    end 
end 
das mit dem timer ergab in meinen augen keinen sinn :D
03/03/2012 10:42 sunshine123456789#4956
Oo Kann mir einer da jetzt weiter helfen ich habe die Quest so übernommen

Aber im Virtual Box kommt der Fehler
syntax error : [string "start"] : 19 : "then" expected near "return"
itemtausch.quest 67; Abort trap core jumped

kann einer mir da weiter helfen?? ist dringend
03/03/2012 10:57 xxalbanxx3#4957
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
PHP Code:
quest drachnraum begin 
    state start begin         
        when 9010.chat
."Drachenraum" begin  --NPC zum Starten 
            say_title
(mob_name(9010)) --NPC zum Starten 
            say
("Hallo Abenteurer,"
            
say("ich habe längst verlassene Gänge und"
            
say("Schluchten entdeckt, wo Ungeheuer ihr"
            
say("unwesen treiben. Nur die stärksten"
            
say("Krieger halten denen Stand!"
            if 
pc.count_item(30227) == 0 then 
                say
("Du benötigst einen Drachenraum-Key um passieren zu können."
                
say_item_vnum(30227
                return 
            
end 
            say
("Soll ich dich dahin bringen?"
            
local s=select("Ja""Nein"
            if 
s==2 then 
                
return 
            
end 
            pc
.remove_item(302271
            
pc.warp(8432001066800
        
end 

        when login with pc
.get_map_index() == 308 begin 
            say
("Die Brücke ist kaputt gegangen."
            
say("Jetzt gibt es kein zurück mehr!"
        
end

        when kill begin 
            
if npc.get_race() == 2493 then 
                notice_all
("pipapo"
                
pc.warp(843200,1066800
            
end    
        end    
    end 
end 
das mit dem timer ergab in meinen augen keinen sinn :D
Jaa ne ich brauch so ein timer das die erst nach 30sec rausgeportet werden
03/03/2012 11:49 Sp0ngeb0b ist cool#4958
PHP Code:
quest itemtausch begin
    state start begin
        when 9010.chat
."Eintauschen" begin
            local item 
= { [0] = {12019},[1] = {12029},[2] = {12039},[3] = {12049},}    
            
say("Hey,")
            
say("Hallo lieber , Gamer")
            
say("Willst du dein Wasserstein gegen eine "..item_name(item[pc.get_job()][1]).." tauschen?.")
            
say("")
            
local s select("Ja""Nein")
            if 
== 2 then return end
            
if pc.count_item(27991) < 1 then say("Du hast das Item nicht") return end
            pc
.removeitem(279911)
            
pc.give_item2(item[pc.get_job()][1], 1)
            
say("Danke dir!")
            
say("Du erhältst ein "..item_name(item[pc.get_job()][1]))
            
say("Ich hoffe sie wird dir von großem Nutzen sein")
            
say("lieber Abenteurer!")
            
say("")
        
end
    end
end 
@alaban: das stand aber nicht in deiner quest drin :facepalm: ..da stand nur schwachsinn^^

PHP Code:
quest drachnraum begin 
    state start begin         
        when 9010.chat
."Drachenraum" begin  --NPC zum Starten 
            say_title
(mob_name(9010)) --NPC zum Starten 
            say
("Hallo Abenteurer,"
            
say("ich habe längst verlassene Gänge und"
            
say("Schluchten entdeckt, wo Ungeheuer ihr"
            
say("unwesen treiben. Nur die stärksten"
            
say("Krieger halten denen Stand!"
            if 
pc.count_item(30227) == 0 then 
                say
("Du benötigst einen Drachenraum-Key um passieren zu können."
                
say_item_vnum(30227
                return 
            
end 
            say
("Soll ich dich dahin bringen?"
            
local s=select("Ja""Nein"
            if 
s==2 then 
                
return 
            
end 
            pc
.remove_item(302271
            
pc.warp(8432001066800
        
end 

        when login with pc
.get_map_index() == 308 begin 
            say
("Die Brücke ist kaputt gegangen."
            
say("Jetzt gibt es kein zurück mehr!"
        
end

        when kill begin 
            
if npc.get_race() == 2493 then 
                notice_all
("pipapo"
                
timer("kick"30)    
            
end    
        end  
        when kick
.timer begin
            pc
.warp(843200,1066800
        
end    
    end 
end 
03/03/2012 12:00 RealMadrid94rk#4959
@sponge: Eine frage wieso benutzt du npc.get_race() == 2493 und nicht einfach when 2493.kill begin?

Gibts da einen unterschied?
03/03/2012 12:03 xxalbanxx3#4960
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
PHP Code:
quest itemtausch begin
    state start begin
        when 9010.chat
."Eintauschen" begin
            local item 
= { [0] = {12019},[1] = {12029},[2] = {12039},[3] = {12049},}    
            
say("Hey,")
            
say("Hallo lieber , Gamer")
            
say("Willst du dein Wasserstein gegen eine "..item_name(item[pc.get_job()][1]).." tauschen?.")
            
say("")
            
local s select("Ja""Nein")
            if 
== 2 then return end
            
if pc.count_item(27991) < 1 then say("Du hast das Item nicht") return end
            pc
.removeitem(279911)
            
pc.give_item2(item[pc.get_job()][1], 1)
            
say("Danke dir!")
            
say("Du erhältst ein "..item_name(item[pc.get_job()][1]))
            
say("Ich hoffe sie wird dir von großem Nutzen sein")
            
say("lieber Abenteurer!")
            
say("")
        
end
    end
end 
@alaban: das stand aber nicht in deiner quest drin :facepalm: ..da stand nur schwachsinn^^

PHP Code:
quest drachnraum begin 
    state start begin         
        when 9010.chat
."Drachenraum" begin  --NPC zum Starten 
            say_title
(mob_name(9010)) --NPC zum Starten 
            say
("Hallo Abenteurer,"
            
say("ich habe längst verlassene Gänge und"
            
say("Schluchten entdeckt, wo Ungeheuer ihr"
            
say("unwesen treiben. Nur die stärksten"
            
say("Krieger halten denen Stand!"
            if 
pc.count_item(30227) == 0 then 
                say
("Du benötigst einen Drachenraum-Key um passieren zu können."
                
say_item_vnum(30227
                return 
            
end 
            say
("Soll ich dich dahin bringen?"
            
local s=select("Ja""Nein"
            if 
s==2 then 
                
return 
            
end 
            pc
.remove_item(302271
            
pc.warp(8432001066800
        
end 

        when login with pc
.get_map_index() == 308 begin 
            say
("Die Brücke ist kaputt gegangen."
            
say("Jetzt gibt es kein zurück mehr!"
        
end

        when kill begin 
            
if npc.get_race() == 2493 then 
                notice_all
("pipapo"
                
timer("kick"30)    
            
end    
        end  
        when kick
.timer begin
            pc
.warp(843200,1066800
        
end    
    end 
end 
:D haha danke
03/03/2012 13:04 Sp0ngeb0b ist cool#4961
Quote:
Originally Posted by RealMadrid94rk View Post
@sponge: Eine frage wieso benutzt du npc.get_race() == 2493 und nicht einfach when 2493.kill begin?

Gibts da einen unterschied?
Jap. Wenn du mobid.kill verwendest, kannst du dies nur 1x machen.
Dies ist zb. bei der dt quest der fall. dort wird 1093.kill verwendet. wenn du nun aber noch eine quest schreiben möchtest, wo 1093.kill sprich der sensi kill vorhanden sein soll, funktionieren beide quests nicht mehr

mit npc.get_race() kannst du eben jede kill flag so oft du willst verwendet ohne dass die quests buggen oder so ;)
03/03/2012 14:34 RealMadrid94rk#4962
Folgendes Problem:
Wenn ich den Ring aktiviere und offline gehe und nach 30 sek. wieder on, steht im Chat, dass mein Bonus weg ist. Aber er ist immer noch nicht weg, dh. ich habe die 3k TP noch solange, bis ich 30 sek. lang Ingame online war. Wie stelle ich ein, dass nachdem ich mich 30 sek lang auslogge und dann wieder einlogge, dass dann der Bonus weggeht?
Habe es mit affect.remove_collect() versucht aber funktioniert nicht?

PHP Code:
quest buffs begin
    state start begin
        when 71135.
use begin
            
if pc.getqf("HMRfirstuse") == 0 then -- Wenn der Ring zum ersten mal aktiviert wird
                pc
.setqf("HMRfirstuse"1)
                
pc.remove_item(711351)
                
pc.setqf("HMRTIMER",get_time()+30)
                
timer("eins"1)
            
end
            
if pc.getqf("HMRfirstuse") == 1 then
                
if pc.getqf("HMR") == 0 then
                    timer
("eins"1)
                    
pc.setqf("HMR"1)
                    
cmdchat("buff1")
                    
chat("Du hast Halbmondring aktiviert!")
                    
affect.add_collect(apply.MAX_HP300030)
                elseif 
pc.getqf("HMR") == 1 then -- Wenn der Ring bereits 1x aktiviert ist
                    say_reward
("Du hast bereits einen Halbmondring aktiviert!")
                
end
            end
        end
        
        when eins
.timer begin
            
if get_time()>pc.getqf("HMRTIMER") and pc.getqf("HMRfirstuse") == 1 then -- Wenn die Benutzungszeit abgelaufen ist
                affect
.remove_collect()
                
pc.setqf("HMR"0)
                
pc.setqf("HMRfirstuse"0)
                
chat("Dein Halbmondring ist abgelaufen!")
            
end
            timer
("eins1",1)
        
end
        
        when eins1
.timer begin
            
if get_time()>pc.getqf("HMRTIMER") and pc.getqf("HMRfirstuse") == 1 then -- Wenn die Benutzungszeit abgelaufen ist
                affect
.remove_collect()
                
pc.setqf("HMR"0)
                
pc.setqf("HMRfirstuse"0)
                
chat("Dein Halbmondring ist abgelaufen!")
            
end
            timer
("eins",1)
        
end

        when login with pc
.getqf("HMRfirstuse") == 1 begin
            notice
("Halbmondring ist aktiv!")
            
timer("eins"1)
        
end
    end
end 
03/03/2012 19:34 Kriegergeist^^#4963
Kleines Problem mit Quest.
Zuerst die quest:
Erstes Problem:
Wen ich den Npc 30131 anspreche, geht nur die erste if setzung
die ganzen anderen elseif setzung funktionieren nicht, auch wen ich den eventflag selber umstelle.

Zweite Porblem:
Wen ich 90 sec in raum bin über der quest, stürzt der Server ab
Bei beiden Probleme weiß ich einfach nicht weiter, wär nett wen ihr mir helfen könntet :handsdown:

MfG
Kriegergeist^^
03/03/2012 19:42 Phil'#4964
Hey Leute,

ich über gerade questen und wollte fragen ob das geht bzw. ob es richtig ist.

PHP Code:
Quest giveitem2 begin
     State start begin 
         When levelup with pc
.get_level == 99 begin
             pc
.give_item2(297721)  
                 
pc.give_item2(297731)  
                     
pc.give_item2(297741)  
                     
Say("Herzlichen Glückwunsch")
                     
Say("Du hast das Endlevel erreicht")
                     
Say("Du bist eine Legende")
                     
Say("Zur belohnung bekommst du folgende Items")
                     
Say("Weiße Perle")
                     
Say("Blaue Perle")
                     
Say("Rote Perle")
                     
end
                end
            end    
         end  
    end
end 
03/03/2012 19:47 Sp0ngeb0b ist cool#4965
PHP Code:
quest giveitem2 begin
    state start begin 
        when levelup with pc
.get_level() >= 99 begin
            pc
.give_item2(297721)  
            
pc.give_item2(297731)  
            
pc.give_item2(297741)  
            
say("Herzlichen Glückwunsch")
            
say("Du hast das Endlevel erreicht")
            
say("Du bist eine Legende")
            
say("Zur belohnung bekommst du folgende Items")
            
say("Weiße Perle")
            
say("Blaue Perle")
            
say("Rote Perle")  
        
end  
    end
end 
so würds gehen ;)