[SERVICE] Die Questkontrolle

10/04/2013 17:18 Noa_#9076
PHP Code:
quest verlassen begin  
    state start begin  
        when letter 
or levelup with pc.get_level() == 15 and pc.getqf("port") == 0 begin     
            say_title
("Level 15 Erreicht!")   
            
say(""
            
say("Wie ich sehe hast du schon Level 15 Erreicht"
            
say("Es wird zeit dich von dieser Map weg zu Telepotieren"
            
say("")  
            
pc.setqf("port"1
            
wait() 
            
local p= ({{463900964200},{55700157900},{969600278400}})[pc.get_empire()]
            
pc.warp(p[1],p[2])
        
end  
    end 
end 
10/04/2013 18:11 TeRRoRSiZex3#9077
Quote:
Originally Posted by ΞΠ∪Μ View Post
PHP Code:
quest verlassen begin  
    state start begin  
        when letter 
or levelup with pc.get_level() == 15 and pc.getqf("port") == 0 begin     
            say_title
("Level 15 Erreicht!")   
            
say(""
            
say("Wie ich sehe hast du schon Level 15 Erreicht"
            
say("Es wird zeit dich von dieser Map weg zu Telepotieren"
            
say("")  
            
pc.setqf("port"1
            
wait() 
            
local p= ({{463900964200},{55700157900},{969600278400}})[pc.get_empire()]
            
pc.warp(p[1],p[2])
        
end  
    end 
end 
Es Portet nur wenn ich das wait() weg mache aber dann ist der Text weg also er Portet direkt mit Level 15, aber ich möchte des gerne mit Text =(
10/04/2013 18:35 MrPlayboy#9078
PHP Code:
quest age begin
    state start begin
        when login begin
            set_state
(next)
        
end
    end
    state next begin
        when letter begin
            timer
("zeit1"5)
        
end
        when zeit1
.timer begin
            pc
.setqf("age"pc.getqf("age")+1)
            
cmdchat("AGE "..pc.getqf("age"))
            
set_state(next)
        
end
    end
end 
Soll ein Test sein um den Timer nach 5 Sekunden dauerhaft zu wiederholen klappt aber nicht.
10/04/2013 19:52 Noa_#9079
Quote:
Originally Posted by MrPlayboy View Post
PHP Code:
quest age begin
    state start begin
        when login begin
            set_state
(next)
        
end
    end
    state next begin
        when letter begin
            timer
("zeit1"5)
        
end
        when zeit1
.timer begin
            pc
.setqf("age"pc.getqf("age")+1)
            
cmdchat("AGE "..pc.getqf("age"))
            
set_state(next)
        
end
    end
end 
Soll ein Test sein um den Timer nach 5 Sekunden dauerhaft zu wiederholen klappt aber nicht.
PHP Code:
quest age begin
    state start begin
        when login begin
            loop_timer
("zeit1"5)
        
end
        when zeit1
.timer begin
            pc
.setqf("age"pc.getqf("age")+1)
            
cmdchat("AGE "..pc.getqf("age").."")
        
end
    end
end 
10/05/2013 10:09 TeRRoRSiZex3#9080
Quote:
Originally Posted by TeRRoRSiZex3 View Post
Es Portet nur wenn ich das wait() weg mache aber dann ist der Text weg also er Portet direkt mit Level 15, aber ich möchte des gerne mit Text =(
PHP Code:
quest verlassen begin  
    state start begin  
        when letter 
or levelup with pc.get_level() == 15 and pc.getqf("port") == 0 begin     
            say_title
("Level 15 Erreicht!")   
            
say(""
            
say("Wie ich sehe hast du schon Level 15 Erreicht"
            
say("Es wird zeit dich von dieser Map weg zu Telepotieren"
            
say("")  
            
pc.setqf("port"1
            
wait()
            
local p= ({{463900964200},{55700157900},{969600278400}})[pc.get_empire()]
            
pc.warp(p[1],p[2])
        
end  
    end 
end 

Irgendeiner eine Idee?
10/05/2013 12:15 Yiv#9081
PHP Code:
quest verlassen begin  
    state start begin  
        when letter 
or levelup with pc.get_level() == 15 and pc.getqf("port") == 0 begin     
            say_title
("Level 15 Erreicht!")   
            
say(""
            
say("Wie ich sehe hast du schon Level 15 Erreicht"
            
say("Es wird zeit dich von dieser Map weg zu Telepotieren"
            
say("")  
            
pc.setqf("port"1
            
wait()
            
local p = {
                {
463900964200},
                {
55700157900},
                {
969600278400}
            }
            
pc.warp(p[pc.get_empire()][1],p[pc.get_empire()][2])
        
end  
    end 
end 
Sollte eig. funktionieren ;)

MfG
10/05/2013 13:30 -Roxon-#9082
Kann mir jemand bei dieser Reittier Quest helfen.
Und zwar ist mein Problem das der Boni garnicht mehr verschwindet.
Das Auf und Absteigen funktioniert und einmalig den Boni bekommen auch aber er geht trotz dem Relog nicht weg.
Er soll nach dem 2 klick aufs Siegel absteigen und der Boni muss verschwinden.
Vielen Dank.

quest firetiger begin
state start begin
when 52001.use begin
affect.remove_collect(apply.DEF_GRADE_BONUS,620,60 *60*24*365*60)
if pc.is_mount() then
pc.unmount()
affect.remove_collect(apply.DEF_GRADE_BONUS,620,60 *60*24*365*60)
else
affect.remove_collect()
pc.mount(20114,60*60*24*365*60)
pc.mount_bonus(apply.DEF_GRADE_BONUS,620,60*60*24* 365*60)
end
end
end
end
10/05/2013 13:47 Yiv#9083
Ich habe hier einen Questausschnitt, der nicht funktioniert. Ich bekomme keinen Compileerror, sondern lediglich einen Fehler in der Channel1-Syserr.
Der Fehler:
Code:
SYSERR: Oct  5 13:41:58 :: RunState: LUA_ERROR: [string "guild_bounty"]:10: attempt to concatenate global `name' (a nil value)
SYSERR: Oct  5 13:41:58 :: WriteRunningStateToSyserr: LUA_ERROR: quest guild_bounty.start click
Der Questausschnitt:
PHP Code:
        when kill with npc.is_pc() begin+
            
local own pc.get_guild()
            
chat(own)    -- DEV_1
            local vid 
npc.get_vid()
            
chat(vid)    -- DEV_2
            local old_pc 
pc.select(vid)
            if 
old_pc != 0 then
                local guild 
pc.get_guild()
                
chat(guild)    -- DEV_3
                
if guild == nil or guild == "" then return end
                local ch 
mysql_query("SELECT bounty_guild FROM player.guild WHERE id = '"..guild.."';")[1][1]
                
chat(ch)    -- DEV_4
                
if ch != own then chat("Dieser Spieler wurde bereits von deiner Gild getötet.") return end
                pc
.select(old_pc)
                
local pid mysql_query("SELECT id FROM player.player WHERE name = '"..name.."';")[1][1]
                
chat(pid)    -- DEV_5
                local check 
mysql_query("SELECT bounty_killed FROM player.guild_member WHERE pid = '"..pid.."';")[1][1]
                
chat(check)
                if 
check == 0 then return end
                local val 
mysql_query("SELECT bounty_val FROM player.guild WHERE id = '"..guild.."';")[1][1]
                
chat(val)    -- DEV_6
                pc
.change_gold(val)
                
chat("Du hast "..val.." Yang erhalten.")
                
mysql_query("UPDATE player.guild_member SET bounty_killed = '0' WHERE pid = '"..pid.."';")
                
local c mysql_query("SELECT COUNT(*) FROM player.guild_member WHERE guild_id = '"..guild.."' AND bounty_killed = '1';")[1][1]
                
chat(c)    -- DEV_7
                
if 1 then
                    mysql_query
("UPDATE player.guild SET bounty = '0', bounty_val = '0', bounty_guild = '0' WHERE id = '"..guild.."';")
                
end
            end 
DEV_1 und DEV_2 (Entwicklungstests) werden ausgegeben.

Was muss ich ändern?

MfG
10/05/2013 17:24 Noa_#9084
Quote:
Originally Posted by DaJuBi View Post
PHP Code:
quest verlassen begin  
    state start begin  
        when letter 
or levelup with pc.get_level() == 15 and pc.getqf("port") == 0 begin     
            say_title
("Level 15 Erreicht!")   
            
say(""
            
say("Wie ich sehe hast du schon Level 15 Erreicht"
            
say("Es wird zeit dich von dieser Map weg zu Telepotieren"
            
say("")  
            
pc.setqf("port"1
            
wait()
            
local p = {
                {
463900964200},
                {
55700157900},
                {
969600278400}
            }
            
pc.warp(p[pc.get_empire()][1],p[pc.get_empire()][2])
        
end  
    end 
end 
Sollte eig. funktionieren ;)

MfG
ich frage mich was daran anders ist...

zu deine Problem, die variable name ist nicht definiert, bei der query
PHP Code:
local pid mysql_query("SELECT id FROM player.player WHERE name = '"..name.."';")[1][1
frage mich auch sowieso, wieso du die query benutzt, es gibt eine funktion dafür um die id des spielers zu bekommen..
pc.get_player_id()--> returns player id
10/05/2013 22:31 .He3o Cry#9085
Habe folgendes Problem. Wenn ich die Quests reloade. Kommt der fehler:

qc in malloc(): error: allocation failed
Error occured on compile warpring.quest

Hier ist die Quest:

Code:
quest warpring begin
    state start begin
        when 70007.use with pc.get_level() >=5 begin
			say_title("Teleport-Ring")
			say("")
			say("Hallo Reisender. Möchtest du dich teleportieren?")
			local a = select ("Ja. Bitte!", "Jetzt nicht!")
		if a == 2 then
			return
		end	
		if a == 1 then	
			say("Wohin möchtest du teleportiert werden?")
			local sub_set = select ("Map 1", "Tal von Seungryong", "Yongbi-Wüste", "Spinnendungeon 1+2", "Abbrechen")
			if sub_set == 5 then
				return
			end	
			if sub_set == 1 then
				say_title("Teleport-Ring")
				say("")
				say("In welches Reich möchtest du teleportiert werden?")
				local sub_set2 = select ("Rotes Reich", "Gelbes Reich", "Blaue Reich", "Abbrechen")
				if sub_set2 == 4 then
					return
				end	
				if sub_set2 == 1 then
					say_title("Teleport-Ring")
					say "")
					say("Möchtest du das Rote Reich besuchen?")
					local sub_set3 = select ("Ja. Bitte!", "Jetzt nicht!")
					if sub_set3 == 2 then
						return
					if sub_set3 == 1 then	
					pc.warp(469300, 964200)
				end
				if sub_set2 == 2 then
					say_title("Teleport-Ring")
					say("")
					say("Möchtest du das Gelbe Reich besuchen?")
					local sub_set4 = select ("Ja. Bitte!", "Jetzt nicht!")
					if sub_set4 == 2 then
						return
					end
					if sub_set4 == 1 then	
					pc.warp(55700, 157900)
				end
				if sub_set2 == 3 then
					say_title("Teleport-Ring")
					say("")
					say("Möchtest du das Blaue Reich besuchen?")
					local sub_set5 = select ("Ja. Bitte!", "Jetzt nicht!")
					if sub_set5 == 2 then
						return
					end
					if sub_set5 == 1 then	
					pc.warp(969600, 278400)
				end
			end
			if sub_set == 2 then
				say_title("Teleport-Ring")
				say("")
				say("Ich bringe dich genau in die Mitte des Orktals.")
				say("Bist du bereit dafür?")
				local sub_set6 = select ("Ich bin bereit!", "Lieber nicht!")
				if sub_set6 == 2 then
					return
				end
				if sub_set6 == 1 then
					pc.warp(332836, 745964)
				end
			end
			if sub_set == 3 then
				say_title("Teleport-Ring")
				say("")
				say("Ich bringe dich an die große Oase in der Wüste.")
				say("Bist du bereit dafür?")
				local sub_set7 = select ("Ich bin bereit!", "Lieber nicht!")
				if sub_set7 == 2 then
					return
				end
				if sub_set7 = 1 then
					pc.warp(295784, 547152)
				end
			end
			if sub_set == 4 then
				say_title("Teleport-Ring")
				say("")
				say("Ich bringe dich in die tiefen des Spinnendungeons.")
				say("Bist du dieser Herausforderung gewachsen?"
				local sub_set8 = select ("Ich bin bereit!", "Lieber nicht!")
				if sub_set8 == 2 then
					return
				end	
				if sub_set == 1 then
					say_title("Bitte wähle einen Dungeon!")
					local sub_set9 = select ("Spinnendungeon 1", "Spinnendungeon 2", "Abbrechen")
					if sub_set9 == 3 then
						return
					end
					if sub_set9 == 1 then
						pc.warp(60010, 496753)
					end
					if sub_set9 == 2 then
						pc.warp(704100, 464100)
					end
				end
			end
		end
	end
end
10/06/2013 11:48 BashYouTime#9086
Hey ;)
Suche Hilfe hätte hier ne Quest:
Und wüsste gerne wie das jetzt funktionieren soll
muss ich bei
was ändern oder wie oder was?
Oder wo muss ich was machen,
weil ich kann ingame jetzt auf die 3 Siegel drücken, aber es passiert nichts?!?!?

Ich hoffe mir kann wer helfen!!

mfg
10/06/2013 21:16 VeRoX ™#9087
Hey!
Ich habe ein Problem mit dem Energysystem!
Also ich benutze die Files von xGr33n und einen 2013er Client!
Am Anfang als ich die Files aufgesetzt hatte war das Energysystem ein wenig Fail!
D.h wenn ich als bsp. ein ss+3 raufgezogen habe stand dort: " dieses item ist nicht geeignet"!
Dann habe ich meine andere energysystem quest reingepackt und nun klappt garnichts mehr! D.h nur wenn ich items rauf ziehe passiert nichts!Aber wenn ich 30 stc. habe kann ich die trozdem zu einem Kristall machen!
Wo liegt das Problem?
Hier die Quest:
PHP Code:
quest energiesystem begin
    state start begin
        when 20001.chat
."Eine neue Technik" with (game.get_event_flag("energy") == or pc.is_gm() == truebegin
            say_title
("Alchemist")
            
say("Ich habe es geschafft!")
            
say("Endlich konnte ich eine vollkommen neue Technik")
            
say("entwickeln.")
            
say("Ich habe es möglich gemacht, Gegenstände")
            
say("weiterzuverarbeiten und pure Energie aus ihnen zu")
            
say("ziehen. Absolut brillant!")
            
wait()
            
say_title("Alchemist")
            
say("Zerstört man einen Gegenstand mithilfe meiner")
            
say("Technik, erhält man Energiesplitter. Fügt man 30")
            
say("dieser Splitter zusammen, erhält man einen")
            
say("machtvollen Energiekristall! Reine, ungefilterte")
            
say("Energie, gebündelt in einem Edelstein. Diese")
            
say("Kraft fließt in deine gesamte Ausrüstung.")
            
say("Hast du Interesse daran?")
            
wait()
            
say_title("Alchemist")
            
say("Bring Ausrüstungsgegenstände wie Waffen, Schmuck")
            
say("und Kleidung, die du auf deiner")
            
say("Jagt findest, zu mir. Ich werde sie zu")
            
say("Energiesplittern verarbeiten.")
            
say("Zukunft und Hoffnung unseres Reiches liegen in")
            
say("dieser Technik. Wir werden unbesiegbar!")
            
set_state("make")
        
end
    end
    state make begin
        when 20001.chat
."Energiesplitter extrahieren" with (game.get_event_flag("energy") == or pc.is_gm() == truebegin
            say_title
("Alchemist")
            
say("Hat es funktioniert? Hast du Energiesplitter")
            
say("bekommen?")
            
say("Bring mir mehr Gegenstände und ich werde ")
            
say("sie mithilfe der Alchemie zerbrechen.")
            
say("Meine Technik ist noch nicht ganz ausgefeilt.")
            
say("Deswegen kann ich dir nicht garantieren, wie")
            
say("viele Splitter du erhälst.")
            
wait()
            
say_title("Alchemist")
            
say("Es gibt eine Bedingung: Sowohl dein eigener als")
            
say("auch der Level des Gegenstandes muss")
            
say("mindestens 35 sein.")
            
say("Hm, schauen wir einfach mal...")
            
wait()
            if 
pc.get_level() < 35 then
                say_title
("Alchemist")
                
say("Du bist noch nicht stark genug! Komm wieder,")
                
say("wenn du mindestens Level 35 erreicht hast.")
            else -- 
NICHT DE
                say_title
("Alchemist")
                
say("Ok du bist Stark genug für meine neue")
                
say("Entdeckung.")        
            
end
            
        end
        
        when 20001.chat
."Energiekristall herstellen" with (game.get_event_flag("energy") == or pc.is_gm() == truebegin
            say_title
("Alchemist")
            
say("Hast du deine Kraftreserven etwa schon")
            
say("aufgebraucht? Du solltest nicht so hart arbeiten")
            
say("und dein Leben leichtsinnig aufs Spiel setzen.")
            
say("Um einen Energiekristall herzustellen, benötige")
            
say("ich 30 Energiesplitter.")
            
wait()
            if 
pc.get_level() < 35 then
                say_title
("Alchemist")
                
say("Du bist noch nicht stark genug! Komm wieder,")
                
say("wenn du mindestens Level 35 erreicht hast.")
            else
                if 
pc.count_item(51001) >= 30 then
                    say_title
("Alchemist")
                    
say("Sehr schön du hast alle benötigten 30")
                    
say("Energiesplitter. Daraus kann ich einen")
                    
say("Energiekristall herstellen.")
                    
say("Warte bitte einen Moment. Ich werde es")
                    
say("versuchen, aber ich kann nicht garantieren,")
                    
say("dass es funktioniert.")
                    
wait()
                    
say_title("Alchemist")
                    
say("Alles ist bereit, um die Splitter zu einem")
                    
say("Energiekristall zu verschmelzen.")
                    
say("Doch von irgendwas muss ich leben und")
                    
say("meine Werkzeuge fallen nicht einfach so vom")
                    
say("Himmel. Ich verlange einen kleinen")
                    
say("Unkostenbeitrag von 1000 Yang. Bist du bereit, zu")
                    
say("bezahlen?")
                    if 
select("Selbstverständlich!","Nein, jetzt nicht") == 2 then
                        
return
                    
end
                    
                    pc
.change_money(-1000)
                    
pc.remove_item(51001,30)
                    
                    if 
number(0,1) == 1 then
                        say_title
("Alchemist")
                        
say("Ich wusste meine Technik ist brilliant!")
                        
say("Hier ist dein Energiekristall.")
                        
say("Ein Prachtexemplar! Spürst du die Kraft?")
                        
pc.give_item2(51002,1)
                    else -- 
NICHT DE
                        say_title
("Alchemist")
                        
say("Leider hat es nicht geklappt")
                        
say("einen Energiekristall herzustellen!")
                        return
                    
end
                    
                
else -- NICHT DE
                    say_title
("Alchemist")
                    
say("Du hast leider nicht alle benötigten 30")
                    
say("Energiesplitter. Daraus kann ich nichts")
                    
say("herstellen.")
                    return
                
end
                
            end
        end

        when 20001.take with game
.get_event_flag("energy") == or pc.is_gm() == 1 begin
            
if pc.get_level() < 35 then
                say_title
("Alchemist")
                
say("Du bist noch nicht stark genug, um die Kraft, die")
                
say("den Energiesplittern innewohnt, zu beherrschen.")
                
say("Komm wieder wenn du mindestens Level 35")
                
say("erreicht hast.")
                return
            
end
            
            
if item.get_type() == or item.get_type() == 2 then
            
--                2070 2239
--                80 369
--                1040 1189
--                3070 3249
--                5040 5359
--                4030 4069
--                7070 7219
--                11250 11299
--                11450 11499
--                11650 11699
--                11850 11899
--                12240 12699

                local maxlvl 
mysql_query("SELECT limitvalue0 FROM player.item_proto WHERE vnum='"..item.get_vnum().."' LIMIT 1;")
                
test_chat(maxlvl[1][1])
                if 
tonumber(maxlvl[1][1]) < 35 then 
                    
-- NICHT DE
                    say_title
("Alchemist")
                    
say("Dieses Item ist nicht geeignet!")
                    return
                
end
            
                say_title
("Alchemist")
                
say(string.trim(item.get_name()))
                
say("Soll ich diesen Gegenstand zerstören?")
                if 
select("Ja!","Nein, noch nicht!") == 2 then
                    
return
                else
                    
local anzahl number(0,15)
                    if 
anzahl 0 then
                        say_title
("Alchemist")
                        
say("Sagenhaft! Ich konnte "..anzahl.." Energiesplitter finden.")
                        
say("Bitte sehr.")
                        
pc.give_item2(51001anzahl)
                    else
                        
say_title("Alchemist")
                        
say("Ich habe versagt - leider konnte ich keinen")
                        
say("Energiesplitter extrahieren. Vielleicht klappt es")
                        
say("beim nächsten Versuch.")
                        return
                    
end
                    item
.remove()
                
end
                
            
else -- NICHT DE
                say_title
("Alchemist")
                
say("Dieses Item ist nicht geeignet!")
            
end
        end
        
        when login begin
            
if getenergytime() < 50000 then
                test_chat
("[Energy]Restzeit: "..getenergytime())
                
setenergytime(getenergytime() + get_time())
                
cmdchat("energysystem "..getenergytyp().."|"..getenergyvalue().."#"..getenergytime())
            
end
        end
        when logout begin
            
if getenergytime() > get_time() then
                local energy 
getenergytime() - get_time()
                if 
energy 0 then
                    setenergytime
(energy)
                
end
            end
        end
        
        when 51002.
use begin
            
if getenergytime() > get_time() then
                chat
("Du benutzst schon die Energie eines Energiekristalls!")
                return
            
end
            
            local anz 
number(1,10)
            
boni_list = {}
            
boni_list [1] = {apply.ATTBONUS_HUMAN,    15}
            
boni_list [2] = {apply.ATTBONUS_MONSTER,    10}
            
boni_list [3] = {apply.CRITICAL_PCT,    10}
            
boni_list [4] = {apply.PENETRATE_PCT,    10}
            
boni_list [5] = {apply.MAX_HP,    1000}
            
boni_list [6] = {apply.MAX_SP,    2000}
            
boni_list [7] = {apply.HP_REGEN,    30}
            
boni_list [8] = {apply.STEAL_HP,    10}
            
boni_list [9] = {apply.ATT_GRADE_BONUS,    75}
            
boni_list [10] = {apply.ATT_GRADE_BONUS,    50}
            
            
test_chat(anz)
            
test_chat(boni_list[anz][1])
            
test_chat(boni_list[anz][2])

            
affect.add_collect(boni_list[anz][1],boni_list[anz][2],7200)
            
setenergy(anz,boni_list[anz][2],get_time() + 7200)

            
cmdchat("energysystem "..anz.."|"..boni_list[anz][2].."#"..(get_time() + 7200))
            
            
setenergytime(get_time() + 7200)
            
            
item.remove()
            
chat("Du spürst die Energie des Kristalls, die sich auf deinen Körper überträgt..")
            
        
end
    end
end 
bitte helft mir
10/07/2013 12:35 Marsia#9088
Quote:
Originally Posted by BashYouTime View Post
Hey ;)
Suche Hilfe hätte hier ne Quest:
Und wüsste gerne wie das jetzt funktionieren soll
muss ich bei
was ändern oder wie oder was?
Oder wo muss ich was machen,
weil ich kann ingame jetzt auf die 3 Siegel drücken, aber es passiert nichts?!?!?

Ich hoffe mir kann wer helfen!!

mfg


Haste die Items bei Type 18??
10/07/2013 13:46 xGr33n#9089
Quote:
Originally Posted by VeRoX ™ View Post
Hey!
Ich habe ein Problem mit dem Energysystem!
Also ich benutze die Files von xGr33n und einen 2013er Client!
Am Anfang als ich die Files aufgesetzt hatte war das Energysystem ein wenig Fail!
D.h wenn ich als bsp. ein ss+3 raufgezogen habe stand dort: " dieses item ist nicht geeignet"!
Dann habe ich meine andere energysystem quest reingepackt und nun klappt garnichts mehr! D.h nur wenn ich items rauf ziehe passiert nichts!Aber wenn ich 30 stc. habe kann ich die trozdem zu einem Kristall machen!
Wo liegt das Problem?
Hier die Quest:
PHP Code:
quest energiesystem begin
    state start begin
        when 20001.chat
."Eine neue Technik" with (game.get_event_flag("energy") == or pc.is_gm() == truebegin
            say_title
("Alchemist")
            
say("Ich habe es geschafft!")
            
say("Endlich konnte ich eine vollkommen neue Technik")
            
say("entwickeln.")
            
say("Ich habe es möglich gemacht, Gegenstände")
            
say("weiterzuverarbeiten und pure Energie aus ihnen zu")
            
say("ziehen. Absolut brillant!")
            
wait()
            
say_title("Alchemist")
            
say("Zerstört man einen Gegenstand mithilfe meiner")
            
say("Technik, erhält man Energiesplitter. Fügt man 30")
            
say("dieser Splitter zusammen, erhält man einen")
            
say("machtvollen Energiekristall! Reine, ungefilterte")
            
say("Energie, gebündelt in einem Edelstein. Diese")
            
say("Kraft fließt in deine gesamte Ausrüstung.")
            
say("Hast du Interesse daran?")
            
wait()
            
say_title("Alchemist")
            
say("Bring Ausrüstungsgegenstände wie Waffen, Schmuck")
            
say("und Kleidung, die du auf deiner")
            
say("Jagt findest, zu mir. Ich werde sie zu")
            
say("Energiesplittern verarbeiten.")
            
say("Zukunft und Hoffnung unseres Reiches liegen in")
            
say("dieser Technik. Wir werden unbesiegbar!")
            
set_state("make")
        
end
    end
    state make begin
        when 20001.chat
."Energiesplitter extrahieren" with (game.get_event_flag("energy") == or pc.is_gm() == truebegin
            say_title
("Alchemist")
            
say("Hat es funktioniert? Hast du Energiesplitter")
            
say("bekommen?")
            
say("Bring mir mehr Gegenstände und ich werde ")
            
say("sie mithilfe der Alchemie zerbrechen.")
            
say("Meine Technik ist noch nicht ganz ausgefeilt.")
            
say("Deswegen kann ich dir nicht garantieren, wie")
            
say("viele Splitter du erhälst.")
            
wait()
            
say_title("Alchemist")
            
say("Es gibt eine Bedingung: Sowohl dein eigener als")
            
say("auch der Level des Gegenstandes muss")
            
say("mindestens 35 sein.")
            
say("Hm, schauen wir einfach mal...")
            
wait()
            if 
pc.get_level() < 35 then
                say_title
("Alchemist")
                
say("Du bist noch nicht stark genug! Komm wieder,")
                
say("wenn du mindestens Level 35 erreicht hast.")
            else -- 
NICHT DE
                say_title
("Alchemist")
                
say("Ok du bist Stark genug für meine neue")
                
say("Entdeckung.")        
            
end
            
        end
        
        when 20001.chat
."Energiekristall herstellen" with (game.get_event_flag("energy") == or pc.is_gm() == truebegin
            say_title
("Alchemist")
            
say("Hast du deine Kraftreserven etwa schon")
            
say("aufgebraucht? Du solltest nicht so hart arbeiten")
            
say("und dein Leben leichtsinnig aufs Spiel setzen.")
            
say("Um einen Energiekristall herzustellen, benötige")
            
say("ich 30 Energiesplitter.")
            
wait()
            if 
pc.get_level() < 35 then
                say_title
("Alchemist")
                
say("Du bist noch nicht stark genug! Komm wieder,")
                
say("wenn du mindestens Level 35 erreicht hast.")
            else
                if 
pc.count_item(51001) >= 30 then
                    say_title
("Alchemist")
                    
say("Sehr schön du hast alle benötigten 30")
                    
say("Energiesplitter. Daraus kann ich einen")
                    
say("Energiekristall herstellen.")
                    
say("Warte bitte einen Moment. Ich werde es")
                    
say("versuchen, aber ich kann nicht garantieren,")
                    
say("dass es funktioniert.")
                    
wait()
                    
say_title("Alchemist")
                    
say("Alles ist bereit, um die Splitter zu einem")
                    
say("Energiekristall zu verschmelzen.")
                    
say("Doch von irgendwas muss ich leben und")
                    
say("meine Werkzeuge fallen nicht einfach so vom")
                    
say("Himmel. Ich verlange einen kleinen")
                    
say("Unkostenbeitrag von 1000 Yang. Bist du bereit, zu")
                    
say("bezahlen?")
                    if 
select("Selbstverständlich!","Nein, jetzt nicht") == 2 then
                        
return
                    
end
                    
                    pc
.change_money(-1000)
                    
pc.remove_item(51001,30)
                    
                    if 
number(0,1) == 1 then
                        say_title
("Alchemist")
                        
say("Ich wusste meine Technik ist brilliant!")
                        
say("Hier ist dein Energiekristall.")
                        
say("Ein Prachtexemplar! Spürst du die Kraft?")
                        
pc.give_item2(51002,1)
                    else -- 
NICHT DE
                        say_title
("Alchemist")
                        
say("Leider hat es nicht geklappt")
                        
say("einen Energiekristall herzustellen!")
                        return
                    
end
                    
                
else -- NICHT DE
                    say_title
("Alchemist")
                    
say("Du hast leider nicht alle benötigten 30")
                    
say("Energiesplitter. Daraus kann ich nichts")
                    
say("herstellen.")
                    return
                
end
                
            end
        end

        when 20001.take with game
.get_event_flag("energy") == or pc.is_gm() == 1 begin
            
if pc.get_level() < 35 then
                say_title
("Alchemist")
                
say("Du bist noch nicht stark genug, um die Kraft, die")
                
say("den Energiesplittern innewohnt, zu beherrschen.")
                
say("Komm wieder wenn du mindestens Level 35")
                
say("erreicht hast.")
                return
            
end
            
            
if item.get_type() == or item.get_type() == 2 then
            
--                2070 2239
--                80 369
--                1040 1189
--                3070 3249
--                5040 5359
--                4030 4069
--                7070 7219
--                11250 11299
--                11450 11499
--                11650 11699
--                11850 11899
--                12240 12699

                local maxlvl 
mysql_query("SELECT limitvalue0 FROM player.item_proto WHERE vnum='"..item.get_vnum().."' LIMIT 1;")
                
test_chat(maxlvl[1][1])
                if 
tonumber(maxlvl[1][1]) < 35 then 
                    
-- NICHT DE
                    say_title
("Alchemist")
                    
say("Dieses Item ist nicht geeignet!")
                    return
                
end
            
                say_title
("Alchemist")
                
say(string.trim(item.get_name()))
                
say("Soll ich diesen Gegenstand zerstören?")
                if 
select("Ja!","Nein, noch nicht!") == 2 then
                    
return
                else
                    
local anzahl number(0,15)
                    if 
anzahl 0 then
                        say_title
("Alchemist")
                        
say("Sagenhaft! Ich konnte "..anzahl.." Energiesplitter finden.")
                        
say("Bitte sehr.")
                        
pc.give_item2(51001anzahl)
                    else
                        
say_title("Alchemist")
                        
say("Ich habe versagt - leider konnte ich keinen")
                        
say("Energiesplitter extrahieren. Vielleicht klappt es")
                        
say("beim nächsten Versuch.")
                        return
                    
end
                    item
.remove()
                
end
                
            
else -- NICHT DE
                say_title
("Alchemist")
                
say("Dieses Item ist nicht geeignet!")
            
end
        end
        
        when login begin
            
if getenergytime() < 50000 then
                test_chat
("[Energy]Restzeit: "..getenergytime())
                
setenergytime(getenergytime() + get_time())
                
cmdchat("energysystem "..getenergytyp().."|"..getenergyvalue().."#"..getenergytime())
            
end
        end
        when logout begin
            
if getenergytime() > get_time() then
                local energy 
getenergytime() - get_time()
                if 
energy 0 then
                    setenergytime
(energy)
                
end
            end
        end
        
        when 51002.
use begin
            
if getenergytime() > get_time() then
                chat
("Du benutzst schon die Energie eines Energiekristalls!")
                return
            
end
            
            local anz 
number(1,10)
            
boni_list = {}
            
boni_list [1] = {apply.ATTBONUS_HUMAN,    15}
            
boni_list [2] = {apply.ATTBONUS_MONSTER,    10}
            
boni_list [3] = {apply.CRITICAL_PCT,    10}
            
boni_list [4] = {apply.PENETRATE_PCT,    10}
            
boni_list [5] = {apply.MAX_HP,    1000}
            
boni_list [6] = {apply.MAX_SP,    2000}
            
boni_list [7] = {apply.HP_REGEN,    30}
            
boni_list [8] = {apply.STEAL_HP,    10}
            
boni_list [9] = {apply.ATT_GRADE_BONUS,    75}
            
boni_list [10] = {apply.ATT_GRADE_BONUS,    50}
            
            
test_chat(anz)
            
test_chat(boni_list[anz][1])
            
test_chat(boni_list[anz][2])

            
affect.add_collect(boni_list[anz][1],boni_list[anz][2],7200)
            
setenergy(anz,boni_list[anz][2],get_time() + 7200)

            
cmdchat("energysystem "..anz.."|"..boni_list[anz][2].."#"..(get_time() + 7200))
            
            
setenergytime(get_time() + 7200)
            
            
item.remove()
            
chat("Du spürst die Energie des Kristalls, die sich auf deinen Körper überträgt..")
            
        
end
    end
end 
bitte helft mir
[Only registered and activated users can see links. Click Here To Register...]
Benutz die quest ... ich hatte bei der das mit der MYSQL-Abfrage raus genommen und ID bedingt gemacht.
10/07/2013 19:29 Chip'#9090
Hay zusammen ich habe folgendes Problem wenn ich eine query ausführe via quest kommt folgender Fehler:

Rootname:/.../... # ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=UPDATE account set cash = cash+'10' WHERE id = '1'' at line 1

An der Quest wird es nicht direkt liegen, aber ich hoffe mal das trz jemand weiß wo das problem ist. Das problem tritt bei jeder query auf. Die habe ich schon getestet:
Code:
			--mysql_query("insert into account.account(login) VALUES ("..string.format("%q","Kekse")..");")
			--local q = mysql_query("UPDATE account.account set cash = cash+"..ins.." WHERE id = "..pc.get_account_id()..";")
			local q = mysql_query("UPDATE account.account set cash = cash+'"..ins.."' WHERE id = '"..pc.get_account_id().."';")
			--local q = mysql_query("UPDATE account.account set cash = cash+"..ins.." WHERE id = "..pc.get_account_id()..";")

Meine function
Code:
mysql_query = function(query)
    if not pre then
        local rt = io.open('CONFIG','r'):read('*all')
        pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
    end
    math.randomseed(os.time())
    local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
    --os.execute('mysql '..pre..' -e='..string.format('%q',query)..' > '..fi) -- für MySQL51
    os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- für MySQL55
    for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
    for i = 2, table.getn(t) do table.foreach(t[i],function(a,b)
        out[i-1]               = out[i-1] or {}
        out[i-1][a]            = tonumber(b) or b or 'NULL'
        out[t[1][a]]           = out[t[1][a]] or {}
        out[t[1][a]][i-1]      = tonumber(b) or b or 'NULL'
    end) end
    return out
end
Woran kann es liegen?
Kann mir jemand vllt via TeamViewer zeigen woran es liegt. Will ja aus den Fehler lernen :P