|
You last visited: Today at 05:27
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
12/01/2015, 00:29
|
#12016
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Ich weiß zwar immer noch nicht genau was du willst, aber habs mal umgeschrieben.
Auch in der Hinsicht, dass man das Item 104009 ÜBER 499 mal braucht, weil das einfach für mich keinen Sinn macht wies da steht o.O (Kannst du ja wieder ändern wenns nicht passt)
PHP Code:
when 20016.chat."Der violette Stoff" begin if pc.count_item(104009) <= 499 then say_title("Was möchtet ihr denn?") say("") say("Achso, violetter Stoff. Ja, ich") say("weiß. Aber ihr habt den violetten Stoff nicht.") say("") say("Kommt wieder, wenn ihr den Stoff habt.") return end if pc.count_item(20009) == 0 and pc.count_item(20259) == 0 and pc.count_item(20759) == 0 and pc.count_item(20509) == 0 and pc.get_armor() != 20009 and pc.get_armor() != 20259 and pc.get_armor() != 20759 and pc.get_armor() != 20509 then say("Lieber Abenteurer!") say("So leid es mir tut, aber ohne") say("die Drachendämonenrüstung, darf ich euch") say("keine Informationen geben!") say("") say("*200er Rüstung+9*") return end say_title("Oh, hallo " .. pc.get_name()) say("") say("Ah, der violette Stoff. Jetzt fällt") say("es mir wieder ein. Ich weiß nun auch, was") say("Huahn-So vorhat. Ich weiß durchaus auch, was") say("es mit dem *Kristallklaremschlüssel* auf sich hat.") say("Er wird durchaus verwendet, um in den verschlüsselten") say("Raum zu gelangen, worin Beran-Setaou sich aufhält.") say("Aber primär geht es um die Rüstung. Trotzdem") say("möchte gerne wissen, wie mächtig Beran ist.") say("Aber das besprechen wir ein ander Mal.") say("Gerne möchte ich dies herausfinden, aber") say("leider habe ich keine magischen Steine mehr") say("um mir Ausrütung herzustellen.") wait() say("Wärt ihr bitte so frei und würdet mir") say("20x Magischer Stein bringen? Ihr würdet") say("mir damit einen echten Gefallen tun.") say("Kommt zu mir, wenn ihr die magischen") say("Steine bei euch habt.") set_state(magischerstein) end end
|
|
|
12/01/2015, 00:49
|
#12017
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Quote:
Originally Posted by .Delta
Ich weiß zwar immer noch nicht genau was du willst, aber habs mal umgeschrieben.
Auch in der Hinsicht, dass man das Item 104009 ÜBER 499 mal braucht, weil das einfach für mich keinen Sinn macht wies da steht o.O (Kannst du ja wieder ändern wenns nicht passt)
PHP Code:
when 20016.chat."Der violette Stoff" begin
if pc.count_item(104009) <= 499 then
say_title("Was möchtet ihr denn?")
say("")
say("Achso, violetter Stoff. Ja, ich")
say("weiß. Aber ihr habt den violetten Stoff nicht.")
say("")
say("Kommt wieder, wenn ihr den Stoff habt.")
return
end
if pc.count_item(20009) == 0 and
pc.count_item(20259) == 0 and
pc.count_item(20759) == 0 and
pc.count_item(20509) == 0 and
pc.get_armor() != 20009 and
pc.get_armor() != 20259 and
pc.get_armor() != 20759 and
pc.get_armor() != 20509 then
say("Lieber Abenteurer!")
say("So leid es mir tut, aber ohne")
say("die Drachendämonenrüstung, darf ich euch")
say("keine Informationen geben!")
say("")
say("*200er Rüstung+9*")
return
end
say_title("Oh, hallo " .. pc.get_name())
say("")
say("Ah, der violette Stoff. Jetzt fällt")
say("es mir wieder ein. Ich weiß nun auch, was")
say("Huahn-So vorhat. Ich weiß durchaus auch, was")
say("es mit dem *Kristallklaremschlüssel* auf sich hat.")
say("Er wird durchaus verwendet, um in den verschlüsselten")
say("Raum zu gelangen, worin Beran-Setaou sich aufhält.")
say("Aber primär geht es um die Rüstung. Trotzdem")
say("möchte gerne wissen, wie mächtig Beran ist.")
say("Aber das besprechen wir ein ander Mal.")
say("Gerne möchte ich dies herausfinden, aber")
say("leider habe ich keine magischen Steine mehr")
say("um mir Ausrütung herzustellen.")
wait()
say("Wärt ihr bitte so frei und würdet mir")
say("20x Magischer Stein bringen? Ihr würdet")
say("mir damit einen echten Gefallen tun.")
say("Kommt zu mir, wenn ihr die magischen")
say("Steine bei euch habt.")
set_state(magischerstein)
end
end
|
YAAA !!! Genau so!! Hat man das eine schon, aber das andere nicht, fragt er danach! Alles stimmt. Danke, mein Retter!!
|
|
|
12/01/2015, 17:01
|
#12018
|
elite*gold: 0
Join Date: Jan 2012
Posts: 42
Received Thanks: 7
|
Empire war score bug
Hello please where i have bug in quest / table?
Error syserr
Code:
SYSERR: Nov 30 21:15:31 :: RunState: LUA_ERROR: [string "valka_risi"]:2: attempt to index field `kills' (a nil value)
SYSERR: Nov 30 21:15:31 :: WriteRunningStateToSyserr: LUA_ERROR: quest valka_risi.start click
Quest
Code:
quest valka_risi begin
state start begin
when kill with npc.is_pc() and pc.get_map_index() == 62 and npc.empire != pc.empire begin
local kill_now = mysql_query("SELECT kills from player.valka WHERE empire='"..pc.get_empire().."' LIMIT 1")
local kill_up = mysql_query("UPDATE player.valka SET kills ='"..(kill_now.kills[1]+1).."' WHERE empire ='"..pc.get_empire().."' LIMIT 1")
end
end
end
Mysql table
Code:
CREATE TABLE `valka` (
`rise` varchar(50) CHARACTER SET latin5 DEFAULT NULL,
`kills` varchar(50) CHARACTER SET latin5 DEFAULT NULL,
`empire` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin5
Thanks for help
|
|
|
12/01/2015, 17:20
|
#12019
|
elite*gold: 0
Join Date: Mar 2011
Posts: 171
Received Thanks: 38
|
PHP Code:
quest warpring begin state start begin function main() say_title(item.get_name()) 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","Orktal","Tempel","Eisland","Weiter","Zurück") if normmaps1 == 1 then local warps = { [1] = 474200, 95400, -- rotes reich [empire1] [2] = 63200, 166100, -- gelbes reich [empire2] [3] = 960100, 268700 -- blaues reich [empire3] } pc.warp(warps[pc.get_empire()]) elseif normmaps1 == 2 then local warps = { [1] = 352900, 882500, [2] = 145600, 239900, [3] = 863900, 245900 } pc.warp(warps[pc.get_empire()]) elseif normmaps1 == 3 then pc.warp(335900, 755300) elseif normmaps1 == 4 then pc.warp(553600, 143800) elseif normmaps1 == 5 then pc.warp(436100, 215700) 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("Feuerland","Geisterwald","Roter Wald","Grotte 1","Grotte 2","Zurück","Abbrechen") if normmaps2 == 1 then pc.warp(600600, 687100) elseif normmaps2 == 2 then pc.warp(303300, 27100) elseif normmaps2 == 3 then pc.warp(1119500, 70300) elseif normmaps2 == 4 then pc.warp(10000, 1214200) elseif normmaps2 == 5 then pc.warp(241700, 1274900) elseif normmaps2 == 6 then warpring.normmaps1() elseif normmaps2 == 7 then return end function dungeons() say_title(item.get_name().." : Dungeons") local dungeons = select("Spinnendungeon 1","Spinnendungeon 2","Zurück","Abbrechen") if dungeons == 1 then pc.warp(85000, 525000) elseif dungeons == 2 then pc.warp(665600, 435200) 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(896400, 24500) else chat("Das Event läuft nicht.") end elseif eventmaps == 2 then warpring.main() elseif eventmaps == 3 then return end end when 70007.use begin warpring.main() end end end end
Hoffe auf Hilfe.
Putty: :84: unexpected symbol near "when"
|
|
|
12/03/2015, 14:49
|
#12020
|
elite*gold: 20
Join Date: Sep 2012
Posts: 579
Received Thanks: 139
|
Quote:
Originally Posted by IzeBreakzz
PHP Code:
quest daily_login begin
state start begin
when login begin
if pc.get_level() >= 80 then
set_state(information)
end
end
end
--[[ Information ]]
state information begin
when letter begin
send_letter("Tägliche Login Belohnung")
set_state(vllt_so)
end
end
state vllt_so begin
when info or button begin
say_title("Tägliche Login Belohnung")
local TODAY = tonumber(os.date("%d"))
local MONTH = tonumber(os.date("%m"))
local MY_PACK = pc.getqf("saved_day")
local SAFTY = pc.getqf("saved_login")
local SAFTY_MONTH = pc.getqf("saved_month")
local REST = TODAY - MY_PACK
local STAGEONE = {146, 147, 148, 149, 186, 188, 189}
local STAGETWO = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local STAGETHREE = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local STAGEFOUR = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local STAGEFIVE = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local STAGESIX = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local ITEMS
if REST == 1 then
pc.setqf("saved_day", TODAY)
pc.setqf("saved_month", MONTH)
pc.setqf("saved_login", pc.getqf("saved_login")+1)
say("Du loggst dich zum "..pc.getqf("saved_login").." mal hinter einander ein.")
if SAFTY < 11 then
ITEMS = STAGEONE[number(1, table.getn(STAGEONE))]
elseif SAFTY > 10 and SAFTY < 21 then
ITEMS = STAGETWO[number(1, table.getn(STAGETWO))]
elseif SAFTY > 20 and SAFTY < 31 then
ITEMS = STAGETHREE[number(1, table.getn(STAGETHREE))]
elseif SAFTY > 30 and SAFTY < 41 then
ITEMS = STAGEFOUR[number(1, table.getn(STAGEFOUR))]
elseif SAFTY > 40 and SAFTY < 51 then
ITEMS = STAGEFIVE[number(1, table.getn(STAGEFIVE))]
elseif SAFTY > 50 then
ITEMS = STAGESIX[number(1, table.getn(STAGESIX))]
pc.give_item2(ITEMS, 1)
end
say("Dein tägliches Present ist heute: " ..item_name(ITEMS).."!")
say("pro. Tag einmal auzuführen!")
end
end
end
end
Bräuchte wirklich Hilfe... Gibts niemanden der eine Idee hätte ?
|
Wirklich keiner eine Idee ?..
|
|
|
12/03/2015, 14:55
|
#12021
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Quote:
Originally Posted by .Delta
leichteste Vermutung:
Dein REST ist nicht gleich 1, schon mal ohne probiert?
Bzw wenn du deinen REST davor explizit auf 1 setzt?
€: und mach diesen extra state zwischen deinem letter und info raus 
|
Wenn du Hilfe möchtest, solltest du auch auf Vorschläge bzw Fragen eingehen
|
|
|
12/10/2015, 11:24
|
#12022
|
elite*gold: 20
Join Date: Sep 2012
Posts: 579
Received Thanks: 139
|
Bräuchte nach wie vor Hilfe...
PHP Code:
quest daily_login begin state start begin when login begin if pc.get_level() >= 80 then set_state(information) end end end --[[ Information ]] state information begin when letter begin send_letter("Tägliche Login Belohnung") set_state(vllt_so) end end state vllt_so begin when info or button begin say_title("Tägliche Login Belohnung") local TODAY = tonumber(os.date("%d")) local MONTH = tonumber(os.date("%m")) local MY_PACK = pc.getqf("saved_day") local SAFTY = pc.getqf("saved_login") local SAFTY_MONTH = pc.getqf("saved_month") local REST = TODAY - MY_PACK local STAGEONE = {146, 147, 148, 149, 186, 188, 189} local STAGETWO = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGETHREE = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGEFOUR = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGEFIVE = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGESIX = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local ITEMS if REST == 1 then pc.setqf("saved_day", TODAY) pc.setqf("saved_month", MONTH) pc.setqf("saved_login", pc.getqf("saved_login")+1) say("Du loggst dich zum "..pc.getqf("saved_login").." mal hinter einander ein.") if SAFTY < 11 then ITEMS = STAGEONE[number(1, table.getn(STAGEONE))] elseif SAFTY > 10 and SAFTY < 21 then ITEMS = STAGETWO[number(1, table.getn(STAGETWO))] elseif SAFTY > 20 and SAFTY < 31 then ITEMS = STAGETHREE[number(1, table.getn(STAGETHREE))] elseif SAFTY > 30 and SAFTY < 41 then ITEMS = STAGEFOUR[number(1, table.getn(STAGEFOUR))] elseif SAFTY > 40 and SAFTY < 51 then ITEMS = STAGEFIVE[number(1, table.getn(STAGEFIVE))] elseif SAFTY > 50 then ITEMS = STAGESIX[number(1, table.getn(STAGESIX))] pc.give_item2(ITEMS, 1) end say("Dein tägliches Present ist heute: " ..item_name(ITEMS).."!") say("pro. Tag einmal auzuführen!") end end end end
|
|
|
12/10/2015, 11:36
|
#12023
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
und ich verweise nach wie vor auf meinen Post (direkt über deinem)
Das ist das letzte Mal, das ich dich darauf aufmerksam mache, dannach ist mir deine Quest scheißegal...
|
|
|
12/10/2015, 21:20
|
#12024
|
elite*gold: 20
Join Date: Sep 2012
Posts: 579
Received Thanks: 139
|
lol.. sorry ich habe gedacht deine posts waren an jemand anderen -.- habe jetzt REST raus gemacht, zeigt jetzt den Text an aber er gibt mir keine Items und ich kann die Quest hintereinander ausführen, er zeigt zwar an wie oft ich mich eingeloggt habe, aber ich kann sie unabhängig von der Dauer beliebig öffnen.
|
|
|
12/10/2015, 22:30
|
#12025
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
try
PHP Code:
quest daily_login begin state start begin when login begin if pc.get_level() >= 80 then set_state(information) end end end --[[ Information ]] state information begin when letter begin send_letter("Tägliche Login Belohnung") end
when info or button begin say_title("Tägliche Login Belohnung") local TODAY = tonumber(os.date("%d")) local MONTH = tonumber(os.date("%m")) local MY_PACK = pc.getqf("saved_day") local SAFTY = pc.getqf("saved_login") local SAFTY_MONTH = pc.getqf("saved_month") local REST = TODAY - MY_PACK local STAGEONE = {146, 147, 148, 149, 186, 188, 189} local STAGETWO = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGETHREE = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGEFOUR = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGEFIVE = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGESIX = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local ITEMS if get_time() >= pc.getqf("Delay24") pc.setqf("Delay24", get_time() + 24*60*60) pc.setqf("saved_day", TODAY) pc.setqf("saved_month", MONTH) pc.setqf("saved_login", pc.getqf("saved_login")+1) say("Du loggst dich zum "..pc.getqf("saved_login").." mal hinter einander ein.") if SAFTY < 11 then ITEMS = STAGEONE[number(1, table.getn(STAGEONE))] elseif SAFTY > 10 and SAFTY < 21 then ITEMS = STAGETWO[number(1, table.getn(STAGETWO))] elseif SAFTY > 20 and SAFTY < 31 then ITEMS = STAGETHREE[number(1, table.getn(STAGETHREE))] elseif SAFTY > 30 and SAFTY < 41 then ITEMS = STAGEFOUR[number(1, table.getn(STAGEFOUR))] elseif SAFTY > 40 and SAFTY < 51 then ITEMS = STAGEFIVE[number(1, table.getn(STAGEFIVE))] elseif SAFTY > 50 then ITEMS = STAGESIX[number(1, table.getn(STAGESIX))] end pc.give_item2(ITEMS, 1) say("Dein tägliches Present ist heute: " ..item_name(ITEMS).."!") say("pro. Tag einmal auzuführen!") end end end end
|
|
|
12/11/2015, 03:36
|
#12026
|
elite*gold: 0
Join Date: Jul 2015
Posts: 1,389
Received Thanks: 566
|
PHP Code:
quest auftragya1 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("Auftrag 1")
end
when info or button begin
say_title("Auftrag 1")
say("")
say("Überall erscheinen viele Metinsteine")
say("die beim einschlagen in die Erde viele")
say("Häuser und Städte zerstört haben. Die")
say("gefährliche Aura dieser Steine versetzt das")
say("Volk in Angst und Schrecken.")
say("Du bist der Auserwählte")
say("des Drachgottes und nur du kannst uns retten!")
say("Bitte hilf uns und:")
say("")
say_reward("Zerstöre 10 Metin der Schlacht.")
say("")
pc.setqf("state", 10)
q.set_counter("Metin der Schlacht", 10)
end
when 8003.kill begin
local count = pc.getqf("state") - 1
if count <= 10 then
pc.setqf("state", count)
q.set_counter("Metin der Schlacht", count)
end
if count == 0 then
say_title("Auftrag 1")
say("")
say("Vielen Dank für deine Rettung und für die Berfreiung")
say("von der täglichen Angst. Du hast unser Leben gerettet.")
say("Das Land und alle Bürger stehen in deiner Schuld und")
say("können es kaum fassen! Als kleine Anerkennung haben die")
say("Leute sich zusammen getan um dir eine Belohung auszuhändigen!")
say("")
say("Du erhältst ein:")
say("")
say_reward("Wolf-Siegel")
say("")
pc.give_item2(71116, 1)
clear_letter()
set_quest_state("metinkilleifer", "information")
set_state(__COMPLETE__)
end
end
end
state __COMPLETE__ begin
end
end
Wie mach ich, dass er die Quest nicht jedes mal wieder neu öffnen kann und sozusagen bei jedem neuen Klick von vorne anfangen muss?
|
|
|
12/11/2015, 10:38
|
#12027
|
elite*gold: 20
Join Date: Sep 2012
Posts: 579
Received Thanks: 139
|
Edit: Habs hinbekommen, hat ein then gefehlt. Danke für die großartige Hilfe
Gibt es die Möglichkeit die Abfrage mit if zu machen dass wenn er den Login Bonus schon bekommen hat, er den Text ausgibt dass der Spieler noch warten muss ? Habe schon einiges probiert, bekomme es aber nicht hin, weil ich nicht weiß wie ich die zeit abfragen soll.
Soll ich einen neuen State nehmen ?
|
|
|
12/11/2015, 13:51
|
#12028
|
elite*gold: 0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
|
Ich habe ein Problem mit meiner Quest in den Logs bekomme ich auch immer eine Fehlermeldung und die Quest geht nicht mehr.
Log
Quote:
SYSERR: Dec 11 01:51:41 :: RunState: LUA_ERROR: locale/germany/quest/object/state/vipumtausch:3: attempt to index field `?' (a nil value)
SYSERR: Dec 11 01:51:41 :: WriteRunningStateToSyserr: LUA_ERROR: quest vipumtausch.start letter
|
Quest
Code:
quest vipumtausch begin
state start begin
function GetNameForItem(vnum)
return ({ [35002]= "[VIP]", [85006] = "[SEX]", [85007] = "[PVP]", [85008] = "[HOT]", [85009] = "[LOW]", [85010] = "[BOB]", [85011] = "[PVM]", [85012] = "[POW]", [85013] = "[KID]", [85014] = "[FAN]"})[vnum] or false -- Hier einfach ItemID und den dazugehörigen String z.B. "[MVP]" eintragen.
end
function HasATitle(title)
return ({ ["[VIP]"] = 1, ["[SEX]"] = 1, ["[PVP]"] = 1, ["[HOT]"] = 1, ["[LOW]"] = 1, ["[BOB]"] = 1, ["[PVM]"] = 1, ["[POW]"] = 1, ["[KID]"] = 1, ["[FAN]"] = 1})[title] or false -- Alle Titel die es geben kann auch in die Tabelle und immer =1 setzen.
end
when 22005.take begin -- NpcId eintragen
local Vnum = item.get_vnum() -- Vnum darf hier nicht durch ne Zahl verändert werden, es ist eine Variable.
local Name = vipumtausch.GetNameForItem(Vnum) -- Achtung Quest Name verwendet.
local DieVariableKappa = string.sub(pc.get_name(), 1, 4) or "undefiniert"
if Name then
if vipumtausch.HasATitle(DieVariableKappa) then
say("Du hast schon nen Titel!")
else
local ChatName = vipumtausch.MakeKlammerWeg(Name)
say_title("Heyhooo,")
say("")
say("das ist ja ein sehr schönes Item, was")
say("du da hast. Das Item verleiht mir die Kraft.")
say("Ich ändere deinen Namen in "..ChatName..""..pc.get_name().."!")
say("Im Questfenster gehen keine GM Klammern, daher")
say("normale als Anzeige, nachher richtige")
say("Ich arbeite nicht mit der Mafia, daher")
say("musst für die Namensänderung 20 Min gebannt sein.")
if select("Item geben, Name ändern","Nichts da, es bleibt wie es ist.")==2 then return end
if vipumtausch.CheckPremise(Vnum, Name) then -- Achtung Quest Name verwendet.
if string.len(pc.get_name())<= 7 and not vipumtausch.player_exists(Name..""..pc.get_name()) then -- Achtung Questname verwendet.
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..Name..""..pc.get_name().."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..Name..""..pc.get_name().."');")
pc.remove_item(Vnum, 1)
cmdchat("exit")
else
say_title(pc.get_name().."!")
say("")
say("Die Vorraussetzungen zwingen dich einen")
say("neuen Namen zuwählen. Mögliche Gründe")
say("sind ein zu langer Name oder dein")
say("Name existiert mit "..ChatName.." bereits.")
say("")
say_reward("Möchtest du ihn ändern um "..ChatName.." zuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if vipumtausch.NamePremise(inp, 7, 2, 1) then -- Achtung Questname verwendet.
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif vipumtausch.player_exists(Name..""..inp) then -- Achtung Questname verwendet.
say_title("Name wechseln")
say("")
say("Dieser Name existiert bereits,")
say("versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say(ChatName..""..inp.." den Namen aktivieren?")
if select("Ja", "Nein")==2 then return end
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..Name..""..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..Name..""..inp.."');")
pc.remove_item(Vnum, 1)
cmdchat("exit")
end
end
end
end
end
function player_exists(name)
return (tonumber(mysql_query("select count(*) from player.player where name = '"..name.."';")[1][1]) >= 1)
end
function NamePremise(name, maxi, mini, sonder)
return (sonder == 0 and (string.len(name) > maxi or name == "" or string.len(name) < mini) or (string.len(name) > maxi or name == "" or string.len(name) < mini or string.find(name, "(%W)") != nil))
end
function MakeKlammerWeg(dd)
return string.gsub(string.gsub(dd, "%[", "("), "%]", ")")
end
function CheckPremise(Vnum, Name)
if pc.is_married() then
say("Während du verheiratet bist kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.is_polymorphed() then
say("Während du verwandelt bist kannst du")
say("kein Namen erhalten.")
return 0
elseif not pc.can_warp() then
say("Du hast vorkurzem gehandelt, so kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.has_guild() then
say("Während du in einer Gilde bist kannst du")
say("kein Namen erhalten.")
return 0
elseif party.is_party() then
say("Während du in einer Gruppe bist kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.count_item(Vnum) < 1 then
say("Bugusern wird kein Name gegeben!")
return 0
elseif string.find(pc.get_name(), (string.gsub(Name, "%[", ""))) != nil then
say("Du hast diesen Namen schon.")
return 0
else
return 1
end
end
end
end
|
|
|
12/11/2015, 14:15
|
#12029
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
@xTodessoldat
nach dem Annehmen der Quest, also nach dem Initialisieren von "state", deinen state wechseln.
PHP Code:
quest auftragya1 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("Auftrag 1")
end
when info or button begin
say_title("Auftrag 1")
say("")
say("Überall erscheinen viele Metinsteine")
say("die beim einschlagen in die Erde viele")
say("Häuser und Städte zerstört haben. Die")
say("gefährliche Aura dieser Steine versetzt das")
say("Volk in Angst und Schrecken.")
say("Du bist der Auserwählte")
say("des Drachgottes und nur du kannst uns retten!")
say("Bitte hilf uns und:")
say("")
say_reward("Zerstöre 10 Metin der Schlacht.")
say("")
pc.setqf("state", 10)
q.set_counter("Metin der Schlacht", 10)
set_state(killen)
end
end
state killen begin
when letter begin
send_letter("Auftrag 1")
end
when button or info begin
say_title("Du musst noch "..pc.getqf("state").." Metin der Schlacht töten.")
end
when 8003.kill begin
local count = pc.getqf("state") - 1
if count <= 10 then
pc.setqf("state", count)
q.set_counter("Metin der Schlacht", count)
end
if count == 0 then
say_title("Auftrag 1")
say("")
say("Vielen Dank für deine Rettung und für die Berfreiung")
say("von der täglichen Angst. Du hast unser Leben gerettet.")
say("Das Land und alle Bürger stehen in deiner Schuld und")
say("können es kaum fassen! Als kleine Anerkennung haben die")
say("Leute sich zusammen getan um dir eine Belohung auszuhändigen!")
say("")
say("Du erhältst ein:")
say("")
say_reward("Wolf-Siegel")
say("")
pc.give_item2(71116, 1)
clear_letter()
set_quest_state("metinkilleifer", "information")
set_state(__COMPLETE__)
end
end
end
state __COMPLETE__ begin
end
end
@Red Firestar
heißt das die Quest ging mal?
Was hast du seitdem verändert?
|
|
|
12/11/2015, 15:22
|
#12030
|
elite*gold: 0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
|
Quote:
Originally Posted by .Delta
@Red Firestar
heißt das die Quest ging mal?
Was hast du seitdem verändert?
|
Ja sie hat die ganze Zeit funktioniert.
Doch sie geht jetzt nicht mehr und ich habe nichts verändert.
|
|
|
All times are GMT +1. The time now is 05:27.
|
|