[SERVICE] Die Questkontrolle

01/21/2014 19:21 .Xilent#9601
Quote:
Originally Posted by R2Down View Post
quest beta begin
state start begin
when 20094.chat."Special Maps" with pc.is_gm() begin
say_title("Neue Maps")
say("")
say("Bitte waehle aus wohin du geportet werden moehtest!")
say("")
local s = select("Tal des Gargoyle", "Tal der Lemuren", "Tal des Rakshasa", "Drachenraum", "Devilscatacomb", "SD3-Bosskammer", "Abbrechen")
if s == 1 then
pc.warp(1126400, 1510400)
end

if s == 2 then
pc.warp(1177600, 1664000)
end

if s == 3 then
pc.warp(1049600, 1510400)
end

if s == 4 then
pc.warp(843913, 1066918)
end

if s == 5 then
pc.warp(307200, 1203200)
end

if s == 6 then
pc.warp(87987, 614397)
end

if s == 7 then
return
end
end
end
end



Will eine Levelbegrenzung in jeder Map..Nur wie?
Quote:
PHP Code:
quest beta begin 
state start begin 
when 20094.chat
."Special Maps" begin 
say_title
("Neue Maps"
say(""
say("Bitte waehle aus wohin du geportet werden moehtest!"
say("")
datamaps = ({{11264001510400,20},{11776001664000,30},{11264001510400,40},{10496001510400,50},{843913,     1066918,60},{3072001203200,70},{3072001203200,70},{87987,     614397,80}})[select("Tal des Gargoyle""Tal der Lemuren""Tal des Rakshasa""Drachenraum""Devilscatacomb""SD3-Bosskammer""Abbrechen")]
if 
not datamaps then return end
if pc.get_level() >= datamaps[3then pc.warp(datamaps[1],datamaps[2])
else 
say_title("Du bist noch nicht so weit!"say(""say("Du musst mindestens Level "..datamaps[3].." sein!"end
end 
end 
end 
#
datamaps ist nach dem Schema {x koo, y koo, mindest lv}
01/21/2014 19:33 [SA]Mentras#9602
Brauche bitte immernoch Hilfe, beim einfügen der Quest kommt ne fehlermeldung.

Quote:
quest start begin
state start begin
when login with pc.level >= 1 begin
send_letter("Rekrutierung")
end
when button or info begin
say_title("Herzlich Willkommen in World of Saphira ")
say("Das spannende Abenteuer hat gerade")
say("begonnen. Könnt Ihr den Gefahren trotzen?")
say("Seid Ihr Bereit das Volk und Euren Kaiser zu ")
say("beschützen? Begebt Euch zum Stadtwächter")
say("um eine Ausbildung zum Soldaten zu beginnen.")
local v=find_npc_by_vnum(20355)
if 0==v then
else
target.vid("__TARGET__", v, mob_name(20355))
clear_letter()
set_state(information)
end
end
end
state information begin
when __TARGET__.target.click or 20355.chat."Der Hauptmann" begin
target.delete("__TARGET__")
say_title(mob_name(20355))
say("Hallo "..pc.get_name())
say("Seid Ihr bereit Euer Land und Euren Kaiser zu beschützen?")
say("Egal was der Preis dafür sein wird? ")
say("Ich werde Euch nun drei Prüfung unterziehen, um zu sehen, ob Ihr der Aufgabe gewachsen seid.")
say("Solltet Ihr erfolgreich sein, könnt Ihr Eure Ausbildung beginnen. ")
say("Des Weiteren werde ich euch mit einer zusätzlichen Ausrüstung ausstatten.")

send_letter("Erste Prüfung - Töte Wildhunde")
pc.setqf("state", 5)
q.set_counter("Verbleibend",5)
set_state(kill)
end
end

state kill begin
when 101.kill begin
pc.setqf("state", pc.getqf("state")+0)
q.set_counter("Verbleibend", pc.getqf("state"))
if pc.getqf("state") <= 0 then
clear_letter()
end
send_letter("Zweite Prüfung - Töte Blauwölfe")
pc.setqf("state", 5)
q.set_counter("Verbleibend",5)
set_state(killb)
end
end

state killb begin
when 104.kill begin
pc.setqf("state", pc.getqf("state")+0)
q.set_counter("Verbleibend", pc.getqf("state"))
if pc.getqf("state") <= 0 then
clear_letter()
end
send_letter("Dritte Prüfung - Töte Bären")
pc.setqf("state", 5)
q.set_counter("Verbleibend",5)
set_state(killa)
end
end

state killa begin
when 110.kill begin
pc.setqf("state", pc.getqf("state")+0)
q.set_counter("Verbleibend", pc.getqf("state"))
if pc.getqf("state") <= 0 then
clear_letter()
send_letter("Zurück zum Hauptmann")
end
end
end

when button or info begin
say_title("Zurück zum Hauptmann")
say("Begebe dich zurück zum Hauptmann!")
local v=find_npc_by_vnum(20355)
if 0==v then
else
target.vid("__TARGET__", v, mob_name(20355))
clear_letter()
set_state(belohnung)
end
end
end

state belohnung begin
when __TARGET__.target.click or 20355.chat."Zurück zum Hauptmann" begin
say_title("Gut gemacht!")
say("Hier hast du deine Belohnung für deine tapfere Tat!")
say("Trainiere weiter und glaubt an Euer Ziel, ich werde Euch rufen")
say("wenn Ihr stark genug seid, die nächste Prüfung zu bestehen.")
say("")
say_reward("...")
if pc.job == 0 then
pc.give_item2(27002,200 )
pc.give_item2(27002,200 )
pc.give_item2(27005,200 )
pc.give_item2(16)
pc.give_item2(11206)
pc.give_item2(12206)
pc.give_item2(13006)
pc.give_item2(14006)
pc.give_item2(15006)
pc.give_item2(16006)
pc.give_item2(17006)
pc.give_item2(72702)
pc.give_item2(71044, 20)
pc.give_item2(71045, 20)
pc.give_item2(70021)
pc.give_item2(10001)

elseif pc.job == 1 then
pc.give_item2(27002,200 )
pc.give_item2(27002,200 )
pc.give_item2(27005,200 )
pc.give_item2(1006)
pc.give_item2(11406)
pc.give_item2(12346)
pc.give_item2(13006)
pc.give_item2(14006)
pc.give_item2(15006)
pc.give_item2(16006)
pc.give_item2(17006)
pc.give_item2(72702)
pc.give_item2(71044, 20)
pc.give_item2(71045, 20)
pc.give_item2(70021)
pc.give_item2(10001)

elseif pc.job == 2 then
pc.give_item2(27002,200 )
pc.give_item2(27002,200 )
pc.give_item2(27005,200 )
pc.give_item2(16)
pc.give_item2(11606)
pc.give_item2(12486)
pc.give_item2(13006)
pc.give_item2(14006)
pc.give_item2(15006)
pc.give_item2(16006)
pc.give_item2(17006)
pc.give_item2(72702)
pc.give_item2(71044, 20)
pc.give_item2(71045, 20)
pc.give_item2(70021)
pc.give_item2(10001)

elseif pc.job == 3 then
pc.give_item2(27002,200 )
pc.give_item2(27002,200 )
pc.give_item2(27005,200 )
pc.give_item2(7006)
pc.give_item2(11806)
pc.give_item2(12626)
pc.give_item2(13006)
pc.give_item2(14006)
pc.give_item2(15006)
pc.give_item2(16006)
pc.give_item2(17006)
pc.give_item2(72702)
pc.give_item2(71044, 20)
pc.give_item2(71045, 20)
pc.give_item2(70021)
pc.give_item2(10001)
end
end
end
end
end

state __COMPLETE__ begin
end
end
01/21/2014 19:37 #187'#9603
Mein Problem besteht weiterhin,
assertion failure : nested==0
warpring.quest:157:Error occured on compile warpring.quest
Sieht einer den Fehler?
01/21/2014 21:48 GololOma#9604
Hallo, ich habe jetzt das Petsystem von Mr.Avenue, doch ich finde in seiner quest nicht wo/wie ich den pets bonis gebe, und ich kann das Panda siegel nicht rufen.


PHP Code:
quest pet_system begin
    state start begin
        
function get_pet_info(itemVnum)
            
pet_info_map = {
            --  [
ITEM VNUMMOB_VNUM, DEFAULT NAMEbuff_idxspawn_effect_idx
                
[53001]        = { 34001" - Feuerphönix"0},
                [
53002]        = { 34012" - Panda-Siegel"0},
                [
53003]        = { 34003" - Eisphönix"0},
                [
53005]        = { 34009" - Baby-Azrael"0},
                [
53006]        = { 34006" - Jungerhund-Siegel"0},
                [
53007]        = { 34008" - Löwenkind-Siegel"0},
                [
53008]        = { 34005" - Schweinekind-Siegel"0},
                [
53009]        = { 34007" - Tigerkind-Siegel"0},
                [
53014]        = { 34011" - Baby-Eisbär-Siegel"0},
            }

            
itemVnum tonumber(itemVnum)

            return 
pet_info_map[itemVnum]
        
end
        
function get_spawn_effect_file(idx)
            
effect_table = {
                [
0] = nil,
                [
1] = "d:\\\\ymir work\\\\effect\\\\etc\\\\appear_die\\\\npc2_appear.mse",
            }
            return 
effect_table [idx]
        
end
        when 53001.
use or 53002.use or 53003.use or 53004.use or 53005.use or 53006.use or 53007.use or 53008.use or 53009.use or 53010.use or 53012.use or 53013.use or 53014.use or 53015.use or
             
53016.use or 53017.use or 53018.use or 53019.use or 53020.use or 53021.use or 53022.use or 53023.use or 53024.use or 53025.use or 53026.use or 53027.use or 53028.use or 53029.use or
             
53030.use or 53031.use or 53032.use or 53033.use or 53034.use or 53035.use or 53036.use or 53037.use or 53038.use begin
            
if pc.getqf("petfirstuse") < 1 then
                mysql_query
("INSERT INTO player.pet_name VALUES("..pc.get_player_id()..",'Feuerphönix','Panda-Siegel','Eisphönix','Baby-Azrael','Porkie','Rufus','Khan','Leonidas','Gold-Azrael','Bambi','Knuud','Bao Bao','Elite-Phönix','Elite-Azrael','Elite-Porkie','Elite-Rufus','Elite-Khan','Elite-Leonidas','Offizier','Gold-Offizier','Boney','Giftphönix','Eisig. Porkie','Eisig. Rufus','Eisig. Khan','Eisig. Leonidas','Finst. Porkie','Finst. Rufus','Finst. Khan','Finst. Leonidas','Treuer Porkie','Treuer Rufus','Treuer Khan','Treuer Leonidas','Edler Porkie','Edler Rufus','Edler Khan','Edler Leonidas');")
                
pc.setqf("petfirstuse"1)
            
end
            local pet_info 
pet_system.get_pet_info(item.vnum)

            if 
null != pet_info then

                local mobVnum 
pet_info[1]
                
local petName " - "..pet.get_name(item.get_vnum()-53000)
                
local maxCount
                
if pc.is_gm() == true then
                    maxCount 
100
                
else
                    
maxCount 1
                end
                local spawn_effect_file_name 
pet_system.get_spawn_effect_file(pet_info[3])

                if 
true == pet.is_summon(mobVnumthen
                    
if spawn_effect_file_name != nil then
                        pet
.spawn_effect (mobVnumspawn_effect_file_name)
                    
end
                    pet
.unsummon(mobVnum)
                else
                    if 
pet.count_summoned() < maxCount then
                        pet
.summon(mobVnumpetNamefalse)
                    else
                        
syschat("Du hast bereits ein Haustier gerufen.")
                    
end
                    
if spawn_effect_file_name != nil then
                        pet
.spawn_effect(mobVnumspawn_effect_file_name)
                    
end
                end 
-- if pet.is_summon
            end  
-- if null != pet_info
        end 
-- when
    end 
-- state
end 
-- quest 
01/21/2014 22:41 moldhenr#9605
Guten Abend, kann mir hier jemand aushelfen?
PHP Code:
quest warp begin
    state start begin
        when 30521.
use begin
            say_title
("Teleport")
            
say("Wo moechtest Du hin teleportiert werden?")
            
local s=select("Levelmap ab 90""Levelmap ab 100""Farmmap 1 ab 95""Farmmap 2 ab 105""Orktal Mitte""Andere Warps")
                if 
s==1 then
                    
if pc.get_level()<90 then
                        say
("Dein Level ist zu niedrig..")
                        
say("Mindestlevel: 90")
                        return
                    
end
                        pc
.warp(10240001664000)          
                elseif 
s==2 then
                    
if pc.get_level()<100 then
                        say
("Dein Level ist zu niedrig..")
                        
say("Mindestlevel: 100")
                        return
                    
end
                        pc
.warp(10496001510400)           
                elseif 
s==3 then
                    
if pc.get_level()<95 then
                        say
("Dein Level ist zu niedrig..")
                        
say("Mindestlevel: 95")
                        return
                    
end
                        pc
.warp(12131001643500                
                
elseif s==4 then
                    
if pc.get_level()<105 then
                        say
("Dein Level ist zu niedrig..")
                        
say("Mindestlevel: 105")
                        return
                    
end
                        pc
.warp(9000010000)            
                elseif 
s==5 then
                    
if pc.get_level()<40 then
                        say
("Dein Level ist zu niedrig..")
                        
say("Mindestlevel: 40")                
                        return
                    
end
                        pc
.warp(333000746500)
                elseif 
s==6 then
                        a
=select("Blaues Reich Map1""Gelbes Reich Map1""Rotes Reich Map1""Abbrechen")
                            if 
a==1 then
                                
if pc.get_level()<1 then
                                    say
("Du wirst in blaue Reich geportet.")                
                                    return
                                
end
                                pc
.warp(9696002784400)
                            elseif 
a==2 then
                                
if pc.get_level()<1 then
                                    say
("Du wirst in gelbe Reich geportet.")
                                    return
                                
end
                                pc
.warp(55700157900)    
                            elseif 
a==3 then
                                
if pc.get_level()<1 then
                                    say
("Du wirst in rote Reich geportet.")
                                    return
                                
end
                                pc
.warp(469300964200 )                
                            elseif 
a==4 then 
                                
if pc.get_level()<1 then
                                    say
("Hast Dich wohl verklickt..")
                                    return
                                
end
                            end
                        end
                end
            end        
        end
    end
end 
01/22/2014 10:50 V0lvox#9606
@moldhent.. was sagt deine make.py/sh ?

Du hast ein paar Klammern vergessen
so müsste es gehen..
01/22/2014 15:55 £αšεℜ™#9607
Quote:
Originally Posted by £αšεℜ™ View Post
Es wehre nett wenn man immer das gleiche pet hatt egal welches level

Danke
PHP Code:
quest pets begin
    state start begin    
    
        
function givebonus(x)
            
local y,boni = {53,54,1},pets.bonusliste()
            
table.foreach(boni[x],function(i,l)  cmdchat("HaustierBonus"..i.." "..l..""affect.add_collect(y[i],l,60*60*24*365*60end )
            
cmdchat("HaustierLevel "..pc.getqf('petlevel').."")
            
cmdchat("HaustierName "..pc.get_name().."")
            
pc.setqf("petruf",1)                
        
end
        
function bonusliste()
            return {
                [
1] = {200,100,500},
                [
2] = {250,150,1000},
                [
3] = {300,200,1500},
                [
4] = {350,250,2000},
                [
5] = {400,300,3000},
            }
        
end    
        
function removebonus(x)
            
local y,boni = {53,54,1},pets.bonusliste()
            
table.foreach(boni[x],function(i,laffect.remove_collect(y[i],l,60*60*24*365*60end )
             
pet.unsummon()
            
pc.setqf("petruf",0)
            
horse.set_level("21")
            
cmdchat("HidePetGui")
            
cleartimer("bugcheck")
        
end        
    
        when 53001.
use begin
            horse
.unride() horse.unsummon()
            if 
pc.is_mount() then
                say_title
("Entschuldigung")
                
say("Bitte steige von deinem Mount ab!")
                return
            
end
            
if pc.getqf('petlevel') == 0 then
                pc
.setqf('petlevel',1)
            
end
            
if pc.getqf("petruf") == 0 then
                local Horselevel 
23-pc.getqf('petlevel')
                
horse.set_level(22)
                 
pet.unsummon()  pet.summon()
                
chat("Dein Haustier wurde gerufen.")
                
pets.givebonus(pc.getqf('petlevel'))
                
local expprocent1 = {2080160350400}
                
cmdchat("PetProcentExp "..(pc.getqf("exp")/expprocent1[pc.getqf("petlevel")]).."")                
                
cmdchat("ShowPetGui")
                
loop_timer("bugcheck"0.2)
            elseif 
pc.getqf("petruf") == 1 then        
                pets
.removebonus(pc.getqf('petlevel'))
                
chat("Dein Haustier verabschiedet sich nun.")
            
end        
        end
        
        
        when kill with pc
.getqf("petruf") == 1 begin
            
if pc.getqf("petlevel") == 5 then
                
return
            
end    
            
if not npc.is_pc() then
                pc
.setqf("exp",pc.getqf("exp")+1)
                
local exp2up = {20008000160003500040000}
                
local expprocent = {2080160350400}
                
cmdchat("PetProcentExp "..(pc.getqf("exp")/expprocent[pc.getqf("petlevel")]).."")
                if 
pc.getqf("exp") == exp2up[pc.getqf("petlevel")] then
                    
if pc.getqf("petlevel") == 4 then
                        say_title
("Herzlichen Glückwunsch")
                        
say("Dein Haustier erreicht Level "..(pc.getqf("petlevel")+1).."")
                        
say_reward("Dies war das letzte Level!")
                    
end
                    say_title
("Herzlichen Glückwunsch")
                    
say("Dein Haustier erreicht Level "..(pc.getqf("petlevel")+1).."")
                    
say("Rufe dein Pet bitte erneut!")
                    
pc.setqf("exp",0)
                    
pets.removebonus(pc.getqf('petlevel'))
                
end
            end
        end
        
        
-- Bugschutz
        
        when bugcheck
.timer begin
            
if pc.count_item(53003) == 0 then
                say_title
("Buguser")
                
say("Bugusing festgestellt!")
                
pets.removebonus(pc.getqf('petlevel'))
            
end
        end
        
        when login 
or logout or disconnect with pc.getqf("petruf") == 1 begin
            pets
.removebonus(pc.getqf('petlevel'))
            
chat("Dein Haustier ist nicht mitgekommen...")
            
chat("Rufe es erneut!")    
        
end        
        
    end    
end 
Bräuchte immernoch hilfe leute
01/23/2014 21:25 J3igStar13#9608

In VBox zeigt er mir ein Fehler an....

Mfg
01/24/2014 16:43 ZarneX#9609
Ich bekomm den Fehler :
Code:
assertion failure : nested==0
warptest.quest:200:Error occured on compile warptest.quest

Kann mir jemand helfen?
01/24/2014 17:06 Walion#9610
Ich habe eine DC Quest eingebaut und wenn ich in der ersten Ebene den Schlüssel auf die Statue ziehe, werde ich hochgeportet aber sofort wieder rausgeportet, manchmal allerdings funktioniert es und ich bleibe drinne. Kann mir jemand helfen? Die syserr sagt:

SYSERR: Jan 24 15:57:14 :: AddServerTimer: already registered server timer name:devilcave_available_time1 arg:2060000
01/24/2014 18:07 !DerDude#9611
Hallo,

ich habe den normalen Warehouse Quest Code zu

PHP Code:
quest warehousemobile begin
    state start begin
        when 70007.
use begin        
            
if pc.getqf("pw")==0 then
                say_title
("Lagerverwalter")
                
say("Hallo Fremder,")
                
say("ich kann deine Items lagern")
                
say("allerdgins brauch ich dafür eine")
                
say("kleine Einrichtungsgebühr von")
                
say("500 Yang.")
                
say_reward("Möchtest du das bezahlen?")
                
local s=select("Bezahlen""Nicht bezahlen")
                if 
s==2 then
                    
return
                
end
                
if pc.get_gold()<500 then
                    say_title
("Lagerverwalter")
                    
say("Du hast zu wenig Yang")
                    return
                
end
                say_title
("Lagerverwalter")
                
say("Du hast erfolgreich ein Lager")
                
say("eröffnet.")
                
say_reward("Dein Passwort ist 000000")
                
pc.change_gold(-500)
                
game.set_safebox_level(1)
                
pc.setqf("pw"1)
            elseif 
pc.getqf("pw")==1 then 
                say_title
("Lagerverwalter")
                
say("Was kann ich für dich tun?")
                
local f select("Lager öffnen""Barren kaufen""Itemshoplager öffnen""Abbrechen")
                if 
== 1 then
                    game
.open_safebox()
                    
setskin(NOWINDOW)
                elseif 
== 2 then                
                    npc
.open_shop()
                    
setskin(NOWINDOW)                
                elseif 
== 3 then
                    game
.open_mall()
                    
setskin(NOWINDOW)
                
end
            end
        end
    end
end 
Nur leider tut sich gar nichts, wenn ich auf's Item klicke.
Quest ist eingetragen und wurde geladen.
01/24/2014 20:49 .Shōgun#9612
Quote:
Originally Posted by !DerDude View Post
Hallo,

ich habe den normalen Warehouse Quest Code zu

PHP Code:
quest warehousemobile begin
    state start begin
        when 70007.
use begin        
            
if pc.getqf("pw")==0 then
                say_title
("Lagerverwalter")
                
say("Hallo Fremder,")
                
say("ich kann deine Items lagern")
                
say("allerdgins brauch ich dafür eine")
                
say("kleine Einrichtungsgebühr von")
                
say("500 Yang.")
                
say_reward("Möchtest du das bezahlen?")
                
local s=select("Bezahlen""Nicht bezahlen")
                if 
s==2 then
                    
return
                
end
                
if pc.get_gold()<500 then
                    say_title
("Lagerverwalter")
                    
say("Du hast zu wenig Yang")
                    return
                
end
                say_title
("Lagerverwalter")
                
say("Du hast erfolgreich ein Lager")
                
say("eröffnet.")
                
say_reward("Dein Passwort ist 000000")
                
pc.change_gold(-500)
                
game.set_safebox_level(1)
                
pc.setqf("pw"1)
            elseif 
pc.getqf("pw")==1 then 
                say_title
("Lagerverwalter")
                
say("Was kann ich für dich tun?")
                
local f select("Lager öffnen""Barren kaufen""Itemshoplager öffnen""Abbrechen")
                if 
== 1 then
                    game
.open_safebox()
                    
setskin(NOWINDOW)
                elseif 
== 2 then                
                    npc
.open_shop()
                    
setskin(NOWINDOW)                
                elseif 
== 3 then
                    game
.open_mall()
                    
setskin(NOWINDOW)
                
end
            end
        end
    end
end 
Nur leider tut sich gar nichts, wenn ich auf's Item klicke.
Quest ist eingetragen und wurde geladen.
Check that the item type in item_proto is ITEM_QUEST
01/25/2014 16:46 Shyox#9613
Kann mir bitte jemand helfen?

Wenn ich dann z.B. mich einlogge mit neuen char. kommen alle bede quest aber es wird nur mit den W.Eid gezählt.

Aber ich möschte gerne das ich erst die lvl 1 auftrag abschließe und dann erst die lvl 10 auftrag kommt

Bitte um schnelle hilfe


PHP Code:
quest Jagdquest begin
    state start begin
        when login 
or levelup with pc.level >= 1 begin
            set_state
(information)
        
end
    end
    
    state information begin
        when letter begin
            send_letter
("Jagdauftrag (lvl 1)")
        
end

        when info 
or button begin
           say_title
("Test ")
            
say("Das spannende Abenteuer hat gerade erst")
            
say("begonnen. Köennt Ihr den Gefahren trotzen?")
            
say("Seid Ihr Bereit das Volk und Euren Kaiser zu ")
            
say("beschuetzen? Wenn ja, dann Jage 20 Wildhunde")
            
say("")
            
say_reward("Jage 20 x Wildhund")
            
pc.setqf("state1"0)
            
q.set_counter("Schwarzer Ork"20)
            
set_state(kill)
            
end
        end
    
    state kill begin
        when letter begin
            send_letter
("Jage 20 Wildhunde")
        
end
    
        when info 
or button begin
            say_title
("Jage 20 Wildhunde")
            
say("Staus:")
            
say_reward("Du hast schon "..pc.getqf("state1").." von 20 x Wildhund")
        
end
        
        when 101.kill begin
            local count1 
pc.getqf("state1") + 1
            
if count1 <= 20 then
                pc
.setqf("state1"count1)
                
q.set_counter("Wildhund"count1)
            
end
        
            
if count1 == 20 then
            set_state
(fertig)
            
end
     end
     end
    state fertig begin
        when letter begin
            send_letter
("Aufgabe abgeschlossen!")
        
end
        
        when info 
or button begin
            say_title
("Aufgabe abgeschlossen!")
            
say("Du hast es geschaft")
            
say("Ich dachte schon du schafst es nicht")
            
say("Du bist wirklich Gut. (Ab Level 10 gibt es eine weitere Aufagbe.)")
            
wait()
            
say("Natürlich bekommst du deine Belohnung.")
                
say_reward("Du hast eine Lehrlingstruhe I erhalten")
                
say_reward("Du hast 500k erhalten")
                
pc.change_money(500000)
               
pc.give_item2(501871)
                
clear_letter()
                
set_state(Jagdquest1)
            
end
        end
------------Jagdquest lvl 10---------------
   
   
state Jagdquest1 begin
        when login 
or levelup with pc.level >= 10 begin
            set_state
(information)
        
end
    end
    
    state information begin
        when letter begin
            send_letter
("Jagdauftrag (lvl 10)")
        
end

        when info 
or button begin
           say_title
("Jagdauftrag Level 10")
            
say("So, du Abenteurer, wie ich sehe, stehst du am Anfang deiner Laufbahn.")
            
say("Damit du auf größere Abenteuer vorbereitet wirst töte bitte 30 W.Eid. Soldatin.")
            
say("Wenn du dies geschafft hast, erhälst du von mir Sachen, die deinen")
            
say("weiteren Werdegang erleichtern werden.")
            
say("")
            
say_reward("Jage 30 x W.Eid. Soldatin")
            
pc.setqf("state1"0)
            
q.set_counter("W.Eid. Soldatin"30)
            
set_state(kill)
            
end
        end
    
    state kill begin
        when letter begin
            send_letter
("Jage 30 W.Eid. Soldatin")
        
end
    
        when info 
or button begin
            say_title
("Jage 30 W.Eid. Soldatin")
            
say("Staus:")
            
say_reward("Du hast schon "..pc.getqf("state1").." von 30 x W.Eid. Soldatin gejagd")
        
end
        
        when 301.kill begin
            local count1 
pc.getqf("state1") + 1
            
if count1 <= 30 then
                pc
.setqf("state1"count1)
                
q.set_counter("W.Eid. Soldatin"count1)
            
end
            
if count1 == 30 then
            set_state
(fertig)
            
end
        end
    end
            
    state fertig begin
        when letter begin
            send_letter
("Aufgabe abgeschlossen!")
        
end
        
        when info 
or button begin
            say_title
("Aufgabe abgeschlossen!")
            
say("Du hast es geschaft")
            
say("Ich dachte schon du schafst es nicht")
            
say("Du bist wirklich Gut. (Ab Level 20 gibt es eine weitere Aufagbe.)")
            
wait()
            
say("Natürlich bekommst du deine Belohnung.")
                
say_reward("Du hast eine Lehrlingstruhe II erhalten")
                
say_reward("Du hast 1k erhalten")
                
pc.change_money(1000000)
               
pc.give_item2(501881)
                
clear_letter()
                
set_state(ende)
            
end
        end
    state ende begin
    end
end 
MfG

Shyox
01/25/2014 23:26 Way of Life#9614
Hi,

habe ein paar Quests, die angepasst werden müssen!

Quest 1:

PHP Code:

quest change_coin begin
    state start begin
        when NPCVNUM
.chat."Taler eintauschen" begin
            say_title
(string.format("%s:"mob_name(npc.get_race())))
            
say("")
            
say("Wieviele Taler möchtest du eintauschen?")
            
say_reward("Du hast "..tostring(pc.count_item(TALERVNUM)).." Taler.")
            
say("")
            
local change_available_taler = {51015202550}
            
local select_tab = {}
            for 
1table.getn(change_available_taler), do
                
table.insert(select_tabtostring(change_available_taler[i]).." Taler")
            
end
            local sel 
select_table(select_tab,"Abbrechen")
            if 
sel table.getn(change_available_talerthen return end
            
if pc.count_item(TALERVNUM) < change_available_taler[selthen
                syschat
("Du hast nicht genügend Taler.")
                return
            
end
            pc
.remove_item(TALERVNUMchange_available_taler[sel])
            
local ran_items = {
                [
5] = {        -- 5 Taler
                    
{191},
                    {
27001100},
                },
                [
10] = {    -- 10 Taler
                    
{291},
                    {
27002100},
                },
                [
15] = {    -- 15 Taler
                    
{391},
                    {
27003100},
                },
                [
20] = {    -- 20 Taler
                    
{491},
                    {
27001200},
                },
                [
25] = {    -- 25 Taler
                    
{591},
                    {
27002200},
                },
                [
50] = {    -- 50 Taler
                    
{691},
                    {
27003200},
                },
            }
            
local temp ran_items[number(1table.getn(ran_items[change_available_taler[sel]]))]
            
pc.give_item2(temp[1], temp[2])
        
end
    end
end 
Problem: Taler werden abgezogen, aber man bekommt kein zufälliges Item.

Nächste Quest:

Ist eher ne Anfrage..Könnte mir jemand ne Vorlage in dieser Form schreiben:
1) Beim ersten Login öffnet sich ne Willkommensnachricht, die einem sagt dass man zu NPC X laufen muss. Dieser gibt dir einen Mobkill-Auftrag, du erledigst ihn, läufst zu ihm zurück und bekommst eine Belohnung

Problem Nummer 3:

PHP Code:
quest hdf begin 
    state start begin 
        
function ab() 
            
local ju = { 
                --
mob-id--min-level--max-level---item-anzahl---prozent---item-id's----prozentuale veränderung pro level 
                {8001,     1,         10,             3,        100,100,100,    50126, 27803, 21,        1}, 
            } 
            return ju 
        end 
        when kill with not npc.is_pc() begin 
            local boni,lck,per,luck,bsp = 0,0,0,0,hdf.ab() 
            for i = 1, table.getn(bsp)+1, 1 do 
                if npc.get_race() == bsp[i][1] then 
                    if pc.get_level() >= bsp[i][2] and pc.get_level() <= bsp[i][3] then 
                        boni = (bsp[i][2] - pc.get_level()) * (-1) 
                        boni = boni * bsp[i][bsp[i][4]*2+5] 
                        luck = number(1,bsp[i][4]) 
                        luck = luck + 4 + bsp[i][4] 
                        lck = luck - bsp[i][4] 
                        per = 100 - bsp[i][lck] + boni 
                        lck = number(1,100) 
                        if lck > per then 
                            game.drop_item_with_ownership(bsp[i][luck], 1) 
                        end 
                    end 
                end 
            end 
        end 
    end 
end 
Ich droppe IMMER nur ein Item, die 1 bei game.drop_item am Ende habe ich schon versucht zu ändern, klappt nicht.

Lg
01/26/2014 09:04 Shyox#9615
Quote:
Originally Posted by Shyox View Post
Kann mir bitte jemand helfen?

Wenn ich dann z.B. mich einlogge mit neuen char. kommen alle bede quest aber es wird nur mit den W.Eid gezählt.

Aber ich möschte gerne das ich erst die lvl 1 auftrag abschließe und dann erst die lvl 10 auftrag kommt

Bitte um schnelle hilfe


PHP Code:
quest Jagdquest begin
    state start begin
        when login 
or levelup with pc.level >= 1 begin
            set_state
(information)
        
end
    end
    
    state information begin
        when letter begin
            send_letter
("Jagdauftrag (lvl 1)")
        
end

        when info 
or button begin
           say_title
("Test ")
            
say("Das spannende Abenteuer hat gerade erst")
            
say("begonnen. Köennt Ihr den Gefahren trotzen?")
            
say("Seid Ihr Bereit das Volk und Euren Kaiser zu ")
            
say("beschuetzen? Wenn ja, dann Jage 20 Wildhunde")
            
say("")
            
say_reward("Jage 20 x Wildhund")
            
pc.setqf("state1"0)
            
q.set_counter("Schwarzer Ork"20)
            
set_state(kill)
            
end
        end
    
    state kill begin
        when letter begin
            send_letter
("Jage 20 Wildhunde")
        
end
    
        when info 
or button begin
            say_title
("Jage 20 Wildhunde")
            
say("Staus:")
            
say_reward("Du hast schon "..pc.getqf("state1").." von 20 x Wildhund")
        
end
        
        when 101.kill begin
            local count1 
pc.getqf("state1") + 1
            
if count1 <= 20 then
                pc
.setqf("state1"count1)
                
q.set_counter("Wildhund"count1)
            
end
        
            
if count1 == 20 then
            set_state
(fertig)
            
end
     end
     end
    state fertig begin
        when letter begin
            send_letter
("Aufgabe abgeschlossen!")
        
end
        
        when info 
or button begin
            say_title
("Aufgabe abgeschlossen!")
            
say("Du hast es geschaft")
            
say("Ich dachte schon du schafst es nicht")
            
say("Du bist wirklich Gut. (Ab Level 10 gibt es eine weitere Aufagbe.)")
            
wait()
            
say("Natürlich bekommst du deine Belohnung.")
                
say_reward("Du hast eine Lehrlingstruhe I erhalten")
                
say_reward("Du hast 500k erhalten")
                
pc.change_money(500000)
               
pc.give_item2(501871)
                
clear_letter()
                
set_state(Jagdquest1)
            
end
        end
------------Jagdquest lvl 10---------------
   
   
state Jagdquest1 begin
        when login 
or levelup with pc.level >= 10 begin
            set_state
(information)
        
end
    end
    
    state information begin
        when letter begin
            send_letter
("Jagdauftrag (lvl 10)")
        
end

        when info 
or button begin
           say_title
("Jagdauftrag Level 10")
            
say("So, du Abenteurer, wie ich sehe, stehst du am Anfang deiner Laufbahn.")
            
say("Damit du auf größere Abenteuer vorbereitet wirst töte bitte 30 W.Eid. Soldatin.")
            
say("Wenn du dies geschafft hast, erhälst du von mir Sachen, die deinen")
            
say("weiteren Werdegang erleichtern werden.")
            
say("")
            
say_reward("Jage 30 x W.Eid. Soldatin")
            
pc.setqf("state1"0)
            
q.set_counter("W.Eid. Soldatin"30)
            
set_state(kill)
            
end
        end
    
    state kill begin
        when letter begin
            send_letter
("Jage 30 W.Eid. Soldatin")
        
end
    
        when info 
or button begin
            say_title
("Jage 30 W.Eid. Soldatin")
            
say("Staus:")
            
say_reward("Du hast schon "..pc.getqf("state1").." von 30 x W.Eid. Soldatin gejagd")
        
end
        
        when 301.kill begin
            local count1 
pc.getqf("state1") + 1
            
if count1 <= 30 then
                pc
.setqf("state1"count1)
                
q.set_counter("W.Eid. Soldatin"count1)
            
end
            
if count1 == 30 then
            set_state
(fertig)
            
end
        end
    end
            
    state fertig begin
        when letter begin
            send_letter
("Aufgabe abgeschlossen!")
        
end
        
        when info 
or button begin
            say_title
("Aufgabe abgeschlossen!")
            
say("Du hast es geschaft")
            
say("Ich dachte schon du schafst es nicht")
            
say("Du bist wirklich Gut. (Ab Level 20 gibt es eine weitere Aufagbe.)")
            
wait()
            
say("Natürlich bekommst du deine Belohnung.")
                
say_reward("Du hast eine Lehrlingstruhe II erhalten")
                
say_reward("Du hast 1k erhalten")
                
pc.change_money(1000000)
               
pc.give_item2(501881)
                
clear_letter()
                
set_state(ende)
            
end
        end
    state ende begin
    end
end 
MfG

Shyox
Brauch immer noch hilfe