|
You last visited: Today at 01:52
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
09/04/2013, 18:42
|
#8941
|
elite*gold: 0
Join Date: Aug 2013
Posts: 301
Received Thanks: 88
|
Quote:
Originally Posted by .LuckyStrike
PHP Code:
quest blutstein_grotte begin
state start begin
when 20091.chat. "In die Grotte" begin
say_title("Seon-Pyeong")
say("")
say("Hallo "..pc.get_name().."")
say("Du möchtest in die Grotte?")
say("Ich kann dich gerne hinein")
say("lassen, jedoch musst du mir ein")
say("Blutstein besorgen, damit ich sehen")
say("kann das du auch würdig genug bist,")
say("um die Grotte zu überstehen!")
say("")
say("Hast du einen dabei?")
local x = select("Ja", "Nein")
if x == 1 and pc.get_level >= 75 then
if pc.countitem(30190) != 0 then
pc.remove_item(30190, 1)
pc.warp(10000, 1208000)
else
say_title("Seon-Pyeong")
say("")
say("Du hast kein Blutstein dabei")
say("Ich kann dich daher nicht")
say("in die Grotte Lassen")
say("")
end
else
say_title("Sean-Pyeong")
say("")
say("Dein Level ist zu Niedrig!")
say("Du musst Level 75 erreicht haben")
say("um in die Grotte zu kommen.")
end
end
end
end
|
Es kommt weder ein Fenster wenn ich unter Lv75 bin vonwegen ich sei zu Niedrig, noch ein Fenster wenn ich kein Blutstein dabei habe...
MFG
Fitchi
|
|
|
09/04/2013, 20:37
|
#8942
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
PHP Code:
quest blutstein_grotte begin state start begin when 20091.chat."In die Grotte" begin say_title(mob_name(20091)) say("") say("Hallo "..pc.get_name()) say("Du möchtest in die Grotte?") say("Ich kann dich gerne hinein") say("lassen, jedoch musst du mir ein") say("Blutstein besorgen, damit ich sehen") say("kann das du auch würdig genug bist,") say("um die Grotte zu überstehen!") say("") say("Hast du einen dabei?") if select("Ja", "Nein") == 2 then return end if pc.get_level() >= 75 then if pc.count_item(30190) > 0 then pc.remove_item(30190, 1) pc.warp(10000, 1208000) else say_title("Seon-Pyeong") say("") say("Du hast kein Blutstein dabei") say("Ich kann dich daher nicht") say("in die Grotte Lassen") say("") end else say_title("Sean-Pyeong") say("") say("Dein Level ist zu Niedrig!") say("Du musst Level 75 erreicht haben") say("um in die Grotte zu kommen.") end end end end
|
|
|
09/04/2013, 20:46
|
#8943
|
elite*gold: 10
Join Date: Aug 2011
Posts: 240
Received Thanks: 101
|
Halli Hallo,
ich versuche mich mal wieder im questen im kombination mit neuer Functionen in der questlib. Nur irgendwie will der Spaß nicht gehen.
Funktion in der Lib:
Code:
function horse_summon(vnum)
pc.mount(vnum, 36000000)
chat("Dein Pferd wurde gerufen.")
return 0
end
Befehl in der Quest:
Code:
horse_summon(20102)
Die Funktion ist in der quest_functions eingetragen
Syserr:
Code:
SYSERR: Sep 4 19:36:34 :: RunState: LUA_ERROR: [string "horse_summon"]:8: attempt to call global `horse_summon' (a table value)
SYSERR: Sep 4 19:36:34 :: WriteRunningStateToSyserr: LUA_ERROR: quest horse_summon.start click
Wer könnte mir mal erklären, was ich vergessen habe?
Lg. Nighti
|
|
|
09/04/2013, 21:17
|
#8944
|
elite*gold: 0
Join Date: Aug 2013
Posts: 301
Received Thanks: 88
|
PHP Code:
quest dr_gutschein begin state start begin when 80014.use begin give_dm(1000) say_size(300, 100) say_green("Dir wurden erfolgreich 1.000 Coins gutgeschrieben") item.remove() end when 80015.use begin give_dm(10000) say_size(300, 100) say_green("Dir wurden erfolgreich 10.000 Coins gutgeschrieben") item.remove() end when 80016.use begin give_dm(20000) say_size(300, 100) say_green("Dir wurden erfolgreich 20.000 Coins gutgeschrieben") item.remove() end when 80017.use begin give_dm(40000) say_size(300, 100) say_green("Dir wurden erfolgreich 40.000 Coins gutgeschrieben") item.remove() end end end
sorry das ich wieder spamen muss, aber er bucht keine Coins zu ;(
MFG
Fitchi
P.s: bedanke mich immer und so :*
|
|
|
09/04/2013, 21:42
|
#8945
|
elite*gold: 0
Join Date: Nov 2011
Posts: 151
Received Thanks: 38
|
Habe ein Problem mit meiner Quest, will das man Ingame ein Item anklicken kann und 200 Coins ausgezahlt bekommt.
Aber Putty sagt:
Calls undeclared function! :
mysql_query
PHP Code:
## QUEST BY XEVOS FOR XEVONIA&PARANORMAL2 - COIN_ITEM QUEST
quest coin_item begin
state start begin
when 30013.use begin
say_title("Coins Item")
say("Sollen dir 200 Coins gutgeschrieben werden?")
say("Die Coins lassen sich später nichtmehr in ein Coins Item umwandeln")
local b = select("Ja","Nein")
if b == 2 then
return
end
if pc.count_item(30013) == 0 then
syschat("Du hast keine Coins erhalten, da du einen Bug benutzen wolltest.")
end
local Coins_Def = 200
local get_id = pc.get_account_id()
pc.remove_item(30013, 1)
mysql_query("UPDATE account.account SET coins = coins + "..Coins_Def.." WHERE id = "..get_id.."")
syschat("Du hast 200 Coins erhalten.")
end
end
end
|
|
|
09/04/2013, 21:56
|
#8946
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
|
Quote:
Originally Posted by ©Fitchi
PHP Code:
quest dr_gutschein begin state start begin when 80014.use begin give_dm(1000) say_size(300, 100) say_green("Dir wurden erfolgreich 1.000 Coins gutgeschrieben") item.remove() end when 80015.use begin give_dm(10000) say_size(300, 100) say_green("Dir wurden erfolgreich 10.000 Coins gutgeschrieben") item.remove() end when 80016.use begin give_dm(20000) say_size(300, 100) say_green("Dir wurden erfolgreich 20.000 Coins gutgeschrieben") item.remove() end when 80017.use begin give_dm(40000) say_size(300, 100) say_green("Dir wurden erfolgreich 40.000 Coins gutgeschrieben") item.remove() end end end
sorry das ich wieder spamen muss, aber er bucht keine Coins zu ;(
MFG
Fitchi
P.s: bedanke mich immer und so :*
|
Schau mal in deiner questlib.lua nach den Funktion:
give_dm
Danach schaust du welche MYSQL version du hast.
fuer MySQL55 ersetzt du die Funktion give_dm mit dieser:
PHP Code:
function give_dm(z) os.execute("mysql -u root account -execute='UPDATE account SET coins = coins + ".. z .." WHERE id = ".. pc.get_account_id() ..";'") os.execute("mysql -u root log -execute='INSERT INTO voucher_log (account_id, pocet, cas) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'") end
Bei MySQL51 mit dieser:
PHP Code:
function give_dm(z) os.execute("mysql -u root account --execute='UPDATE account SET coins = coins + ".. z .." WHERE id = ".. pc.get_account_id() ..";'") os.execute("mysql -u root log --execute='INSERT INTO voucher_log (account_id, pocet, cas) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'") end
Und ueberpruefe bitte ob du give_dm in der quest_functions eingetragen hast.
---------------------------
Quote:
Originally Posted by Tiger121282
Habe ein Problem mit meiner Quest, will das man Ingame ein Item anklicken kann und 200 Coins ausgezahlt bekommt.
Aber Putty sagt:
Calls undeclared function! :
mysql_query
PHP Code:
## QUEST BY XEVOS FOR XEVONIA&PARANORMAL2 - COIN_ITEM QUEST quest coin_item begin state start begin when 30013.use begin say_title("Coins Item") say("Sollen dir 200 Coins gutgeschrieben werden?") say("Die Coins lassen sich später nichtmehr in ein Coins Item umwandeln") local b = select("Ja","Nein") if b == 2 then return end if pc.count_item(30013) == 0 then syschat("Du hast keine Coins erhalten, da du einen Bug benutzen wolltest.") end local Coins_Def = 200 local get_id = pc.get_account_id() pc.remove_item(30013, 1) mysql_query("UPDATE account.account SET coins = coins + "..Coins_Def.." WHERE id = "..get_id.."") syschat("Du hast 200 Coins erhalten.") end end end
|
Du musst die Funktion von mijago in die questlib.lua eintragen.
Dann noch in die quest_functions den Befehl mysql_query am ende eintragen.
PHP 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
Du musst auch darauf achten welche MYSQL version du besitzt.
MySQL55 oder MySQL51. Je nachdem auskommentieren in der Funktion.
|
|
|
09/04/2013, 23:02
|
#8947
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
Quote:
Originally Posted by NightCrash
Halli Hallo,
ich versuche mich mal wieder im questen im kombination mit neuer Functionen in der questlib. Nur irgendwie will der Spaß nicht gehen.
Funktion in der Lib:
Code:
function horse_summon(vnum)
pc.mount(vnum, 36000000)
chat("Dein Pferd wurde gerufen.")
return 0
end
Befehl in der Quest:
Code:
horse_summon(20102)
Die Funktion ist in der quest_functions eingetragen
Syserr:
Code:
SYSERR: Sep 4 19:36:34 :: RunState: LUA_ERROR: [string "horse_summon"]:8: attempt to call global `horse_summon' (a table value)
SYSERR: Sep 4 19:36:34 :: WriteRunningStateToSyserr: LUA_ERROR: quest horse_summon.start click
Wer könnte mir mal erklären, was ich vergessen habe?
Lg. Nighti
|
steht doch da 'attempt to call global `horse_summon' (a table value)'
du versuchst eine Tabelle aufzurufen horse_summon ist eine tabelle, gib der Funktion einen anderen Namen dann sollte es klappen.
|
|
|
09/05/2013, 17:34
|
#8948
|
elite*gold: 0
Join Date: Aug 2013
Posts: 301
Received Thanks: 88
|
Quote:
Originally Posted by ProfessorEnte
Schau mal in deiner questlib.lua nach den Funktion:
give_dm
Danach schaust du welche MYSQL version du hast.
fuer MySQL55 ersetzt du die Funktion give_dm mit dieser:
PHP Code:
function give_dm(z)
os.execute("mysql -u root account -execute='UPDATE account SET coins = coins + ".. z .." WHERE id = ".. pc.get_account_id() ..";'")
os.execute("mysql -u root log -execute='INSERT INTO voucher_log (account_id, pocet, cas) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'")
end
Bei MySQL51 mit dieser:
PHP Code:
function give_dm(z)
os.execute("mysql -u root account --execute='UPDATE account SET coins = coins + ".. z .." WHERE id = ".. pc.get_account_id() ..";'")
os.execute("mysql -u root log --execute='INSERT INTO voucher_log (account_id, pocet, cas) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'")
end
Und ueberpruefe bitte ob du give_dm in der quest_functions eingetragen hast.
|
Ich habe alles beide Querys für die Questlib ausprobiert. Es war vorher eine in der Questlib drinne, und er schreibt die nicht gut, aber von der Quest her gibt es keine Fehler(-meldungen). Es ist auch give_dm in der quest_funktion eingetragen.
MFG
Fitchi
|
|
|
09/05/2013, 18:32
|
#8949
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
|
Quote:
Originally Posted by ©Fitchi
Ich habe alles beide Querys für die Questlib ausprobiert. Es war vorher eine in der Questlib drinne, und er schreibt die nicht gut, aber von der Quest her gibt es keine Fehler(-meldungen). Es ist auch give_dm in der quest_funktion eingetragen.
MFG
Fitchi
|
Ein Coins Eintrag in der Account Table ist aber schon vorhanden oder  ?
|
|
|
09/05/2013, 20:39
|
#8950
|
elite*gold: 0
Join Date: Aug 2013
Posts: 301
Received Thanks: 88
|
das kommt direkt nach dem ich das Item angeklickt hab und mir laut Item die Coins gutgeschrieben wurden
|
|
|
09/05/2013, 23:22
|
#8951
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
Dann hat dein root-User in MySQL der auf den Host 'localhost' zugelassen ist wohl ein Passwort. Entweder entfernst du dieses, oder passt die Query an.
MfG
|
|
|
09/05/2013, 23:59
|
#8952
|
elite*gold: 20
Join Date: Jun 2010
Posts: 2,237
Received Thanks: 956
|
Code:
quest itemwear begin
state start begin
when 28760.use begin
notice("Ich habe das Item angezogen")
end
end
end
Hii
wenn ich das Item anziehe (geht in den Slot wo auch z.B der Windschuh rein geht)
kommt keine Notiz!!
Also ich will dass es über den Kopf erscheint, als ob man Chatten würde!!
PS: Es tauchen keine Fehler beim reloaden auf!
Bitte um hilfe!
LG
|
|
|
09/06/2013, 00:16
|
#8953
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
Quote:
Originally Posted by Tunii
Code:
quest itemwear begin
state start begin
when 28760.use begin
notice("Ich habe das Item angezogen")
end
end
end
Hii
wenn ich das Item anziehe (geht in den Slot wo auch z.B der Windschuh rein geht)
kommt keine Notiz!!
Also ich will dass es über den Kopf erscheint, als ob man Chatten würde!!
PS: Es tauchen keine Fehler beim reloaden auf!
Bitte um hilfe!
LG
|
1. Das Item muss dafür den Type 18 haben
2. Du kannst das meines Wissens nicht so machen, dass eine Notiz über dem Kopf erscheint
3. Wenn der Type 18 ist, geht es aber auch nicht mehr in den Slot hinein
MfG
|
|
|
09/06/2013, 10:54
|
#8954
|
elite*gold: 0
Join Date: Dec 2011
Posts: 1,891
Received Thanks: 1,244
|
HMMMM woran kann es liegen "
Error occured on compile info.quest
"
PHP Code:
quest info begin state start begin when 70004.use begin local a = select ("Itemshop Info","Drops","Devils Catacomb","Bruthöhle","Teamerliste","Abrechen") if a == 1 then say("Itemshop Info") say("Spenden:") say("10€ = xxx") say("25€ = xxx") say("50€ = xxx") say("100€ = xxx") say("") say("Vote 4 Coins:") say("Pro Voten bekommt ihr xxx coins gutgeschrieben.") say("Man kann nur alle 24 Stunden voten.") end if a == 2 then say("Drops") say("Die aktuellen Drops findet ihr im Forum.") say("Das Forum ist unter: xxxxx erreichbar.") end if a == 3 then say("Devils Catacomb") say("Das Devils Catacomb befindet sich unterhalb des") say("Dämonenturms, um eintreten") say("zu dürfen musst du Level 80 sein.") say("In diesem Gebiet treiben sich viele Untote herum.") end if a == 4 then say("Bruthöhle") say("Die Bruthöhle könnt ihr über den Grabstein am Ende") say("vom Sd3 betreten.") say("Um in die Bruthöhle zu kommen braucht ihr einen") say("Schlüssel, diesen droppt ihr von der") say("Königsspinne aus dem SD1.") end if a == 5 then say("Teamerliste") say("SA Schmerz) say("SL Nettel ") say("NA Happy") say("GM cRYME") end if a == 6 then return end end end end
|
|
|
09/06/2013, 10:57
|
#8955
|
elite*gold: 210
Join Date: Jun 2013
Posts: 1,203
Received Thanks: 390
|
Quote:
Originally Posted by HappyMiss
HMMMM woran kann es liegen "
Error occured on compile info.quest
"
PHP Code:
quest info begin
state start begin
when 70004.use begin
local a = select ("Itemshop Info","Drops","Devils Catacomb","Bruthöhle","Teamerliste","Abrechen")
if a == 1 then
say("Itemshop Info")
say("Spenden:")
say("10€ = xxx")
say("25€ = xxx")
say("50€ = xxx")
say("100€ = xxx")
say("")
say("Vote 4 Coins:")
say("Pro Voten bekommt ihr xxx coins gutgeschrieben.")
say("Man kann nur alle 24 Stunden voten.")
end
if a == 2 then
say("Drops")
say("Die aktuellen Drops findet ihr im Forum.")
say("Das Forum ist unter: xxxxx erreichbar.")
end
if a == 3 then
say("Devils Catacomb")
say("Das Devils Catacomb befindet sich unterhalb des")
say("Dämonenturms, um eintreten")
say("zu dürfen musst du Level 80 sein.")
say("In diesem Gebiet treiben sich viele Untote herum.")
end
if a == 4 then
say("Bruthöhle")
say("Die Bruthöhle könnt ihr über den Grabstein am Ende")
say("vom Sd3 betreten.")
say("Um in die Bruthöhle zu kommen braucht ihr einen")
say("Schlüssel, diesen droppt ihr von der")
say("Königsspinne aus dem SD1.")
end
if a == 5 then
say("Teamerliste")
say("SA Schmerz)
say("SL Nettel ")
say("NA Happy")
say("GM cRYME")
end
if a == 6 then
return
end
end
end
end
|
Du hast bei der Teamliste ein " vergessen.
Und du kannst statt if elseif benutzen
PHP Code:
quest info begin
state start begin
when 70004.use begin
local a = select ("Itemshop Info","Drops","Devils Catacomb","Bruthöhle","Teamerliste","Abrechen")
if a == 1 then
say("Itemshop Info")
say("Spenden:")
say("10€ = xxx")
say("25€ = xxx")
say("50€ = xxx")
say("100€ = xxx")
say("")
say("Vote 4 Coins:")
say("Pro Voten bekommt ihr xxx coins gutgeschrieben.")
say("Man kann nur alle 24 Stunden voten.")
elseif a == 2 then
say("Drops")
say("Die aktuellen Drops findet ihr im Forum.")
say("Das Forum ist unter: xxxxx erreichbar.")
elseif a == 3 then
say("Devils Catacomb")
say("Das Devils Catacomb befindet sich unterhalb des")
say("Dämonenturms, um eintreten")
say("zu dürfen musst du Level 80 sein.")
say("In diesem Gebiet treiben sich viele Untote herum.")
elseif a == 4 then
say("Bruthöhle")
say("Die Bruthöhle könnt ihr über den Grabstein am Ende")
say("vom Sd3 betreten.")
say("Um in die Bruthöhle zu kommen braucht ihr einen")
say("Schlüssel, diesen droppt ihr von der")
say("Königsspinne aus dem SD1.")
elseif a == 5 then
say("Teamerliste")
say("SA Schmerz")
say("SL Nettel ")
say("NA Happy")
say("GM cRYME")
elseif a == 6 then
return
end
end
end
end
|
|
|
All times are GMT +1. The time now is 01:54.
|
|