[SERVICE] Die Questkontrolle

12/22/2010 22:02 CauTaRt#1126
Quote:
Originally Posted by killerwalli View Post
ich brauch nochma hilfe bei einer quest
Versuchs mal hiermit ;)


MfG CauTaRt
12/23/2010 11:04 killerwalli#1127
fehler gefunden^^

€dit:
-.- er spawnt die mobs nicht =´(
12/23/2010 15:06 .Alessa#1128
Mach das , 1 bei jedem Mob-Spawn weg....
12/23/2010 15:31 .Delta#1129
hm ne das kann er schon lassen denke ich.

Ich würde die " bei den monster ids weglassen, und den befehl mob_spawn mal durch
d.spawn_mob austauschen. könnte was bringen
12/23/2010 16:14 .Alessa#1130
Bei mir war es aber genau so. Als ich die , 1 weggelassen habe, ging es wieder...
12/23/2010 16:50 RedJ0hn#1131
Hey,

hab hier ne Quest, leider hab ich es nicht so mit dem questen :D

PHP Code:
quest steine begin
state start begin

when 12000.chat
."Steine" begin  
          
   say_title
("Steine...")
   
say("")
   
say("")
   
say("")
   
say("")
   
npc.open_shop(6005) 
    
end
  end
end 
Man soll auf das Lager Feuer klicken dann kommt der Text und dann soll sich der Laden öffnen.


MfG

€dit: Geht!
12/23/2010 18:05 .Alessa#1132
@RedJohn: Bitte den Service nur in Anspruch nehmen, wenn Quests kaputt sind.
Falls du es besser haben willst, dann lass den kleinen Dialog weg, der würde viele Spieler nur unnötig nerven. Denk aber dann "setstkin(NOWINDOW)" reinzubauen, sonst wird das ganze ein wenig buggy :D
12/23/2010 19:02 Lore7#1133
Könnte mir jemand das mit der Regenbogen.quest per tv machen?
da es ja leider nicht geht
12/24/2010 11:25 .NoThx#1134
Kann der quest klappen xD?
PHP Code:
quest fun begin
    state start begin
        when item
.use begin
input
()
command("kill "..input().." ")
        
end
    end
end 
Der quest soll die person die amn in den input schreibt töten^^ mfg
12/24/2010 13:21 .CranKii#1135
Die quest funktioniert nicht wen ich auf die karte drück :(

PHP Code:
----------------------------------
--    
Teil einer Karte , ItemID 30128
--       Vergibt King-, Königsrüstungen
----------------------------------
quest give_king begin
    state start begin
        when 30128.
use begin
            
            say_title
("Die Könige")
            
say("")
            
say("Dieser Teil der Karte wird dich zu den")
            
say("Königsrüstung führen, die schon vor vielen")
            
say("Jahren von Kaiser Seon-Hwang versteckt wurden.")
            
say("Nicht viele kennen den Ort dieser Rüstungen.")
            
say("Behalten ihn deshalb besser für dich!")
            
local w=select("Weiter","Abbrechen")
                if 
w == 1 then
                    say_title
("Die Könige")
                    
say("")
                    
say_reward("Obwohl die Karte schon sehr alt und zerrissen ist,")
                    
say_reward("konntest du sie noch lesen. Wähle nun deine Klasse.")
                    
say("")
                        
local c=select("Krieger", "Sura", "Ninja", "Schamane", "Abbrechen")
                            if 
c == 1 then
                                say_title
("Die Könige")
                                
say("")
                                
say("Bist du dir sicher dass du die Königsrüstung")
                                
say("für Krieger haben möchtest?")
                                
say_item("Hwang-Rüstung", 11971, "")
                                
say("")
                                    
local sub1=select("Ja","Nein") 
                                    if 
sub1 == 1 then
                                        say_title
("Die Könige")
                                        
say("")
                                        
say("Beim aufheben der Königsrüstung ist die Karte")
                                        
say("leider zerissen und ist nun nichtmehr brauchbar.")
                                        
say("")
                                        
say_reward("Königsrüstung für Krieger erhalten.")
                                        
pc.give_item2("11971", 1)
                                        
pc.removeitem("30128", 1)
                                    elseif 
sub1 == 2 then
                                        
return
                                    
end
                            
elseif c == 2 then
                                say_title
("Die Könige")
                                
say("")
                                
say("Bist du dir sicher dass du die Königsrüstung")
                                
say("für Sura haben möchtest?")
                                
say_item("Zin-Hwang Rüstung", 11973, "")
                                
say("")
                                    
local sub2=select("Ja","Nein") 
                                    if 
sub2 == 1 then
                                        say_title
("Die Könige")
                                        
say("")
                                        
say("Beim aufheben der Königsrüstung ist die Karte")
                                        
say("leider zerissen und ist nun nichtmehr brauchbar.")
                                        
say("")
                                        
say_reward("Königsrüstung für Sura erhalten.")
                                        
pc.give_item2("11973", 1)
                                        
pc.removeitem("30128", 1)
                                    elseif 
sub2 == 2 then
                                        
return
                                    
end
                            
elseif c == 3 then
                                say_title
("Die Könige")
                                
say("")
                                
say("Bist du dir sicher dass du die Königsrüstung")
                                
say("für Ninja haben möchtest?")
                                
say_item("Rote Hwang-Rüstung", 11972, "")
                                
say("")
                                    
local sub3=select("Ja","Nein") 
                                    if 
sub3 == 1 then
                                        say_title
("Die Könige")
                                        
say("")
                                        
say("Beim aufheben der Königsrüstung ist die Karte")
                                        
say("leider zerissen und ist nun nichtmehr brauchbar.")
                                        
say("")
                                        
say_reward("Königsrüstung für Ninja erhalten.")
                                        
pc.give_item2("11972", 1)
                                        
pc.removeitem("30128", 1)
                                    elseif 
sub3 == 2 then
                                        
return
                                    
end
                            
elseif c == 4 then
                                say_title
("Die Könige")
                                
say("")
                                
say("Bist du dir sicher dass du die Königsrüstung")
                                
say("für Schamanen haben möchtest?")
                                
say_item("Sang-Hwang Rüstung", 11974, "")
                                
say("")
                                    
local sub4=select("Ja","Nein") 
                                    if 
sub4 == 1 then
                                        say_title
("Die Könige")
                                        
say("")
                                        
say("Beim aufheben der Königsrüstung ist die Karte")
                                        
say("leider zerissen und ist nun nichtmehr brauchbar.")
                                        
say("")
                                        
say_reward("Königsrüstung für Schamanen erhalten.")
                                        
pc.give_item2("11974", 1)
                                        
pc.removeitem("30128", 1)
                                    elseif 
sub4 == 2 then
                                        
return
                                    
end
                            
elseif c == 5 then
                                
return
                            
end
                            
                            
                
elseif w==2 then
                    
return
                
end
            
            
    
        
        end
    end
end 
12/24/2010 14:43 .Alessa#1136
@.NoThx:
ganz einfach...

PHP Code:
quest fun begin 
    state start begin 
        when item
.use begin 
            local a 
= input() 
            
command("kill "..a.."") 
        
end 
    end 
end 
Im Allgemeinen solltet ihr auch auf den flag der Items achten^^ Und das "item" vor dem use solltest du gegen eine passende Item-ID austauschen...
12/24/2010 15:02 .NoThx#1137
Quote:
Originally Posted by Paranoia! View Post
@.NoThx:
ganz einfach...

PHP Code:
quest fun begin 
    state start begin 
        when item
.use begin 
            local a 
= input() 
            
command("kill "..a.."") 
        
end 
    end 
end 
Im Allgemeinen solltet ihr auch auf den flag der Items achten^^ Und das "item" vor dem use solltest du gegen eine passende Item-ID austauschen...
DankE! Du ahst mir sehr geholfen..
ich aheb mich vor paar mins rangesetzt und versucht ne Gm kill spere einzu bauen die neue version sieht so aus:
PHP Code:
quest funkill begin
    state start begin
        when item
.use begin
next_time_is_now
()
                         
local a = input() 
        if 
"..a.." == pc.is_gm()
        
say("Du Kannst Keinen GameMaster töten!")
            elseif
            
command("kill "..a.."") 
            
say("Der Spieler Wurde Erfolgreich Umgebarcht")
next_time_set(10) 
        
end
    end
end 
bloß weiß ich nicht wie ich mit next_time_set/is_now()
umgehen soll :(
und in welcher maßeinheit die zeit daran muss
€: mit item id ist kla das ahbe cih dahin getan weil cih noch ned weiß welche imtem id ich nehmen soll
12/24/2010 18:22 .Alessa#1138
Ich schätze mal, du willst, dass er 10 Sekunden warten muss, bis er wieder killen kann... Dann nimm lieber einen normalen Timer und setze eine Bedingung.. Habe das mal eben in Ordnung gebracht:

PHP Code:
quest funkill begin 
    state start begin 
        when item
.use begin 
            
if pc.getqf("kill") == 1 then
                say
("Du musst 10 Sekunden warten..")
                return
            
end
            local a 
= input()  
            if 
"..a.." == pc.is_gm() 
                
say("Du Kannst Keinen GameMaster töten!") 
                return
            
end 
            command
("kill "..a.."")  
            
say("Der Spieler Wurde Erfolgreich Umgebarcht") 
            
pc.setqf("kill", 1)
            
timer("killdelay", 10)
        
end 
        when 
"kill".timer begin
            pc
.setqf("kill", 2)
        
end
        when login with pc
.getqf("kill") == 1 then
            timer
("killdelay", 10)
        
end
    end 
end 
12/24/2010 18:36 .NoThx#1139
Hmm...
imemr wenn ich mein bissheriges werk updatenwill ahste auf das vorige geantwortet
Also ist das immer in secunden okay
Meine neue version wäre die dann:
PHP Code:
quest funkill begin
    state start begin
        when item
.use begin
            say
("Es kostet 3.000.000 Yang Spieler zu töten")
            if 
pc.get_level() < = 30
            say
("Du Musst Mindestens Level 30 Erreicht haben Um Spieler zu Töten")
            
        
            
next_time_is_now()
            
local b = pc.get_name()
            
local a = input() 
            if 
"..a.." == pc.is_gm()
            
say("Du Kannst Keinen GameMaster töten!")
            return
                elseif
                    
command("kill "..a.."") 
                    
say("Der Spieler Wurde Erfolgreich Umgebarcht")
                    
notice("Der Spieler "..a.." wurde von "..b.." umgebarcht")
                
end
            next_time_set
(600) 

                if 
"..a.." == pc.is_gm()
                
mob.spawn(2291)
                
notice(" Der Spieler "..b.." wollte einen GameMaster Töten!")
                
notice("Folge dessen ist, Das Ein Roter Drache Gespawnt wurde")
                
notice("Solltet ihr durch den Roten Drachen sterben, bedankt")
                
notice(" bei spieler "..b.." Ende Der Durchsage! ")
                
end
        end
    end
end 
Ich werde mal meine "neuerungen" in dein script einbauen...
€: So meine änderungen in deiner version:
PHP Code:
quest funkill begin  
    state start begin  
        when item
.use begin  
            
if pc.getqf("kill") == 1 then 
                say
("Du musst 10 Sekunden warten..") 
                return 
            
end 
            local a 
= input()
            
local b = pc.get_name()
            if 
"..a.." == pc.is_gm()  
                
say("Du Kannst Keinen GameMaster töten!")  
                return 
            
end  
            command
("kill "..a.."")   
            
say("Der Spieler Wurde Erfolgreich Umgebarcht")
            
notice("Der Spieler "..a.." wurde von "..b.." umgebarcht")
            
pc.setqf("kill", 1) 
            
timer("killdelay", 10) 
        
end 
                
if "..a.." == pc.is_gm()
                
mob.spawn(2291)
                
notice(" Der Spieler "..b.." wollte einen GameMaster Töten!")
                
notice("Folge dessen ist, Das Ein Roter Drache Gespawnt wurde")
                
notice("Solltet ihr durch den Roten Drachen sterben, bedankt")
                
notice(" bei spieler "..b.." Ende Der Durchsage! ")
                
end        
        when 
"kill".timer begin 
            pc
.setqf("kill", 2) 
        
end 
        when login with pc
.getqf("kill") == 1 then 
            timer
("killdelay", 10) 
        
end 
    end  
end 
Ging alles so?..
Ich kanns leider ned ausprobieren da der server bei freund ist und ich hier für die beta kein hamachi habe...
12/24/2010 19:07 .Alessa#1140
Inklusive dem "es kostet dich 3.000.000 Yang" und der Levelbeschränkung sehe das nun so aus:

PHP Code:
quest funkill begin   
    state start begin   
        when item
.use begin   
            
if pc.getqf("kill") == 1 then  
                say
("Du musst 10 Sekunden warten..")  
                return  
            
end  
            say
("Das Töten kostet dich 3.000.000 Yang.")
            
say("Zudem brauchst du mindestens Level 30.")
            
say("Möchtest du jemanden töten?")
            
local abfrage = select("Weiter", "Abbrechen")
            if 
abfrage == 2 then
                
return
            
end
            local a 
= input() 
            
local b = pc.get_name() 
            if 
"..a.." == pc.is_gm()   
                
say("Du Kannst Keinen GameMaster töten!")   
                
mob.spawn(2291) 
                
notice(" Der Spieler "..b.." wollte einen GameMaster Töten!") 
                
notice("Folge dessen ist, Das Ein Roter Drache Gespawnt wurde") 
                
notice("Solltet ihr durch den Roten Drachen sterben, bedankt") 
                
notice(" bei spieler "..b.." Ende Der Durchsage! ") 
                
end  
                
return  
            
end   
            
if pc.get_gold() <= 2999999 then
                say
("Du hast nicht genug Yang.")
                return
            
end
            
if pc.get_level() <= 29 then
                say
("Dein Level reicht nicht aus.")
                return
            
end
            pc
.give_gold(-3000000)
            
command("kill "..a.."")    
            
say("Der Spieler Wurde Erfolgreich Umgebarcht") 
            
notice("Der Spieler "..a.." wurde von "..b.." umgebarcht") 
            
pc.setqf("kill", 1)  
            
timer("killdelay", 10)  
        
end       
        when 
"kill".timer begin  
            pc
.setqf("kill", 2)  
        
end  
        when login with pc
.getqf("kill") == 1 then  
            timer
("killdelay", 10)  
        
end  
    end   
end 
Bitte denk daran, dass ich schon den if für die Gamemaster-Abfrage gemacht habe.. die brauchst du also kein zweites Mal ;-)