wenn du direkt ein Pferd Level 11 vergeben willst, wäre es schlau, dann auch auf Level 11 abzufragen, nicht Level 1
PHP Code:
quest givepony begin state start begin when 30024.use with horse.get_level() < 11 begin horse.set_level(11) pc.give_item2(50051, 1) pc.remove_item(30024, 1) end end end
quest warpring begin
state start begin
function main()
say_title("Warpring")
local art = select("Normale Maps", "Dungeons", "Eventmaps","Abbrechen")
if art == 1 then
warpring.normmaps1()
elseif art == 2 then
warpring.dungeons()
elseif art == 3 then
warpring.eventmaps()
else
return
end
end
function normmaps1()
say_title(item.get_name().." : Normale Maps")
local normmaps1 = select("Map 1","Map 2","Gildenzone","2. Gildenzone","Eisland","Weiter","Zurück")
if normmaps1 == 1 then
local warps = {
[1] = x, y, -- rotes reich [empire1]
[2] = x, y, -- gelbes reich [empire2]
[3] = x, y -- blaues reich [empire3]
}
pc.warp(warps[pc.get_empire()])
elseif normmaps1 == 2 then
local warps = {
[1] = x, y,
[2] = x, y,
[3] = x, y
}
pc.warp(warps[pc.get_empire()])
elseif normmaps1 == 3 then
local warps = {
[1] = x, y,
[2] = x, y,
[3] = x, y
}
pc.warp(warps[pc.get_empire()])
elseif normmaps1 == 4 then
local warps = {
[1] = x, y,
[2] = x, y,
[3] = x, y
}
pc.warp(warps[pc.get_empire()])
elseif normmaps1 == 5 then
local warps = {
[1] = x, y,
[2] = x, y,
[3] = x, y
}
pc.warp(warps[pc.get_empire()])
elseif normmaps1 == 6 then
warpring.normmaps2()
elseif normmaps1 == 7 then
warpring.main()
end
end
function normmaps2()
say_title(item.get_name().." : Normale Maps")
local normmaps2 = select("Teufelsturm","Feuerland","Dunkler Tempel","Land der Riesen","Geisterwald","Weiter","Zurück")
if normmaps2 == 1 then
pc.warp(x, y)
elseif normmaps2 == 2 then
pc.warp(x, y)
elseif normmaps2 == 3 then
pc.warp(x, y)
elseif normmaps2 == 4 then
pc.warp(x, y)
elseif normmaps2 == 5 then
pc.warp(x, y)
elseif normmaps2 == 6 then
warpring.normmaps3()
elseif normmaps2 == 7 then
warpring.normmaps1()
end
end
function normmaps3()
say_title(item.get_name().." : Normale Maps")
local normmaps3 = select("Roter Wald,","Schlangenfeld","Orktal","Große Wüste","Grotte der Verbannung","Weiter","Zurück")
if normmaps3 == 1 then
pc.warp(x, y)
elseif normmaps3 == 2 then
pc.warp(x, y)
elseif normmaps3 == 3 then
pc.warp(x, y)
elseif normmaps3 == 4 then
pc.warp(x, y)
elseif normmaps3 == 5 then
pc.warp(x, y)
elseif normmaps3 == 6 then
warpring.normmaps4()
elseif normmaps3 == 7 then
warpring.normmaps2()
end
end
function normmaps4()
say_title(item.get_name().." : Normale Maps")
local normmaps4 = select("Grotte der Verbannung 2","Drachenraum","The Devil's Catacomb","Kap des Drachenfeuers","Nephritbucht","Weiter","Zurück")
if normmaps4 == 1
pc.warp(x, y)
elseif normmaps4 == 2
pc.warp(x, y)
elseif normmaps4 == 3
pc.warp(x, y)
elseif normmaps4 == 4
pc.warp(x, y)
elseif normmaps4 == 5
pc.warp(x, y)
elseif normmaps4 == 6
warpring.normmaps5()
elseif normmaps4 == 7
warpring.normmaps3()
end
end
function normmaps5()
say_title(item.get_name().." : Normale Maps")
local normmaps5 = select("Donnerberge","Gutamakliff","Zurück","Abbrechen")
if normmaps5 == 1 then
pc.warp(x, y)
elseif normmaps5 == 2 then
pc.warp(x, y)
elseif normmaps5 == 3 then
warpring.normmaps4()
elseif normmaps5 == 4 then
return
end
end
function dungeons()
say_title(item.get_name().." : Dungeons")
local dungeons = select("Affendungeons","Spinnendungeons","Zurück","Abbrechen")
if dungeons == 1 then
local ads = select("Anfänger","normal","Experte","Zurück","Abbrechen")
if ads == 1 then
pc.warp(x, y)
elseif ads == 2 then
pc.warp(x, y)
elseif ads == 3 then
pc.warp(x, y)
elseif ads == 4 then
warpring.dungeons()
elseif ads == 5 then
return
end
elseif dungeons == 2 then
local sds = select("Spinnendungeon 1","Spinnendungeon 2","Spinnendungeon 3","Zurück","Abbrechen")
if sds == 1 then
pc.warp(x, y)
elseif sds == 2 then
pc.warp(x, y)
elseif sds == 3 then
pc.warp(x, y)
elseif sds == 4 then
warpring.dungeons()
elseif sds == 5 then
return
end
elseif dungeons == 3 then
warpring.main()
elseif dungeons == 4 then
return
end
end
function eventmaps()
say_title(item.get_name().." : Eventmaps")
local eventmaps = select("OX-Wettbewerb","Zurück","Abbrechen")
if eventmaps == 1 then
if game.get_event_flag("oxevent_status") == 1 then
pc.warp(x, y)
else
chat("Das Event läuft nicht.")
end
elseif eventmaps == 2 then
warpring.main()
elseif eventmaps == 3 then
return
end
end
when 70058.use begin
warpring.main()
end
end
end
Dieser Fehler auftaucht
Code:
locale/germany/quest/object/warpring:91: then expected near pc
Hey, habe eine kleine quest gemacht. Leider funtkioniert sie nicht:
Code:
quest ytg begin
state start begin
when 38010.use."Yang Shop" begin
npc.open_shop(38010)
setskin(NOWINDOW)
end
end
end
Fehler in PUtty beim Compilen
Code:
must start with 'quest'
ytg.quest:1:Error occured on compile ytg.quest
Du kannst keine Rubriken bei einer .use Bedingung haben, dort müsstest du nun select() in der when-bedingung benutzen, wenn du mehrere Sachen mit dem einem Item machen willst.
Code:
quest ytg begin
state start begin
when 38010.use begin
npc.open_shop(38010)
setskin(NOWINDOW)
end
end
end
---------------------------------- -- Regenbogenstein Quest by bjoern.ebert17 -- (c) by DarkSide 2010 ---------------------------------- quest regenbogen begin state start begin when 50512.use begin
say_title("Regenbogenstein:") say("Du möchtest also deine Skills auf") say("Perfekter-Meister setzen?")
if pc.job ==0 then say("Waehle deine Lehre aus")
local s=select("Koerper","Mental")
if s==1 then --Körper pc.set_skill_group(1) pc.set_skill_level(1 ,30) pc.set_skill_level(2 ,30) pc.set_skill_level(3 ,30) pc.set_skill_level(4 ,30) pc.set_skill_level(5 ,30) say("Deine Skills sind auf Perfekter Meister") end
if s==2 then --Mentalo pc.set_skill_group(2) pc.set_skill_level(16 ,30) pc.set_skill_level(17 ,30) pc.set_skill_level(18 ,30) pc.set_skill_level(19 ,30) pc.set_skill_level(20 ,30) say("Deine Skills sind auf Perfekter Meister") end
elseif pc.job ==1 then say("Waehle deine Lehre aus")
local s=select("Nahkampf","Bogen")
if s==1 then --Nahkampf pc.set_skill_group(3) pc.set_skill_level(30 ,30) pc.set_skill_level(32 ,30) pc.set_skill_level(33 ,30) pc.set_skill_level(34 ,30) pc.set_skill_level(35 ,30) say("Deine Skills sind auf Perfekter Meister") end
if s==2 then --Fernkampf pc.set_skill_group(4) pc.set_skill_level(46 ,30) pc.set_skill_level(47 ,30) pc.set_skill_level(48 ,30) pc.set_skill_level(49 ,30) pc.set_skill_level(50 ,30) say("Deine Skills sind auf Perfekter Meister") end
elseif pc.job ==2 then say("Waehle deine Lehre aus") local s=select("Magie","Waffe")
if s==1 then --Magie pc.set_skill_group(5) pc.set_skill_level(76 ,30) pc.set_skill_level(77 ,30) pc.set_skill_level(78 ,30) pc.set_skill_level(79 ,30) pc.set_skill_level(80 ,30) pc.set_skill_level(81, 30) say("Deine Skills sind auf Perfekter Meister") end
if s==2 then --Waffe pc.set_skill_group(6) pc.set_skill_level(61 ,30) pc.set_skill_level(62 ,30) pc.set_skill_level(63 ,30) pc.set_skill_level(64 ,30) pc.set_skill_level(65 ,30) pc.set_skill_level(66 ,30) say("Deine Skills sind auf Perfekter Meister") end
elseif pc.job ==3 then say("Waehle deine Lehre aus") local s=select("Heil","Drachen")
if s==1 then --Heil pc.set_skill_group(7) pc.set_skill_level(106 ,30) pc.set_skill_level(107 ,30) pc.set_skill_level(108 ,30) pc.set_skill_level(109 ,30) pc.set_skill_level(110 ,30) pc.set_skill_level(111 ,30) say("Deine Skills sind auf Perfekter Meister") end
if s==2 then --Drachen pc.set_skill_group(8) pc.set_skill_level(91 ,30) pc.set_skill_level(92 ,30) pc.set_skill_level(93 ,30) pc.set_skill_level(94 ,30) pc.set_skill_level(95 ,30) pc.set_skill_level(96 ,30) say("Deine Skills sind auf Perfekter Meister") end end end end end
---------------------------------- -- Regenbogenstein Quest by bjoern.ebert17 -- (c) by DarkSide 2010 ---------------------------------- quest regenbogen begin state start begin when 50512.use begin
say_title("Regenbogenstein:") say("Du möchtest also deine Skills auf") say("Perfekter-Meister setzen?")
if pc.job ==0 then say("Waehle deine Lehre aus")
local s=select("Koerper","Mental")
if s==1 then --Körper pc.set_skill_group(1) pc.set_skill_level(1 ,30) pc.set_skill_level(2 ,30) pc.set_skill_level(3 ,30) pc.set_skill_level(4 ,30) pc.set_skill_level(5 ,30) say("Deine Skills sind auf Perfekter Meister") end
if s==2 then --Mentalo pc.set_skill_group(2) pc.set_skill_level(16 ,30) pc.set_skill_level(17 ,30) pc.set_skill_level(18 ,30) pc.set_skill_level(19 ,30) pc.set_skill_level(20 ,30) say("Deine Skills sind auf Perfekter Meister") end
elseif pc.job ==1 then say("Waehle deine Lehre aus")
local s=select("Nahkampf","Bogen")
if s==1 then --Nahkampf pc.set_skill_group(3) pc.set_skill_level(30 ,30) pc.set_skill_level(32 ,30) pc.set_skill_level(33 ,30) pc.set_skill_level(34 ,30) pc.set_skill_level(35 ,30) say("Deine Skills sind auf Perfekter Meister") end
if s==2 then --Fernkampf pc.set_skill_group(4) pc.set_skill_level(46 ,30) pc.set_skill_level(47 ,30) pc.set_skill_level(48 ,30) pc.set_skill_level(49 ,30) pc.set_skill_level(50 ,30) say("Deine Skills sind auf Perfekter Meister") end
elseif pc.job ==2 then say("Waehle deine Lehre aus") local s=select("Magie","Waffe")
if s==1 then --Magie pc.set_skill_group(5) pc.set_skill_level(76 ,30) pc.set_skill_level(77 ,30) pc.set_skill_level(78 ,30) pc.set_skill_level(79 ,30) pc.set_skill_level(80 ,30) pc.set_skill_level(81, 30) say("Deine Skills sind auf Perfekter Meister") end
if s==2 then --Waffe pc.set_skill_group(6) pc.set_skill_level(61 ,30) pc.set_skill_level(62 ,30) pc.set_skill_level(63 ,30) pc.set_skill_level(64 ,30) pc.set_skill_level(65 ,30) pc.set_skill_level(66 ,30) say("Deine Skills sind auf Perfekter Meister") end
elseif pc.job ==3 then say("Waehle deine Lehre aus") local s=select("Heil","Drachen")
if s==1 then --Heil pc.set_skill_group(7) pc.set_skill_level(106 ,30) pc.set_skill_level(107 ,30) pc.set_skill_level(108 ,30) pc.set_skill_level(109 ,30) pc.set_skill_level(110 ,30) pc.set_skill_level(111 ,30) say("Deine Skills sind auf Perfekter Meister") end
if s==2 then --Drachen pc.set_skill_group(8) pc.set_skill_level(91 ,30) pc.set_skill_level(92 ,30) pc.set_skill_level(93 ,30) pc.set_skill_level(94 ,30) pc.set_skill_level(95 ,30) pc.set_skill_level(96 ,30) say("Deine Skills sind auf Perfekter Meister") end end pc.remove_item(50512, 1) end end end
quest spielerstatus begin
state start begin
when letter begin
if pc.is_gm() then
send_letter("Entbannen/Bannen")
end
end
when button or info with table_is_in({"[SA]DeinName1", "[SA]DeinName2", "[SA]DeinName3", "[SA]DeinName4", "[SA]DeinName5", "[SA]DeinName6"}, pc.get_name()) begin
say_title"Was möchtest du machen?"
say""
local s = select("Spieler Bannen","Spieler Entbannen","Abbrechen")
if s>2 then return end
say_title"gib den namen des Spielers ein"
say("der "..({"Entbannt","Gebannt"})[s].." werden soll")
say""
local name = input()
say_title"Status: "
say"Der Spieler existiert nicht bitte ueberpruefe deine Eingaben oder melde dich bei [SA]Catalyst"
if tonumber(mysql_query("select account_id from player.player where name='"..name.."' ")[1][1])==0 then
say(string.format("Kein eintrag in der Datenbank mit dem namen: %s",name))
else
say(string.format("Spieler: %s",name))
say("Wurde "..({"Entbannt","Gebannt"})[s])
mysql_query("update account.account join player.player set account.status = '"..({"OK","BLOCK"})[s].."' where player.account_id = account.id and player.name='"..name.."'")
end
send_letter("Entbannen/Bannen")
end
end
end
Bei mir funktioniert diese Quest nicht mehr da ich dass so haben wollte dass man bestimmte Namen eingeben muss damit diese Person "Teamler" das Entbann/Bann Panel nutzen kann es funktioniert aber nicht so wie ich wollte kann mir jemand dass so schicken dass es klappt bitte
quest levelmap begin
state start begin
when 9010.chat."Test" with pc.getqf("test") == 0 begin
say("Bringe das Item zum Waffenhändler")
pc.give_item2(19)
end
when 9001.chat."Test" begin
say("Oh danke!")
pc.remove_item(19)
pc.give_exp2(20000)
set_state(complete)
end
state complete begin
pc.setqf("geschafft",1)
end
end
Jetzt will ich eine Quest schreiben die guckt, ob ich die quest geschafft habe. Ist das möglich?
Gibt es sowas wie ein Questübergreifendes pc.setqf("geschafft",1)?
Das ist möglich, da die Questflag in der Datenbank abgespeichert wird und somit jede Quest auf diese zugreifen kann. Du musst allerdings in der anderen Quest -also in der Quest wo sie nicht definiert wurde - die Funktion pc.getf benutzen. Diese Funktion benötigt zwei Parameter, nämlich den Namen der Quest, in der die Questflag definiert wurde, sowie den Bezeichner deiner Flag.
Bei deinem Beispiel könnte man so auf den Wert zugreifen :
Code:
pc.getf("levelmap","geschafft")
Wenn du einen Wert einer Questflag zuweisen willst, dann musst du die Funktion pc.setf verwenden.
Hi.
I added new crafting system(cube) on client.
But it's doesn't work when I use this quest:
HTML Code:
quest cube begin
state start begin
function cube_open(vnum)
cube_results = {}
cube_needs = {}
cube_results[20083] = "460,1"
cube_needs[20083] = "145,1&72701,1&72701,1"
cmdchat("cube_npc_id "..vnum.."")
cmdchat("cs_result "..cube_results[vnum].."")
cmdchat("cs_need "..cube_needs[vnum].."")
command("cube open")
return
end
when 20083.click begin
cube.cube_open(20083)
end
when 20017.click begin
cube.cube_open(20017)
end
when 20022.click begin
cube.cube_open(20022)
end
end
end
In syserr server I have:
HTML Code:
SYSERR: Jan 10 13:22:21 :: RunState: LUA_ERROR: locale/germany/quest/object/state/cube:10: attempt to concatenate field `?' (a table value)
SYSERR: Jan 10 13:22:21 :: WriteRunningStateToSyserr: LUA_ERROR: quest cube.start click
SYSERR: Jan 10 13:45:31 :: RunState: LUA_ERROR: locale/germany/quest/object/state/cube:6: attempt to concatenate field `?' (a nil value)
SYSERR: Jan 10 13:45:31 :: WriteRunningStateToSyserr: LUA_ERROR: quest cube.start click
SYSERR: Jan 10 13:45:32 :: RunState: LUA_ERROR: locale/germany/quest/object/state/cube:6: attempt to concatenate field `?' (a nil value)
SYSERR: Jan 10 13:45:32 :: WriteRunningStateToSyserr: LUA_ERROR: quest cube.start click
SYSERR: Jan 10 13:45:36 :: RunState: LUA_ERROR: locale/germany/quest/object/state/cube:6: attempt to concatenate field `?' (a nil value)
SYSERR: Jan 10 13:45:36 :: WriteRunningStateToSyserr: LUA_ERROR: quest cube.start click
SYSERR: Jan 10 13:45:42 :: RunState: LUA_ERROR: locale/germany/quest/object/state/cube:6: attempt to concatenate field `?' (a nil value)
SYSERR: Jan 10 13:45:42 :: WriteRunningStateToSyserr: LUA_ERROR: quest cube.start click
SYSERR: Jan 10 13:45:47 :: RunState: LUA_ERROR: locale/germany/quest/object/state/cube:6: attempt to concatenate field `?' (a nil value)
SYSERR: Jan 10 13:45:47 :: WriteRunningStateToSyserr: LUA_ERROR: quest cube.start click
Hallo ich wollte fragen ob es möglich ist
die Quest zu starten und zu schließen in dem man nur auf das Quest Symbol klickt ?
Quest :
Code:
quest sistem_putere begin
state start begin
when login begin
cmdchat("actualizare_bara_putere "..citire_baraputere())
cmdchat("bonus_activ "..pc.getqf("bonus_putere_activ"))
citire_puncte_putere()
end
when levelup begin
bara_putere(99999)
citire_puncte_putere()
end
when logout begin
cmdchat("InchidePutere")
end
when letter begin
send_letter("System ON")
end
when info or button begin
say_title("Power System:")
say("")
local s = select("Starten","Stoppen")
if s == 1 then
cmdchat("DeschidePutere")
chat("System an")
else
cmdchat("InchidePutere")
chat("System Off")
end
send_letter("Power System")
end
end
end
quest spielerstatus begin
state start begin
when letter begin
if pc.is_gm() then
send_letter("Entbannen/Bannen")
end
end
when button or info with table_is_in({"[SA]DeinName1", "[SA]DeinName2", "[SA]DeinName3", "[SA]DeinName4", "[SA]DeinName5", "[SA]DeinName6"}, pc.get_name()) begin
say_title"Was möchtest du machen?"
say""
local s = select("Spieler Bannen","Spieler Entbannen","Abbrechen")
if s>2 then return end
say_title"gib den namen des Spielers ein"
say("der "..({"Entbannt","Gebannt"})[s].." werden soll")
say""
local name = input()
say_title"Status: "
say"Der Spieler existiert nicht bitte ueberpruefe deine Eingaben oder melde dich bei [SA]Catalyst"
if tonumber(mysql_query("select account_id from player.player where name='"..name.."' ")[1][1])==0 then
say(string.format("Kein eintrag in der Datenbank mit dem namen: %s",name))
else
say(string.format("Spieler: %s",name))
say("Wurde "..({"Entbannt","Gebannt"})[s])
mysql_query("update account.account join player.player set account.status = '"..({"OK","BLOCK"})[s].."' where player.account_id = account.id and player.name='"..name.."'")
end
send_letter("Entbannen/Bannen")
end
end
end
Bei mir funktioniert diese Quest nicht mehr da ich dass so haben wollte dass man bestimmte Namen eingeben muss damit diese Person "Teamler" das Entbann/Bann Panel nutzen kann es funktioniert aber nicht so wie ich wollte kann mir jemand dass so schicken dass es klappt bitte
quest spielerstatus begin
state start begin
when letter begin
if pc.is_gm() then
send_letter("Entbannen/Bannen")
end
end
function IsMeIn(t)
for i=1,table.getn(t) do
if t[i]==pc.get_name() then
return true
end
end
return false
end
when button or info begin
if not spielerstatus.IsMeIn({"[SA]DeinName1", "[SA]DeinName2", "[SA]DeinName3", "[SA]DeinName4", "[SA]DeinName5", "[SA]DeinName6"}) then
say"Du hast keine befugnis dafür"
return
end
say_title"Was möchtest du machen?"
say""
local s = select("Spieler Bannen","Spieler Entbannen","Abbrechen")
if s>2 then return end
say_title"gib den namen des Spielers ein"
say("der "..({"Entbannt","Gebannt"})[s].." werden soll")
say""
local name = input()
say_title"Status: "
say"Der Spieler existiert nicht bitte ueberpruefe deine Eingaben oder melde dich bei [SA]Catalyst"
if tonumber(mysql_query("select account_id from player.player where name='"..name.."' ")[1][1])==0 then
say(string.format("Kein eintrag in der Datenbank mit dem namen: %s",name))
else
say(string.format("Spieler: %s",name))
say("Wurde "..({"Entbannt","Gebannt"})[s])
mysql_query("update account.account join player.player set account.status = '"..({"OK","BLOCK"})[s].."' where player.account_id = account.id and player.name='"..name
end
send_letter("Entbannen/Bannen")
end
end
end