[SERVICE] Die Questkontrolle

11/17/2013 14:39 Yiv#9271
Quote:
Originally Posted by Noa_ View Post
versuch's mal so, hab's ein wenig verbessert

PHP Code:
-- ##############################
-- #####                    #####
-- #      For Server: EOS2      #
-- #   Copyright by DJB 2013.   #
-- #####                    #####
-- ##############################

quest userpanel begin
    state start begin
        
function main_menu()
            
local pcname pc.get_name()
            
local allowed = {"[SA]ViCi"}
            
local auswahl={"Teleportieren""Lager öffnen""GM-Online Liste""Informationen""GM-Panel"}
            for 
1table.getn(allowed) do
                if 
pcname == allowed[ithen
                    check 
= (pcname == allowed[i])
                    
table.remove(auswahl,table.getn(auswahl))
                
end
            end
            table
.insert(auswahl,'Schließen')
            
say_title("Userpanel")
            
say("")
            
local sel select_table(auswahl)
            if 
sel == 1 then
                userpanel
.teleport()
            elseif 
sel == 2 then
                userpanel
.save_box()
            elseif 
sel == 3 then
                cmdchat
("ShowGMOnline")
            elseif 
sel == 4 then
                userpanel
.info()
            elseif 
sel == and check then
                userpanel
.gm()
            elseif 
sel == table.getn(auswahlthen 
                
return 
            
end
        end
        
        
function teleport()
            
local warps = {"Map 1""Map 2""Orktal (Mitte)""Eisland (Mitte)""Spinnendungeon 1 (Ende)"}
            
local koord = {
                {-- 
Map 1 
                    
{x,y}, -- rot
                    
{x,y}, -- gelb
                    
{x,y}, -- blau
                
},
                {-- 
Map 2 
                    
{x,y}, -- rot
                    
{x,y}, -- gelb
                    
{x,y}, -- blau
                
},
                {--
Orktal
                    
{x,y}, -- rot
                    
{x,y}, -- gelb
                    
{x,y}, -- blau
                
},
                {-- 
Eisland
                    
{x,y}, -- rot
                    
{x,y}, -- gelb
                    
{x,y}, -- blau
                
},
                {-- 
SD1 
                    
{x,y}, -- rot
                    
{x,y}, -- gelb
                    
{x,y}, -- blau
                
},
                
            }
            
say_title("Userpanel -> Teleportieren")
            
say("")
            
table.insert(warps,"Zurück zum Hauptmenü")
            
local sel select_table(warps)
            if 
sel == table.getn(selthen
                userpanel
.main_menu()
            else
                
pc.warp(koord[sel][pc.get_empire()][1], koord[sel][pc.get_empire()][2])
            
end
        end
        
        
function save_box()
            if 
pc.get_map_index() == 214 then
                say_title
("Userpanel - Warnung")
                
say("")
                
say("Auf dieser Map kannst du das Lager nicht[ENTER]öffnen.")
                if 
select("Zurück""Schließen") == 2 then return end
                userpanel
.main_menu()
            else
                
game.open_safebox()
            
end
        end
        
        
function info()
            
local infos = {
                [
1] = {"PLATZHALTER[ENTER]PLATZHALTER"},
                [
2] = {"PLATZHALTER[ENTER]PLATZHALTER"},
                [
3] = {"PLATZHALTER[ENTER]PLATZHALTER"},
                [
4] = {"PLATZHALTER[ENTER]PLATZHALTER"},
                [
5] = {"PLATZHALTER[ENTER]PLATZHALTER"},
            }
            
say_title("Userpanel -> Informationen")
            
say("")
            
local tabelle = {"Kategorie 1""Kategorie 2""Kategorie 3""Kategorie 4""Kategorie 5""Zurück zum Hauptmenü","Schließen"}
            
local sel select_table(tabelle)
            if 
sel == table.getn(tabellethen 
                
return 
            elseif 
sel <= 5 then
                say_title
("Informationen -> Kategorie "..sel)
                
say("")
                
say(string.format("%s"infos[sel]))
            else
                
userpanel.main_menu()
            
end
        end
        
        
function gm()
            
say_title("GM-Panel")
            
say_gold("Du bist im GM-Panel *-*")
            
local sel select("Rates einstellen""Zurück""Schließen")
            if 
sel == 1 then
                say_title
("Rates")
                
say("")
                
say("Reich?")
                
local sel select("Alle""Rotes Reich""Gelbes Reich""Blaues Reich""Abbrechen")
                if 
sel == 5 then return end
                say_title
("Rates")
                
say("")
                
say("Höhe (in Prozent):")
                
local inp input()
                if 
inp == "" or inp == nil then return end
                say_title
("Rates")
                
say("")
                
say("Zeit (in Stunden):")
                
local inp2 input()
                if 
inp == "" or inp == nil then return end
                local wert 
sel-1
                command
("priv_empire "..wert.." 1 "..inp.." "..inp2)
                
command("priv_empire "..wert.." 2 "..inp.." "..inp2)
                
command("priv_empire "..wert.." 4 "..inp.." "..inp2)
            elseif 
sel == 2 then
                userpanel
.main_menu()
            elseif 
sel == 3 then 
                
return 
            
end
        end
        
        when 91125.
use begin
            userpanel
.main_menu()
        
end
    end
end 
Fehler:
Code:
userpanel.quest:146:assertion failure : nested==0
Error occured on compile userpanel.quest
.__.

MfG
11/17/2013 15:42 Noa_#9272
Quote:
Originally Posted by DaJuBi View Post
Fehler:
Code:
userpanel.quest:146:assertion failure : nested==0
Error occured on compile userpanel.quest
.__.

MfG
bei mir spinnt er wenn ich " ü " verwende, habs nicht getestet aber der compiler sagt mir kein Fehler mehr.

11/17/2013 15:58 Yiv#9273
Der Parser von Mijago gibt mir zumindest keinen Fehler mehr, jetzt teste ich es eben noch direkt im Server :)

FUNKTIONIERT :handsdown::handsdown:

MfG
11/17/2013 17:04 Prototype333#9274
Hallo.
Ich weiß nicht wo hier der Fehler ist .. mag jmd helfen? :)

Pferd steigern Quest:
11/17/2013 17:19 DerForenLeser#9275
Quote:
Originally Posted by Prototype333 View Post
Hallo.
Ich weiß nicht wo hier der Fehler ist .. mag jmd helfen? :)

Pferd steigern Quest:


Müsste funktionieren.



Liebe Grüße
11/17/2013 17:24 Prototype333#9276
Tut es aber nicht .. Fehler: [Only registered and activated users can see links. Click Here To Register...]
11/17/2013 20:55 Noa_#9277
PHP Code:
        when 20349.chat."Pferd steigern" with horse.get_level()< 11 begin 
            say_title
("Stallbursche:"
            
say(""
            
say("Hallo!"
            
say("Bei mir kannst du dein Pferd steigern."
            
say("Dein Pferd bis zum KG steigern kostet dich pro Level 1kk."
            
say(""
            if 
select("Ja""Nein")==2 then 
                
return 
            else 
                
say_title("Stallbursche:"
                
say("Um wie viel Level möchtest du dein Pferd steigern?"
                
say(""
                
local s select("Um 1 Level steigern""Auf Level 10 steigern""Abbrechen"
                if 
== 3 then 
                    
return 
                else
                    
local geld s==and 1e6 or 1e7
                    
if pc.money >=geld then 
                        pc
.changemoney(-geld
                        
horse.unride() 
                        
horse.set_level((s==and (horse.get_level()+1)or 10)) 
                        
horse.ride() 
                        
say("Dein Pferd hat nun Level "..(horse.get_level()).." erreicht."
                        
say(""
                    else
                        
say'Du hast nicht genug geld bei dir'
                    
end
                end 
            end 
        end 
11/18/2013 20:23 DJzocker95#9278
Was ist da falsch?
Fehler: qc in malloc(): error: allocation failed

PHP Code:
quest siegel begin
    state start begin
        when letter with pc
.get_level()>=1 begin
            send_letter
("Reittiere")
        
end
        when button 
or info begin
        say
("Womit kann ich Ihnen dienen?")
            
local s select("Keiler","Tiger","Wolft","Löwe","Schließen")
            
            if 
== 5 then
                say
("Nun gut, dann nicht.")
                return
                
            if 
== 1 then
            pc
.give_item2(71114)
        
            if 
== 2 then
            pc
.give_item2(71118)         
        
            if 
== 3 then
            pc
.give_item2(71116)
            
            if 
== 4 then
            pc
.give_item2(71120)
        
end
    end
end 
11/18/2013 21:52 DerForenLeser#9279
Anstatt if s == 1 ; 2 ; 3 ; 4 musst Du else benutzen.


Liebe Grüße
11/18/2013 22:39 DJzocker95#9280
Hallo Leute, ich hab folgendes Problem.

Und zwar wenn man in Prestige geht sollte man ja eigtl. LV1 sein aber bei mir geht der Char. sofort wieder Lv 99 (max Lv)

Ich hab das mit mehreren Acc's probiert. Überall das gleiche..

Was ist da falsch?:/
11/19/2013 22:38 alpaalpa#9281
PHP Code:
quest endless_switch begin
    state start begin
        when 71084.
use with item.get_count () < 10 begin
            pc
.give_item2(710841)
        
end
    end
end 
Müsste mir doch eig immer wenn ich weniger als 10 Switcher im Inventar habe wieder einen dazu geben also dass ich das Stack endlos benutzen kann oder?
11/19/2013 22:45 ~Crain~#9282
quest fbread begin
state start begin
function learnskill(skill)
local SkillLevel = pc.get_skill_level(skill)
if SkillLevel < 1 then
syschat("<System> Das kannst du nicht lesen.")
return
end
if SkillLevel < 20 then
syschat("<System> Diese Fertigkeit hast du noch nicht erlernt.")
return
end
if SkillLevel > 29 then
syschat("<System> Du hast diese Fertigkeit bereits gelernt.")
return
end
pc.set_skill_level(skill, SkillLevel+1)
syschat("<System> Du hast das Fertigkeitsbuch erfolgreich gelesen.")
item.remove()
if pc.is_skill_book_no_delay() then
pc.remove_skill_book_no_delay()
end
end
when 50401.use or 50402.use or 50403.use or 50404.use or 50405.use or
50416.use or 50417.use or 50418.use or 50419.use or 50420.use or
50431.use or 50432.use or 50433.use or 50434.use or 50435.use or
50446.use or 50447.use or 50448.use or 50449.use or 50450.use or
50461.use or 50462.use or 50463.use or 50464.use or 50465.use or 50466.use or
50476.use or 50477.use or 50478.use or 50479.use or 50480.use or 50481.use or
50491.use or 50492.use or 50493.use or 50494.use or 50495.use or 50496.use or
50506.use or 50507.use or 50508.use or 50509.use or 50510.use or 50511.use begin
fbread.learnskill(item.get_vnum()-50400)
end
end
end
11/20/2013 20:37 SexStatus#9283
Abend Com.

Ich habe in dieser Quest nen Blöden Error finde einfach den Fix nicht

Quest:

Error:
11/21/2013 14:09 MrPlayboy#9284
Quote:
Originally Posted by alpaalpa View Post
PHP Code:
quest endless_switch begin
    state start begin
        when 71084.
use with item.get_count () < 10 begin
            pc
.give_item2(710841)
        
end
    end
end 
Müsste mir doch eig immer wenn ich weniger als 10 Switcher im Inventar habe wieder einen dazu geben also dass ich das Stack endlos benutzen kann oder?
PHP Code:
quest endless_switch begin
    state start begin
        when 71084.
use with pc.count_item(ITEMID von Switcher) < 10 begin
            pc
.give_item2("71084"1)
        
end
    end
end 
Item 71084 muss in der DB auf type 18 gestellt werden
11/21/2013 17:01 x'Radon#9285
PHP Code:
quest daily begin
    state start begin
        when login 
or levelup with pc.get_level <= 80 and game.get_event_flag("daily") == 0 begin
            say_title
("Deine Tägliche Aufgabe")
            
say("")
            
say("Bla")
            
say("Bla")
            
say("Bla")
            
say("Bla")
            
say("Bla")
            
say("Bla")
            
say("Bla")
            
say_reward("Möchtest du die Aufgabe annehmen?")
            
local s select("Ja, möchte ich""Nein, möchte ich nicht")
            if 
== 1 then
                pc
.setqf("state"1)
                
pc.setqf("state1"0)
                
say("")
                
say_reward("Du hast die Aufgabe erfolgreich angenommen")
                
say_reward("Bitte töte nun 250 Metins aller Art")
                
say("")
                
timer("go"60*60*24)
                
game.set_event_flag(daily1)
                
set_state("go")
            
end
            
if == 2 then
                say
("")
                
say_reward("In 24 Stunden hast du die Chance,")
                
say_reward("Diese Aufgabe zu wiederholen.")
                
say("")
                
timer("go"60*60*24)
            
end
        end
    end
    state go begin
        when 8001.kill 
or 8002.kill or 8003.kill or 8004.kill or 8005.kill or 
        
8006.kill or 8007.kill or 8008.kill or 8009.kill or 8010.kill or 8011.kill or 
        
8012.kill or 8013.kill or 8014.kill or 8015.kill or 8016.kill or 8017.kill or 
        
8018.kill or 8019.kill or 8024.kill or 8025.kill or 8026.kill or 8027.kill 
        with game
.get_event_flag("daily") == and pc.getqf("state")==1 begin
            pc
.setqf("state1"pc.getqf("state1")+1)
            if 
d.getqf("state1")== 250 then
                send_letter
("Aufgabe abgeschlossen")
            
end
        end
        when button 
or info with pc.getqf("state1")== 250 begin
            say_title
("Aufgabe erfolgreich abgeschlossen")
            
say("")
            
say("Bla")
            
say("Bla")
            
say("Bla")
            
say("Bla")
            
say("Bla")
            
say("Bla")
        
end
        when go
.timer begin
            game
.set_event_flag(daily0)
        
end
    end
end 
Wo ist der Fehler ??!?! Habe es übern debugger on mijago gejagt und es kommt immer: Fehler: Die Quest muss mit quest beginnen!