[SERVICE] Die Questkontrolle

01/01/2014 20:55 .Delta#9466
naja was soll sich denn auch tun.
du hast nur eine Anzeige, wenn s==1 ist, aber s wird nie festgelegt?
01/01/2014 21:06 J3igStar13#9467
Jaa bin noch frischer Quester,wäre jemand so nett es so zu machen, dass es auch funktioniert ?

Mfg
01/02/2014 00:24 DerForenLeser#9468
Quote:
Originally Posted by J3igStar13 View Post

Problem:Es öffnet sich nichts wenn ich auf den NPC (Lagerverwalter) drücke.
Das Problem liegt darin, dass Du bei s == 2 then ein ss == 2 then hinschreiben musst.. So, wie Du es vorher festgelegt hast.
01/03/2014 21:54 nOa##9469
Hallo liebe Epvp Community.
Ich bin grade mit dem Questen angefangen und daher noch ein totaler Neuling.
Ich habe mich mal an eine simple PvM Quest gewagt und wollte euch fragen ob diese richtig ist bzw. funktionieren kann?

01/03/2014 23:02 PeloQ#9470
@123Crusher123

01/04/2014 13:24 .yorliK#9471
Hey,

wenn ich mit der Quest kontrollieren möchte ob ein Name in der Datenbank schon existiert, gibt er mir immer "existiert bereits" aus.

PHP Code:
quest kontrollna begin
    state start begin
        when 70007.
use begin
        say
("Name Kontrollieren")
        
say("Gib den Namen ein")
        
name input()
        if 
mysql_query("SELECT name FROM player.player WHERE name='"..name.."';") == nil then
            say
("Existiert nicht.")
        else
            
say("Existiert bereits.")
            
end
        end
    end
end 
01/04/2014 14:16 QuickFlameZ#9472
Quote:
Originally Posted by Kilroy. View Post
Hey,

wenn ich mit der Quest kontrollieren möchte ob ein Name in der Datenbank schon existiert, gibt er mir immer "existiert bereits" aus.

PHP Code:
quest kontrollna begin
    state start begin
        when 70007.
use begin
        say
("Name Kontrollieren")
        
say("Gib den Namen ein")
        
name input()
        if 
mysql_query("SELECT name FROM player.player WHERE name='"..name.."';") == nil then
            say
("Existiert nicht.")
        else
            
say("Existiert bereits.")
            
end
        end
    end
end 
Lass dir halt ausgeben wie oft es den Namen in der Db gibt und wenn es halt 0 sind Error.

bsp.

PHP Code:
local ip input()
local exist tonumber(mysql_query("select count(*) from player.player where name = '"..ip.."';")[1][1])
if 
exist ~= 1 then
    say
