[SERVICE] Die Questkontrolle

07/19/2011 18:22 .Delta#2836
probiers mal, die fehler hab ich mit reingeschrieben
PHP Code:
quest NewQuest begin
    state start begin
        when login 
or levelup with pc.get_level() >= 90 begin
            set_state
(information)
        
end
    end
    state information begin
        when letter begin
            local v 
find_npc_by_vnum(20094)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Der Riesige Lord!")
        
end
        when button 
or info begin
            say_title
("Der Riesige Lord!")
            
say("")
            
say("In den tiefsten Wäldern,")
            
say("schlummert eine Frau.")
            
say("Sie hat ein fast unlösbare Aufgabe für dich.")
            
say("Noch nie zuvor konnte sich Jemand dieser")
            
say("Herausforderung stellen....")
            
say("Gehe zur geheimnisvollen Fee im Roten Wald um mehr zu erfahren.")
            
say("")
        
end
        when __TARGET__
.target.click or 20094.chat."Quest" begin
            target
.delete("__TARGET__")
            
say("Mysteriöse Fee:")
            
say("Huch? Wer bist du?")
            
say("Anscheinend einer der vielen die sich meiner Prüfung unterziehen wollen?")
            
say("Naja, von mir aus! Versuche dein Glück aber glaub mir,")
            
say("Du bist nicht der erste der sich dieser Herausforderung stellt und vor allem nicht der Letzte...")
            
say("Dann lass uns beginnen! Du kennst doch sicherlich den Riesigen Geisterbaum.")
            
say("Ich hasse ihn! Wenn du mir von diesen ekligen Dingern 10 Blumenschuhe bringen würdest, wäre ich dir sehr dankbar!")
            
say("")
            
set_state(go_to_disciple)
            
pc.setqf("collect_count",0)
            
pc.setqf("drink_drug",0)
        
end
    end
    state go_to_disciple begin
        when letter begin
            send_letter
("Auftrag von der Mysteriösen Fee")
        
end
        when button 
or info begin
            say_title
("Quest")
            
say("")
            
say("DIe Mysteriöse Fee gab euch den Auftrag")
            
say("10 Blumenschuhe zu sammeln!")
            
say("Das Item bekommt ihr von Riesiger Geisterbaum.")
            
say("Viel Glueck!")
            
say("")
            
say_item_vnum(30133)
            
say_reward(" Du hast".." "..pc.getqf("collect_count").." bis jetzt gesammelt!")
            
say("")
        
end
        when 71035.
use begin --°g´bÃĤô
            
if pc.getqf("drink_drug")==1 then
                say
("")
                
say("Bessere Droppchance!")
                
say("")
            return
            
end
            
if pc.count_item(30133)==0 then
                say
("")
                
say("Du hast keine!")
                
say("Lauf los und besorg mir welche!")
                
say("")
                return
            
end
            item
.remove()
            
pc.setqf("drink_drug",1)
        
end
        when 2306.kill begin
            
if pc.count_item(30133)<10-pc.getqf("collect_count"then    -- war 10l
                pc
.give_item2(301331)
            
end
        end
        when 20094.chat
."Quest" with pc.count_item(30133) >0 begin
            say
("Einen Moment!")
            
say("Ich werde die Schuhe")
            
say("schnell mal ueberpruefen.")
            
say("Hoffentlich klappt alles!")
            
say("")
            
pc.remove_item(301331)
            
wait()
            
local pass_percent
            
if pc.getqf("drink_drug")==0 then
                pass_percent
=100    -- pass percent 27992klar xD
            
else
                
pass_percent=100
            end
            local s
number(1,100)
            if 
s<= pass_percent then
                
if pc.getqf("collect_count")< 9 then --hier hattest du -1 stehen ,warum auch immer
                    local index 
=pc.getqf("collect_count")+1
                    pc
.setqf("collect_count",index) --¨ú±o¤@*Ӯɠ+1
                    say
("Mysteriöse Fee:")
                    
say("Perfekt! Der Schuh ist in Ordnung")
                    
say("Du hast bis jetzt ".." "..10-pc.getqf("collect_count").. " abgegeben!")
                    
say("Bring mir die restlichen!")
                    
say("")
                    
pc.setqf("drink_drug",0) --ÃĤôªì©l¤Æ
                    
return
                
end
                say
("Mysteriöse Fee:")
                
say("Juhu! Du hast mir")
                
say("alles gebracht!")
                
say("Dafür werde ich dich wie versprochen")
                
say("belohnen!")
                
say("")
                
say_reward("Du bekommst ein Weiße Perle!")
                
say_reward("Du bekommst ein Blaue Perle!")
                
say_reward("Du bekommst ein Blutrote Perle!")
                
say_reward("Du bekommst 10000000 Yang!")
                
say_reward("Du bekommst 500000000 Erfahrung!")
                
pc.setqf("collect_count",0)
                
pc.setqf("drink_drug",0)
                
clear_letter()
                
set_state(__complete)
                
pc.give_item2(27992)
                
pc.give_item2(27993)
                
pc.give_item2(27994)
                
pc.change_money(10000000)
                
pc.give_exp2(500000000)
                
set_quest_state("levelup","run")
                return
            else
                
say("Mysteriöse Fee:")
                
say("Dieser Schuh sind von schlechter Qualität!")
                
say("Ich kann ihn nicht verwenden.")
                
say("Hole mir ein neues!")
                
say("")
                
pc.setqf("drink_drug",0) --ÃĤôªì©l¤Æ
                
return
            
end
        end
    end
    state __complete begin    
-- dein ganzes ende hat gefehlt ^^ also der state completeends usw
    end
end 
07/19/2011 18:34 spielmitmir#2837
Also ich habs jetzt das hier eingefügt:

müsste doch jetzt richtig sein oder nicht? Aber es kommt immernoch core dump >.< [ Sorry bin neuling *grinz* ]
07/19/2011 22:45 Muco53#2838
PHP Code:
quest yetmis  begin
    state start begin
        when login 
or levelup with pc.get_level() == 70  begin
            set_state
(information)
        
end    
    end

    state information begin
        when letter begin
            local v 
find_npc_by_vnum(20092)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Biologenquest")
            
end
            send_letter
("Hwa-Hee Istegi")
        
end

        when button 
or info begin
            say_title
("Hwa-Hee'ye Git.")
            
say("Hwa-Hee seni ariyor")
            
say("Git ona sana gorev verecek.")
            
say("Onu 1.koyde bulabilirsin.")
            
say("Kolay gelsin.")
            
say("")
        
end
        
        when __TARGET__
.target.click or
            
20092.chat."Yardimina ihtiyacim var" begin
            target
.delete("__TARGET__")
            
say("Hwa-Hee:")
            
            
say("Ooooo "..pc.get_name().." ")
            
say("Sonunda 70 level olmussun.")
            
say("Bu level geldigine gore.")
            
say("gelismis sayilirsin.")
            
say("Sana gorev verecegim.")
            
wait()
            
say("Hwa-Hee:")
            
say("Bana 5 tane akrep kiskaci getir!")
            
say("Bunu orumcek zindani 2.kattan dusurebilirsin.")
            
say("Gorevin kolay.Hade yola koyul!")
            
say("Alacagin oduller;")
            
say_reward("Saldiri hizi +10")
            
say_reward("Hareket hizi +10")                                                                                                                                                
            
set_state(go_to_disciple)
            
pc.setqf("collect_count",0
            
pc.setqf("drink_drug",0)
            
pc.setqf("duration",0)    
        
end
    end

    state go_to_disciple begin
        when letter begin
            send_letter
("Hwa-Hee Istegi")
            
        
end
        when button 
or info begin
            say_title
("Hwa-Hee Istegi")

            
say("")
           
say_title("Istek")
            
say("")
            
say("Hwa-Hee Orumcek Zindani")
            
say("2.Kattaki orumceklerden dusen")
            
say("akrep kiskaci aramakta.")
            
say("Git onun icin bu gorevi yap,")
            
say("karsiligini alacaksin..")
            
say("")
            
say_item_vnum(30055)
            
say_reward("su anda senin toplanmis".." "..pc.getqf("collect_count").." kiskacin oldu.")
            
say("")
        
end
        
        when 71035.
use begin --°g´bÃĤô
            
if pc.getqf("drink_drug")==1 then
                say
("")
                
say("¤w¸g¨Ï¥Î¤F1¦¸")
                
say("")

                return
            
end
            
if pc.count_item(50701)==0 then
                say
("Du hast keine!")
                
say("Du hast keine!")
                
say("Du sollst mir aber welche bringen :D")
                
say("")
                return
            
end
            item
.remove()    
            
pc.setqf("drink_drug",1)
        
end


        when 2132.kill begin
                        local s 
number(140)
                        if 
<= 5 then
                
if pc.count_item(30055)<5-pc.getqf("collect_count"then
                pc
.give_item2(300551)
end
    
            end
        end
        
        when 20092.chat
."Akrep Kiskaci" with pc.count_item(30055) >0   begin
            
if get_time() > pc.getqf("duration"then
                say_title
("Hwa-Hee")
                
say("")
                
say("Ah!! Bana bir kiskac getiriyorsun...")
                
say("Once denemem lazim...")
                
say("Bu biraz zaman alabilir. Bir saat gibi.")
                
say("Daha sonra yine gel.")
                
say("")
                
pc.remove_item(300551)
                
pc.setqf("duration",get_time()+1*1*1)
                
wait()
                
local pass_percent
                
if pc.getqf("drink_drug")==0 then
                    pass_percent
=90
                
else        
                    
pass_percent=100
                end
                
                local s
number(1,100)
                if 
s<= pass_percent  then
                   
if pc.getqf("collect_count")< 4 then     --5*Ó¥H¤U 
                        local index 
=pc.getqf("collect_count")+
                        pc
.setqf("collect_count",index)     --¨ú±o¤@*Ӯɠ+1
                        say
("")
                        
say("Muthis!! Sen bir harikasin...")
                        
say("Simdi bana bu arastirma icin ".." "..10-pc.getqf("collect_count").." tane ")
                        
say("daha kiskac lazim.")
                        
say("Tamamlamak icin")
                        
say("Bol Sanslar!")
                        
say("")
                        
pc.setqf("drink_drug",0)     --ÃĤôªì©l¤Æ
                        
return
                    
end
                    say
("Hwa-Hee")
                    
say("Bana yardimlarin icin")
                    
say("Tesekkurler "..pc.get_name().." ")
                    
say("Seninle tekrardan gorusecegiz.")
                    
say("Iste yaptiklarinin hediyesi; ")
                    
say("")
                    
say_reward("Kalici hareket hizi %10!")
                    
say_reward("Kalici saldiri hizi %15!!")
                    
pc.setqf("collect_count",0)
                    
pc.setqf("drink_drug",0)    
                    
clear_letter()
                    
set_state(__complete)
                    
affect.add_collect(apply.MOV_SPEED1060*60*24*365*60)
                    
affect.add_collect(apply.ATT_SPEED1560*60*24*365*60)
                    
set_quest_state("levelup","run")
                    
                else                                
                
say("Hwa-Hee:")
                
say("Uzgunum ama;")
                
say("Bu kaliteli degil")
                
say("Lutfen yenisini getir..")
                
say("")
                
pc.setqf("drink_drug",0)     --ÃĤôªì©l¤Æ
                
return
                
end
            
else
                
say_title("Hwa-Hee")
                
say("Dahalik saat dolmadi..")
                
say("Daha sonra tekrar gel..")
            
end
        
        end
    end


state __complete begin
    end
end 
In game its not work
07/21/2011 17:21 .iXream.#2839
Quote:
quest give_basic_weapon begin
state start begin
when login begin
if pc.getqf("basic_weapon") != 0 then -- old version support
return
end
local item_vnum
local item_vnum2
local item_vnum3
if pc.job == 0 then
item_vnum = 299
item_vnum2 = 3219
item_vnum3 = 12229
elseif pc.job == 1 then -- assassin
item_vnum = 1179
item_vnum2 = 2159
item_vnum3 = 12369
elseif pc.job == 2 then -- assassin
item_vnum = 299
item_vnum3 = 12509
elseif pc.job == 3 then -- assassin
item_vnum = 7169
item_vnum2 = 5119
item_vnum3 = 12649
end

local item_count = pc.countitem(item_vnum)
local equip_weapon = pc.weapon
if item_count == 0 and equip_weapon != item_vnum then
pc.give_item2(item_vnum)
pc.give_item2(item_vnum2)
pc.give_item2(item_vnum3)
pc.give_exp2(12294600)-- jobtype weapon
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(13029, 1)
pc.give_item2(17089, 1)
pc.give_item2(16089, 1)
pc.give_item2(15089, 1)
pc.give_item2(14089, 1)
horse.set_level(30)
pc.set_skill_level(131, 40)
set_state(__COMPLETE__)
-- else
-- test_chat(string.format("job[%d],item_vnum[%d].count = %d, equip_weapon[%d]",
-- pc.job, item_vnum, item_count, equip_weapon))
end

end
end
state __COMPLETE__ begin
end
end
Wo is der Fehler
07/21/2011 19:33 Zwawo#2840
Edit: Hat sich erledigt -_-
07/22/2011 14:02 .Raicon#2841
EDIT: Hat sich erledigt :D Danke noch mal an Delta!
07/23/2011 00:37 Sp0ngeb0b ist cool#2842
Sooo...vorab das ist meine erste quest die ich schreibe also bitte nicht lachen :D

PHP Code:
quest zombiemap_port begin
    state start begin
        when 20011.chat
."Zombiemap teleportieren" begin
            say_title
("Zombiemap:")
            
say("Willst du dich in die Zombiemap teleportieren?")
            
say("Achtung!Es kostet dich 100kk Yang")
            
locale a=select("Ja""Nein")
                if 
2==a then
                    say_title
("Uriel:")
                    
say("Hmm...Dann nicht.Villeicht überlegst du es dir ja anders.")
                elseif 
1==a then
                    
if pc.get_money 100000000 then
                        say_title
("Uriel:")
                        
say("Du hast zu wenig Yang!")
                        
say("Komm wieder, wenn du genügend Yang hast!")
                    else
                        
say_title("Uriel:")                        
                        
say("Gut.Du hast dich entschieden.Pass gut auf dich auf!")
                        
say("Du wirst nun teleportiert.")
                        
pc.changemoney(-100000000)
                        
pc.warp(8320)
                        
end
                    end
                end
            end
        end
    end
end 
Ergebnis: syntax error : [string "start"]:4: `=´ expected near `a´

Ps: Am liebsten würde ich noch einbinden, dass man die map erst ab lvl 96 betreten kann.(ich wollte es erstmal so hinbekommen...war wohl nichts sitze shcon länger dran :D )

Danke im vorraus

mfg sp0nge
07/23/2011 01:02 Zwawo#2843
So müsste es denke ich gehen:
PHP Code:
quest zombiemap_port begin
    state start begin
        when 20011.chat
."Zombiemap teleportieren" begin
                say_title
("Zombiemap:")
                
say("Willst du dich in die Zombiemap teleportieren?")
                
say("Achtung!Es kostet dich 100kk Yang")
            if 
pc get_level ( ) < 96 then
                say
(" text...")
            
end
                locale a 
select("Ja""Nein")
            if 
2==a then
                say_title
("Uriel:")
                
say("Hmm...Dann nicht.Villeicht überlegst du es dir ja anders.")
            elseif 
1==a then
                
if pc.get_money 100000000 then
                say_title
("Uriel:")
                
say("Du hast zu wenig Yang!")
                
say("Komm wieder, wenn du genügend Yang hast!")
                else
                
say_title("Uriel:")                        
                
say("Gut.Du hast dich entschieden.Pass gut auf dich auf!")
                
say("Du wirst nun teleportiert.")
                
pc.changemoney(-100000000)
                
pc.warp(832000)    
                
end
            end
        end
    end
end 
07/23/2011 01:18 Sp0ngeb0b ist cool#2844
Danke, aber die funktioniert auch nicht. Ich habe zwar keine Kenntnisse aber ich glaube deine Zeile 7 bedeutet so viel wie: wenn der spieler unter 96 ist dann sag : möchtest du dich teleportieren..

müsste man dann nicht thoretisch irgendwie schreiben:

if pc . get_level ( ) < 96 then
say("du kannst dich nicht teleporten, da du zu niedrig bist")
return
else pc . get_level ( ) > 96 then
say("möchtest du dich teleporten?")
locale a = select("Ja", "Nein")

und so weiter? also so würde ich es mir erklären aber wie gesagt ich habe 0 ahnung da sist meine erste quest :(
07/23/2011 01:23 .Scy#2845
Quote:
Originally Posted by Zwawo View Post
So müsste es denke ich gehen:
PHP Code:
quest zombiemap_port begin
    state start begin
        when 20011.chat
."Zombiemap teleportieren" begin
                say_title
("Zombiemap:")
                
say("Willst du dich in die Zombiemap teleportieren?")
                
say("Achtung!Es kostet dich 100kk Yang")
            if 
pc get_level ( ) < 96 then
                say
(" text...")
            
end
                locale a 
select("Ja""Nein")
            if 
2==a then
                say_title
("Uriel:")
                
say("Hmm...Dann nicht.Villeicht überlegst du es dir ja anders.")
            elseif 
1==a then
                
if pc.get_money 100000000 then
                say_title
("Uriel:")
                
say("Du hast zu wenig Yang!")
                
say("Komm wieder, wenn du genügend Yang hast!")
                else
                
say_title("Uriel:")                        
                
say("Gut.Du hast dich entschieden.Pass gut auf dich auf!")
                
say("Du wirst nun teleportiert.")
                
pc.changemoney(-100000000)
                
pc.warp(832000)    
                
end
            end
        end
    end
end 
bestimmt net sry.
PHP Code:
quest zombiemap_port begin
    state start begin
        when 20011.chat
."Zombiemap teleportieren" begin
                say_title
("Zombiemap:")
                
say("Willst du dich in die Zombiemap teleportieren?")
                
say("Achtung!Es kostet dich 100kk Yang")
            if 
pc get_level ( ) < 96 then
                say
(" text...")
                
locale a select("Ja""Nein")
                
                if 
2==a then
                    say_title
("Uriel:")
                    
say("Hmm...Dann nicht.Villeicht überlegst du es dir ja anders.")
                elseif 
1==a then
                    
if pc.get_money 100000000 then
                        say_title
("Uriel:")
                        
say("Du hast zu wenig Yang!")
                        
say("Komm wieder, wenn du genügend Yang hast!")
                    else
                        
say_title("Uriel:")                        
                        
say("Gut.Du hast dich entschieden.Pass gut auf dich auf!")
                        
say("Du wirst nun teleportiert.")
                        
pc.changemoney(-100000000)
                        
pc.warp(832000)    
                    
end
                end
            
else
                return
            
end
        end
    end
end 
07/23/2011 01:51 Sp0ngeb0b ist cool#2846
Hmm die funktioniert auch nicht :(

Ich probiere es auch weiterhin. Bald wird es schon einem von uns gelingen :D

mfg sp0nge
07/23/2011 10:35 .Delta#2847
hier, sollte klappen ...
PHP Code:
quest zombiemap_port begin
    state start begin
        when 20011.chat
."Zombiemap teleportieren" begin
            say_title
("Zombiemap:")
            
say("Willst du dich in die Zombiemap teleportieren?")
            
say("Achtung!Es kostet dich 100kk Yang")
            if 
pc.get_level() >= 96 then
                say
(" text...")
                
local a select("Ja""Nein")               
                if 
== 2 then
                    say_title
("Uriel:")
                    
say("Hmm...Dann nicht.Villeicht überlegst du es dir ja anders.")
                elseif 
== 1 then
                    
if pc.get_money() < 100000000 then
                        say_title
("Uriel:")
                        
say("Du hast zu wenig Yang!")
                        
say("Komm wieder, wenn du genügend Yang hast!")
                    else
                        
say_title("Uriel:")                        
                        
say("Gut.Du hast dich entschieden.Pass gut auf dich auf!")
                        
say("Du wirst nun teleportiert.")
                        
pc.changemoney(-100000000)
                        
pc.warp(832000)    
                    
end
                end
            
else
                return
            
end
        end
    end
end 
07/23/2011 10:57 Sp0ngeb0b ist cool#2848
Danke! Funktioniert natürlich.(wenns der profi macht<3)

Hast du noch etwas wichtiges abgeändert?(denn dort steht Geändert von .Delta (Heute um 10:37 Uhr) ) und ich habe die quest vorher schon raus kopiert

mfg sp0nge

Edit: Kannst du mir erklären, was ich falsch gemacht habe?
07/23/2011 11:03 .Delta#2849
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
Danke! Funktioniert natürlich.(wenns der profi macht<3)

Hast du noch etwas wichtiges abgeändert?(denn dort steht Geändert von .Delta (Heute um 10:37 Uhr) ) und ich habe die quest vorher schon raus kopiert

mfg sp0nge

Edit: Kannst du mir erklären, was ich falsch gemacht habe?
Habe das < 96 zu >= 96 geändert in meinem edit ;)

Was sonst noch falsch war: es stand da: locale a = select...
richtig ist: local a = select ( immer local !)
Desweiteren haben dir hiner pc.get_money die klammern gefehlt ( pc.get_money() )
07/23/2011 11:08 Sp0ngeb0b ist cool#2850
Ahh oke danke :)

Naja für meine erste Quest fand ich das ganz oke.. :D

Ich denke du wirst nun öfter was von mir hören :D

mfg sp0nge

Edit: Und wie wäre das jetzt, wenn ich statt 100kk Yang ein Item einfügen würde?
(aber nur das er erkennt dass das item im inventar ist..also es soll kein item weggenommen werden nach benutzung)