("Fehler"
    return
end 
Kind regards
01/04/2014 15:36 .Colossus.#9473
Code:
		when 8037.kill or 8035.kill or 8034.kill with pc.in_dungeon() and d.getf("flammenrun") == 3 begin
			local n = d.getf("count_metin") + 1
				d.setf("count_metin", n)
				--notice_all("Metin killed "..n.."")
			if n == 3 then
			local t = number(1,3)
				--notice_all("Spawn Metin")
			if 1 == t then
				d.setf("count_metin", 0)
				d.regen_file("data/dungeon/flamerun/Metinebene_only_reload.txt")
			elseif 2 == t then
				d.setf("count_metin", 0)
				d.regen_file("data/dungeon/flamerun/Metinebene_only_reload.txt")
			else
				d.setf("count_metin", 0)
				d.regen_file("data/dungeon/flamerun/Metinebene_only_reload.txt")
			end
			end
		end
Hallo, ist es Möglich bei diesem Part eine Art vordefinierte Zufallsfunktion einzufügen, sodass vorher eine richtige reihenfolge festgelegt wird und wenn nicht die regen neugeladen wird?
01/04/2014 16:19 Paranormalx3#9474
Brauche Hilfe bei einer Quest. Es ist eine Warpring-quest, die quest ist richtig eingefügt(denke ich) aber es kommt trotzdem diese Meldung, und ich kann mich nicht einloggen werde direkt gekickt..

[Only registered and activated users can see links. Click Here To Register...]

Hier ist die quest, die quest ist bestimmt vielen bekannt. ^^

Code:
quest warptest begin 
    state start begin 
        when 70007.use begin 
            local warptab = { 
                --[[ Möglich: 
                 empire 
                 minlvl 
                 maxlvl 
                 minalign 
                 maxalign 
                 is_gm (true) 
                 eventflag 
                ]] 
                ["Reiche"] = { 
                    ["subs"] = { 
                        ["Map 1"] = { 
                            ["subs"] = { 
                                ["Shinsoo"] = {["x"] = 4096+646, ["y"] = 8960+585}, 
                                ["Chunjo"] = {["x"] = 0+635, ["y"] = 1024+640}, 
                                ["Jinno"] = {["x"] = 9216+382, ["y"] = 2048+643}, 
                            }, 
                        }, 
                        ["Map 2"] = { 
                            ["subs"] = { 
                                ["Shinsoo"] = {["x"] = 3072, ["y"] = 8192}, 
                                ["Chunjo"] = {["x"] = 1024+430, ["y"] = 2048+351}, 
                                ["Jinno"] = {["x"] = 8192, ["y"] = 2048}, 
                            }, 
                        }, 
                        ["Gildenmap#1"] = {["x"] = 1285, ["y"] = 10, ["empire"] = 1}, 
                        ["Gildenmap#2"] = {["x"] = 1795, ["y"] = 10, ["empire"] = 2}, 
                        ["Gildenmap#3"] = {["x"] = 2718, ["y"] = 130, ["empire"] = 3}, 
                    }, 
                }, 
                ["Standardmaps"] = { 
                    ["subs"] = { 
                        ["Burgschlacht#1"] = {["x"] = 9752, ["y"] = 1330, ["empire"] = 1}, 
                        ["Burgschlacht#2"] = {["x"] = 9772, ["y"] = 1850, ["empire"] = 2}, 
                        ["Burgschlacht#3"] = {["x"] = 9239, ["y"] = 1836, ["empire"] = 3}, 
                         
                        ["Tal von Seungryong#1"] = {["x"] = 4021, ["y"] = 6739, ["empire"] = 1}, 
                        ["Tal von Seungryong#2"] = {["x"] = 2704, ["y"] = 7399, ["empire"] = 2}, 
                        ["Tal von Seungryong#3"] = {["x"] = 3213, ["y"] = 8080, ["empire"] = 3}, 
                         
                        ["Wueste#1"] = {["x"] = 2718, ["y"] = 6272, ["empire"] = 1}, 
                        ["Wueste#2"] = {["x"] = 2219, ["y"] = 5027, ["empire"] = 2}, 
                        ["Wueste#3"] = {["x"] = 3440, ["y"] = 5025, ["empire"] = 3}, 
                         
                        ["Berg Sohan#1"] = {["x"] = 4342, ["y"] = 2906, ["empire"] = 1}, 
                        ["Berg Sohan#2"] = {["x"] = 3752, ["y"] = 1749, ["empire"] = 2}, 
                        ["Berg Sohan#3"] = {["x"] = 4918, ["y"] = 1736, ["empire"] = 3}, 
                    }, 
                }, 
                ["Dungeons"] = { 
                    ["minlvl"] = 40, 
                    ["subs"] = { 
                        ["Doyyumhwaji#1"] = {["x"] = 5994, ["y"] = 7563, ["empire"] = 1}, 
                        ["Doyyumhwaji#2"] = {["x"] = 5978, ["y"] = 6222, ["empire"] = 2}, 
                        ["Doyyumhwaji#3"] = {["x"] = 7307, ["y"] = 6898, ["empire"] = 3},                         
                        ["Geisterwald"] = {["x"] = 2887, ["y"] = 57, ["minlvl"] = 60}, 
                        ["Roter Wald"] = {["x"] = 11199, ["y"] = 708, ["minlvl"] = 80}, 
                        ["Land der Riesen"] = {["x"] = 8451, ["y"] = 7459}, 
                        ["Daemonenturm"] = {["x"] = 5905, ["y"] = 1105, ["empire"] = 3}, 
                        ["Spinnendungeon"] = {["x"] = 600, ["y"] = 4960}, 
                    }, 
                }, 
            } 
            -- Ab hier nichts mehr Ändern. 
            local wp = {} 
            -- Kategorien 
            local function create_list(nm,index) 
                table.foreach((index or warptab), 
                    function(i,l) 
                        local x = (nm or '')..'#/'..i 
                        --print(i,x) 
                        if l.subs ~= nil then 
                            create_list(x,l.subs) 
                            wp[x] = {["type"] = "kat"} 
                        else 
                            wp[x] = l 
                            wp[x]["type"] = "warp" 
                            wp[x]["kat"] = (nm or '') 
                        end 
                    end 
                ) 
            end 
            --Erstelle Liste der vorhandenen Warps 
            create_list() 
            local function show_menu(id,kat) 
                local index = id or 1 
                -- Funktionen START 
                local function count(str,del) 
                    local out = 0 
                    for i in string.gfind(str,del) do 
                        out = out+1 
                    end 
                    return out 
                end 
                local function trim(str) 
                    str = string.gsub(str,'.-#/','',index) 
                    return str 
                end 
                -- Funktionen ENDE 
                 
                -- Erstellen der Warpliste f??elect2 
                local wl,co = { 
                    ["list"] = {}, 
                    ["data"] = {}, 
                },1 
                table.sort(wp) 
                table.foreach(wp, 
                    function(i,l) 
                        if count(i,'.-#/') == index then 
                            local function cc() 
                                -- Da es viele If's sind, nicht extra eingerückt 
                                if l.empire == nil or l.empire == pc.get_empire() then 
                                if l.maxlvl == nil or pc.get_level() <= l.maxlvl then 
                                if l.minlvl == nil or pc.get_level() >= l.minlvl then 
                                if l.minalign == nil or pc.get_real_alignment() >= l.minalign then 
                                if l.maxalign == nil or pc.get_real_alignment() <= l.maxalign then 
                                if l.eventflag == nil or game.get_event_flag(l.eventflag) == 1 then 
                                if l.is_gm == nil or pc.is_gm() == l.is_gm then 
                                    if l.type == "kat" then 
                                        local str = '> '..(string.gsub(trim(i),'#%d+',''))..' <' 
                                        wl.list[co] = str 
                                        wl.data[str] = l 
                                        wl.data[str]["name"] = i 
                                    else 
                                        local str = (string.gsub(trim(i),'#%d+','')) 
                                        wl.list[co] = str 
                                        wl.data[str] = l 
                                    end 
                                    co = co+1 
                                end -- gamemaster 
                                end -- eventflag 
                                end -- maxalign 
                                end -- minalign 
                                end -- minlvl 
                                end -- maxlvl 
                                end -- empire 
                                -- if Block ende 
                            end 
                            if index == 1 then 
                                cc() 
                            elseif kat ~= nil and string.sub(i,1,string.len(kat)) == kat then 
                                cc() 
                            end 
                        end 
                    end 
                ) 
                -- Ausgabe 
                table.sort(wl.list) 
                table.insert(wl.list,1,8) 
                if index ~= 1 then 
                    table.insert(wl.list,'Zurück') 
                end 
                table.insert(wl.list,'Abbrechen') 
                local sel = select2(wl.list) 
                if sel == table.getn(wl.list) then return end 
                if index ~= 1 and sel == table.getn(wl.list)-1 then 
                    local nextkat = function() 
                        local t,out = split(kat,'#/'),'' 
                        table.foreach(t, 
                            function(i,l) 
                                if i < table.getn(t) and i > 1 then 
                                    out = out..'#/'..l 
                                end 
                            end 
                        ) 
                        return out 
                    end 
                    show_menu(index-1,nextkat()) 
                    return 
                end 
                if wl.data[wl.list[sel]]["type"] == "kat" then  
                    show_menu(index+1, wl.data[wl.list[sel]]["name"],kat or nil) 
                    return 
                else 
                    pc.warp(wl.data[wl.list[sel]]["x"]*100,wl.data[wl.list[sel]]["y"]*100) 
                end 
            end 
            show_menu() 
        end 
    end 
end
Habe hier drin eigentlich gar nichts geändert außer das 70007 am Anfang damit es das Item Warpring sein soll.
01/04/2014 19:32 Mijago#9475
Der Fehler liegt darin, dass du die Questlib per autoupdater fetchen willst.
Lad sie dir direkt runter: [Only registered and activated users can see links. Click Here To Register...]
01/04/2014 21:36 .Vegas#9476
Komme nicht weiter die Funktioniert einfach nicht
PHP Code:
quest endlevel begin 
    state start begin 
        when levelup with pc
.get_level() == 127 begin 
            local i 
= {19,29,39,49
            
pc.give_item2(i[pc.get_job()+1], 1
        
end 
            
        when 20093.take begin 
            
if in_table(item.get_vnum(), {19,29,39,49}) then 
                local armor 
= {42009,44009,46009,48009
                
say_title(mob_name(npc.get_race()).."[ENTER]"
                
say_item_vnum(armor[pc.get_job()+1]) 
                
say("Wirklich herstellen?"
                if 
select("Ja","Nein") == 2 then return end 
                pc
.remove_item(item.select_cell(item.get_cell()), 1
                
pc.give_item2(string.format("%d"armor[pc.get_job()+1]))   
            else 
                return 
            
end     
        end 
    end 
end 
Wäre cool einer kann mir helfen.

LG. [SA]Perfect
01/04/2014 22:40 Legend2007#9477
Probiers hiermit

Code:
quest endlevel begin 
    state start begin 
        when levelup with pc.get_level() == 127 begin 
            local i = {19,29,39,49} 
            pc.give_item2(i[pc.get_job()+1], 1) 
        end 
            
        when 20093.take begin 
            if in_table(item.get_vnum(), {19,29,39,49}) then 
                local armor = {42009,44009,46009,48009} 
                say_title(mob_name(npc.get_race())) 
                say_item_vnum(armor[pc.get_job()+1]) 
                say("Wirklich herstellen?") 
                if select("Ja","Nein") == 2 then return end 
				
				if item.get_count() == 1 then
					item.remove()
				else
					pc.remove_item(item.get_vnum(), 1)
				end
				
                pc.give_item2(armor[pc.get_job()+1], 1)   
            else 
                return 
            end     
        end 
    end 
end
01/04/2014 23:11 .Vegas#9478
Quote:
Originally Posted by Legend2007 View Post
Probiers hiermit

Code:
quest endlevel begin 
    state start begin 
        when levelup with pc.get_level() == 127 begin 
            local i = {19,29,39,49} 
            pc.give_item2(i[pc.get_job()+1], 1) 
        end 
            
        when 20093.take begin 
            if in_table(item.get_vnum(), {19,29,39,49}) then 
                local armor = {42009,44009,46009,48009} 
                say_title(mob_name(npc.get_race())) 
                say_item_vnum(armor[pc.get_job()+1]) 
                say("Wirklich herstellen?") 
                if select("Ja","Nein") == 2 then return end 
				
				if item.get_count() == 1 then
					item.remove()
				else
					pc.remove_item(item.get_vnum(), 1)
				end
				
                pc.give_item2(armor[pc.get_job()+1], 1)   
            else 
                return 
            end     
        end 
    end 
end
Die Quest geht jetzt also bekomme keine Fehler Meldung in PuTTY aber wenn ich den NPC anklicke kommt nichts
01/05/2014 00:28 .Kibito#9479
Du musst den nicht anklicken sondern ein Item auf den draufziehen.
01/05/2014 00:39 .Vegas#9480
Ich wollte nicht das man was rauf zieht ich wollte das wenn man 127 wird und zu diesen NPC hingeht das man dann gesagt bekommt Herzlichen Glückwunsch du hast das Level 127 Erreicht jetzt kriegst du deine Belohnung mit einem Check system das man sich das item nur einmal abholen kann