Heyo,
ich habe ein kleines Problem mit einer Quest und zwar geht es um diese hier:
PHP Code:
quest iphone begin state start begin function count_unread() local rows = mysql_query("SELECT COUNT(id) FROM "..DATABASE..".iphone WHERE empfang_pid='"..pc.get_player_id().."' AND is_read='0'") return tonumber(rows[1][1]) end function message_sendmessage(player_pid,name) say_title("Diese Nachricht wird gesendet an: "..name.."") say("Wie lautet der Betreff?") local betreff = input() if betreff == "" then say_title("iPhone:") say("") say("Der Betreff ist leer!") say("Du musst einen Betreff angeben") say("") elseif string.len(betreff) > 15 then say_title("iPhone:") say("") say("Der Betreff darf nicht länger") say("als 15 Zeichen sein.") say("") elseif string.len(betreff) < 2 then say_title("iPhone:") say("") say("Der Betreff darf nicht kürzer") say("als 2 Zeichen sein.") say("") else say_title("Diese Nachricht wird gesendet an: "..name.."") say("Dein Text Zeile 1 (noch 3 verfügbar):") local messagess = input() say_title("Diese Nachricht wird gesendet an: "..name.."") say("Dein Text Zeile 2 (noch 2 verfügbar):") local messagess1 = input() say_title("Diese Nachricht wird gesendet an: "..name.."") say("Dein Text Zeile 3 (noch 1 verfügbar):") local messagess2 = input() say_title("Diese Nachricht wird gesendet an: "..name.."") say("Dein Text Zeile 4 (keins mehr verfügbar):") local messagess3 = input() local message = messagess.."[ENTER]"..messagess1.."[ENTER]"..messagess2.."[ENTER]"..messagess3 local check_message = mysql_query("SELECT '"..message.."' LIKE '%^%' OR '"..message.."' LIKE '%:%' or '"..message.."' LIKE '%ß%'") if tonumber(check_message[1][1]) >= 1 then syschat("iPhone:: Du hast ungültige Zeichen verwendet. Nachricht konnte nicht erstellt werden!") return end local name = SQL_get_player_name_by_id(player_pid) say_title("iPhone:") say("") say_reward("Senden an: "..name.."") say_reward("Betreff: "..betreff.."") say_reward("Nachricht:") say(""..message.."") say("") say_title("Soll sie versendet werden? (kostet 100.000 Yang)") local v = select("Ja","Nein") if v == 1 then if pc.get_gold() >= 100000 then pc.changegold(-100000) mysql_query("INSERT INTO "..DATABASE..".iphone (sender_pid, empfang_pid, betreff, message, date_time,is_send) VALUES ('"..pc.get_player_id().."','"..player_pid.."','"..betreff.."','"..message.."',NOW(),'1')") syschat("iPhone: Die Nachricht wurde erfolgreich versand an "..name..".") else syschat("iPhone: Die Nachricht konnte nicht versendet werden. Du hast zuwenig Yang.") end end end end
function message_posteingang() local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM "..DATABASE..".iphone INNER JOIN player.player ON player.id = iphone.sender_pid WHERE empfang_pid = '"..pc.get_player_id().."' and is_read='0' ORDER BY id DESC LIMIT 10") ret = {} local i = 1 while i <= table.getn(rows) do ret[i] = rows[i][2].." von "..rows[i][3].." " globa_var_add("iphone_message_"..i.."",rows[i][1]) i = i + 1 end ret[i] = 'Schließen' globa_var_add("iphone_message_count",table.getn(rows) +1) return select_table(ret) end function message_postausgang() local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM "..DATABASE..".iphone INNER JOIN player.player ON player.id = iphone.sender_pid WHERE empfang_pid = '"..pc.get_player_id().."' and is_save='1' ORDER BY id DESC LIMIT 10") ret = {} local i = 1 while i <= table.getn(rows) do ret[i] = rows[i][2].." von "..rows[i][3].." " globa_var_add("iphone_message_"..i.."",rows[i][1]) i = i + 1 end ret[i] = 'Schließen' globa_var_add("iphone_message_count",table.getn(rows) +1) return select_table(ret) end function message_sends() local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM "..DATABASE..".iphone INNER JOIN player.player ON player.id = iphone.empfang_pid WHERE sender_pid = '"..pc.get_player_id().."' and is_send='1' ORDER BY id DESC LIMIT 10") ret = {} local i = 1 while i <= table.getn(rows) do ret[i] = rows[i][2].." an "..rows[i][3].." " globa_var_add("iphone_message_"..i.."",rows[i][1]) i = i + 1 end ret[i] = 'Schließen' globa_var_add("iphone_message_count",table.getn(rows) +1) return select_table(ret) end function message_get_id(a) local message_id = tonumber(globa_var_get("iphone_message_"..a.."")) if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then return end local messages = mysql_query("SELECT sender_pid,date_time,betreff,message FROM "..DATABASE..".iphone WHERE id = '"..message_id.."'") local name = SQL_get_player_name_by_id(messages[1][1]) say_reward("[WINDOW_SIZE width;350|height;340]Von: "..name.."") say_reward("Datum: "..messages[1][2]) say_reward("Betreff: "..messages[1][3]) say("") say_title("Nachricht:") say(messages[1][4]) say("") say_reward("Was möchtest du mit dieser Nachricht machen?") mysql_query("UPDATE "..DATABASE..".iphone SET is_read='1',read_ad = NOW() WHERE id= '"..message_id.."'") local w = select("Löschen","Verschieben zu Gespeicherte Nachrichten","Zurückscheiben","Nichts") if w == 1 then mysql_query("UPDATE "..DATABASE..".iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0' WHERE id='"..message_id.."'") syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich gelöscht.") elseif w == 2 then mysql_query("UPDATE "..DATABASE..".iphone SET is_save='1',save_ad = NOW(),is_send='0' WHERE id='"..message_id.."'") syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich verschoben in Gespeicherte Nachrichten.") elseif w == 3 then iphone.message_sendmessage(messages[1][1],name) end end function message_get_id_(a) local message_id = tonumber(globa_var_get("iphone_message_"..a.."")) if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then return end local messages = mysql_query("SELECT sender_pid,date_time,betreff,message,save_ad FROM "..DATABASE..".iphone WHERE id = '"..message_id.."'") local name = SQL_get_player_name_by_id(messages[1][1]) say_reward("[WINDOW_SIZE width;350|height;340]Von: "..name.."") say_reward("Datum: "..messages[1][2]) say_reward("Betreff: "..messages[1][3]) say_reward("Gespeichert am: "..messages[1][5]) say("") say_title("Nachricht:") say(messages[1][4]) say("") say_reward("Was möchtest du mit dieser Nachricht machen?") mysql_query("UPDATE "..DATABASE..".iphone SET is_read='1',read_ad = NOW() WHERE id= '"..message_id.."'") local w = select("Löschen","Nichts") if w == 1 then mysql_query("UPDATE "..DATABASE..".iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0',delete_time='"..get_time() + 60*60*24*14 .."' WHERE id='"..message_id.."'") syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich gelöscht.") end end function message_get_id_send(a) local message_id = tonumber(globa_var_get("iphone_message_"..a.."")) if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then return end local messages = mysql_query("SELECT empfang_pid,date_time,betreff,message FROM "..DATABASE..".iphone WHERE id = '"..message_id.."'") local name = SQL_get_player_name_by_id(messages[1][1]) say_reward("[WINDOW_SIZE width;350|height;340]An: "..name.."") say_reward("Datum: "..messages[1][2]) say_reward("Betreff: "..messages[1][3]) say("") say_title("Nachricht:") say(messages[1][4]) say("") say_reward("Was möchtest du mit dieser Nachricht machen?") local w = select("Löschen","Verschieben zu Gespeicherte Nachrichten","Nichts") if w == 1 then mysql_query("UPDATE "..DATABASE..".iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0',delete_time='"..get_time() + 60*60*24*14 .."' WHERE id='"..message_id.."'") syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich gelöscht.") elseif w == 2 then mysql_query("UPDATE "..DATABASE..".iphone SET is_save='1',save_ad = NOW(),is_send='0' WHERE id='"..message_id.."'") syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich verschoben in Gespeicherte Nachrichten.") end end when letter begin local value = iphone.count_unread() if value > 0 then send_letter("Du hast "..value.." Ungelesene Nachrichten") end end when button or info begin say_title("iPhone:") say("") say("Du hast "..iphone.count_unread().." ungelesene Nachrichten.") say("Schaue dazu auf dein iPhone.") say("") say_item_vnum(80271) end when 80271.use begin say_title("iPhone:") say("") local a = select("Nachricht Verfassen", "Posteingang ("..iphone.count_unread()..")", "Gesendete Nachrichten", "Gespeicherte Nachrichten","Schließen") if a == 1 then say("An wenn soll die Nachricht gesendet werden?") local name = input() if SQL_exits_player_by_name(name) == false then syschat("iPhone: Konnte den Charakter nicht finden. Abbruch!") return end iphone.message_sendmessage(SQL_get_player_id_by_name(name),name) elseif a == 2 then if iphone.count_unread() == 0 then syschat("iPhone: Du hast keine ungelesenen Nachrichten.") return end say("[WINDOW_SIZE width;350|height;430]Nachrichten im Posteingang (10 max. sichtbar):") iphone.message_get_id(iphone.message_posteingang()) elseif a == 3 then say("[WINDOW_SIZE width;350|height;430]Gesendete Nachrichten (10 max. sichtbar):") iphone.message_get_id_send(iphone.message_sends()) elseif a == 4 then say("[WINDOW_SIZE width;350|height;430]Gespeicherte Nachrichten (10 max. sichtbar):") iphone.message_get_id_(iphone.message_postausgang()) end end end end
Und ja ich bekomme diesen Fehler:
PHP Code:
syntax error : [string "start"]:174: unexpected symbol near `when'
Wahrscheinlich ist es nichts großes , aber da ich leider keine Ahnung habe von questen finde ich den genauen Fehler nicht.
Hoffe jemand kann mir helfen.
quest iphone begin
state start begin
function count_unread()
local rows = mysql_query("SELECT COUNT(id) FROM "..DATABASE..".iphone WHERE empfang_pid='"..pc.get_player_id().."' AND is_read='0'")
return tonumber(rows[1][1])
end
function message_sendmessage(player_pid,name)
say_title("Diese Nachricht wird gesendet an: "..name.."")
say("Wie lautet der Betreff?")
local betreff = input()
if betreff == "" then
say_title("iPhone:")
say("")
say("Der Betreff ist leer!")
say("Du musst einen Betreff angeben")
say("")
elseif string.len(betreff) > 15 then
say_title("iPhone:")
say("")
say("Der Betreff darf nicht länger")
say("als 15 Zeichen sein.")
say("")
elseif string.len(betreff) < 2 then
say_title("iPhone:")
say("")
say("Der Betreff darf nicht kürzer")
say("als 2 Zeichen sein.")
say("")
else
say_title("Diese Nachricht wird gesendet an: "..name.."")
say("Dein Text Zeile 1 (noch 3 verfügbar):")
local messagess = input()
say_title("Diese Nachricht wird gesendet an: "..name.."")
say("Dein Text Zeile 2 (noch 2 verfügbar):")
local messagess1 = input()
say_title("Diese Nachricht wird gesendet an: "..name.."")
say("Dein Text Zeile 3 (noch 1 verfügbar):")
local messagess2 = input()
say_title("Diese Nachricht wird gesendet an: "..name.."")
say("Dein Text Zeile 4 (keins mehr verfügbar):")
local messagess3 = input()
local message = messagess.."[ENTER]"..messagess1.."[ENTER]"..messagess2.."[ENTER]"..messagess3
local check_message = mysql_query("SELECT '"..message.."' LIKE '%^%' OR '"..message.."' LIKE '%:%' or '"..message.."' LIKE '%ß%'")
if tonumber(check_message[1][1]) >= 1 then
syschat("iPhone:: Du hast ungültige Zeichen verwendet. Nachricht konnte nicht erstellt werden!")
return
end
local name = SQL_get_player_name_by_id(player_pid)
say_title("iPhone:")
say("")
say_reward("Senden an: "..name.."")
say_reward("Betreff: "..betreff.."")
say_reward("Nachricht:")
say(""..message.."")
say("")
say_title("Soll sie versendet werden? (kostet 100.000 Yang)")
local v = select("Ja","Nein")
if v == 1 then
if pc.get_gold() >= 100000 then
pc.changegold(-100000)
mysql_query("INSERT INTO "..DATABASE..".iphone (sender_pid, empfang_pid, betreff, message, date_time,is_send) VALUES ('"..pc.get_player_id().."','"..player_pid.."','"..betreff.."','"..message.."',NOW(),'1')")
syschat("iPhone: Die Nachricht wurde erfolgreich versand an "..name..".")
else
syschat("iPhone: Die Nachricht konnte nicht versendet werden. Du hast zuwenig Yang.")
end
end
end
end
function message_posteingang()
local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM "..DATABASE..".iphone INNER JOIN player.player ON player.id = iphone.sender_pid WHERE empfang_pid = '"..pc.get_player_id().."' and is_read='0' ORDER BY id DESC LIMIT 10")
ret = {}
local i = 1
while i <= table.getn(rows) do
ret[i] = rows[i][2].." von "..rows[i][3].." "
globa_var_add("iphone_message_"..i.."",rows[i][1])
i = i + 1
end
ret[i] = 'Schließen'
globa_var_add("iphone_message_count",table.getn(rows) +1)
return select_table(ret)
end
function message_postausgang()
local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM "..DATABASE..".iphone INNER JOIN player.player ON player.id = iphone.sender_pid WHERE empfang_pid = '"..pc.get_player_id().."' and is_save='1' ORDER BY id DESC LIMIT 10")
ret = {}
local i = 1
while i <= table.getn(rows) do
ret[i] = rows[i][2].." von "..rows[i][3].." "
globa_var_add("iphone_message_"..i.."",rows[i][1])
i = i + 1
end
ret[i] = 'Schließen'
globa_var_add("iphone_message_count",table.getn(rows) +1)
return select_table(ret)
end
function message_sends()
local rows = mysql_query("SELECT iphone.id, iphone.betreff , player.name FROM "..DATABASE..".iphone INNER JOIN player.player ON player.id = iphone.empfang_pid WHERE sender_pid = '"..pc.get_player_id().."' and is_send='1' ORDER BY id DESC LIMIT 10")
ret = {}
local i = 1
while i <= table.getn(rows) do
ret[i] = rows[i][2].." an "..rows[i][3].." "
globa_var_add("iphone_message_"..i.."",rows[i][1])
i = i + 1
end
ret[i] = 'Schließen'
globa_var_add("iphone_message_count",table.getn(rows) +1)
return select_table(ret)
end
function message_get_id(a)
local message_id = tonumber(globa_var_get("iphone_message_"..a..""))
if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then return end
local messages = mysql_query("SELECT sender_pid,date_time,betreff,message FROM "..DATABASE..".iphone WHERE id = '"..message_id.."'")
local name = SQL_get_player_name_by_id(messages[1][1])
say_reward("[WINDOW_SIZE width;350|height;340]Von: "..name.."")
say_reward("Datum: "..messages[1][2])
say_reward("Betreff: "..messages[1][3])
say("")
say_title("Nachricht:")
say(messages[1][4])
say("")
say_reward("Was möchtest du mit dieser Nachricht machen?")
mysql_query("UPDATE "..DATABASE..".iphone SET is_read='1',read_ad = NOW() WHERE id= '"..message_id.."'")
local w = select("Löschen","Verschieben zu Gespeicherte Nachrichten","Zurückscheiben","Nichts")
if w == 1 then
mysql_query("UPDATE "..DATABASE..".iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0' WHERE id='"..message_id.."'")
syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich gelöscht.")
elseif w == 2 then
mysql_query("UPDATE "..DATABASE..".iphone SET is_save='1',save_ad = NOW(),is_send='0' WHERE id='"..message_id.."'")
syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich verschoben in Gespeicherte Nachrichten.")
elseif w == 3 then
iphone.message_sendmessage(messages[1][1],name)
end
end
function message_get_id_(a)
local message_id = tonumber(globa_var_get("iphone_message_"..a..""))
if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then return end
local messages = mysql_query("SELECT sender_pid,date_time,betreff,message,save_ad FROM "..DATABASE..".iphone WHERE id = '"..message_id.."'")
local name = SQL_get_player_name_by_id(messages[1][1])
say_reward("[WINDOW_SIZE width;350|height;340]Von: "..name.."")
say_reward("Datum: "..messages[1][2])
say_reward("Betreff: "..messages[1][3])
say_reward("Gespeichert am: "..messages[1][5])
say("")
say_title("Nachricht:")
say(messages[1][4])
say("")
say_reward("Was möchtest du mit dieser Nachricht machen?")
mysql_query("UPDATE "..DATABASE..".iphone SET is_read='1',read_ad = NOW() WHERE id= '"..message_id.."'")
local w = select("Löschen","Nichts")
if w == 1 then
mysql_query("UPDATE "..DATABASE..".iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0',delete_time='"..get_time() + 60*60*24*14 .."' WHERE id='"..message_id.."'")
syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich gelöscht.")
end
end
function message_get_id_send(a)
local message_id = tonumber(globa_var_get("iphone_message_"..a..""))
if tonumber(globa_var_get("iphone_message_count")) == tonumber(a) then return end
local messages = mysql_query("SELECT empfang_pid,date_time,betreff,message FROM "..DATABASE..".iphone WHERE id = '"..message_id.."'")
local name = SQL_get_player_name_by_id(messages[1][1])
say_reward("[WINDOW_SIZE width;350|height;340]An: "..name.."")
say_reward("Datum: "..messages[1][2])
say_reward("Betreff: "..messages[1][3])
say("")
say_title("Nachricht:")
say(messages[1][4])
say("")
say_reward("Was möchtest du mit dieser Nachricht machen?")
local w = select("Löschen","Verschieben zu Gespeicherte Nachrichten","Nichts")
if w == 1 then
mysql_query("UPDATE "..DATABASE..".iphone SET is_delete='1',delete_ad = NOW(),is_save='0',is_send='0',delete_time='"..get_time() + 60*60*24*14 .."' WHERE id='"..message_id.."'")
syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich gelöscht.")
elseif w == 2 then
mysql_query("UPDATE "..DATABASE..".iphone SET is_save='1',save_ad = NOW(),is_send='0' WHERE id='"..message_id.."'")
syschat("iPhone: Die Nachricht von "..name.." wurde erfolgreich verschoben in Gespeicherte Nachrichten.")
end
end
end
when letter begin
local value = iphone.count_unread()
if value > 0 then
send_letter("Du hast "..value.." Ungelesene Nachrichten")
end
end
when button or info begin
say_title("iPhone:")
say("")
say("Du hast "..iphone.count_unread().." ungelesene Nachrichten.")
say("Schaue dazu auf dein iPhone.")
say("")
say_item_vnum(80271)
end
when 80271.use begin
say_title("iPhone:")
say("")
local a = select("Nachricht Verfassen", "Posteingang ("..iphone.count_unread()..")", "Gesendete Nachrichten", "Gespeicherte Nachrichten","Schließen")
if a == 1 then
say("An wenn soll die Nachricht gesendet werden?")
local name = input()
if SQL_exits_player_by_name(name) == false then
syschat("iPhone: Konnte den Charakter nicht finden. Abbruch!")
return
end
iphone.message_sendmessage(SQL_get_player_id_by_name(name),name)
elseif a == 2 then
if iphone.count_unread() == 0 then
syschat("iPhone: Du hast keine ungelesenen Nachrichten.")
return
end
say("[WINDOW_SIZE width;350|height;430]Nachrichten im Posteingang (10 max. sichtbar):")
iphone.message_get_id(iphone.message_posteingang())
elseif a == 3 then
say("[WINDOW_SIZE width;350|height;430]Gesendete Nachrichten (10 max. sichtbar):")
iphone.message_get_id_send(iphone.message_sends())
elseif a == 4 then
say("[WINDOW_SIZE width;350|height;430]Gespeicherte Nachrichten (10 max. sichtbar):")
iphone.message_get_id_(iphone.message_postausgang())
end
end
end
end
Sollte so gehen.
Das nächste mal aber den Sammelthread nutzen
[Quest-PROBLEM]"Weiter"-Button, Quest schließt sich 02/01/2014 - Metin2 Private Server - 8 Replies Servus Leute,
ich habe folgendes Problem, meine "give_starter_set.quest" sieht wie folgt aus:
quest give_starter_set begin
state start begin
when login begin
say_title("Willkommen")
say("Willkommen auf TEST")
Compile all quest without quest's files list // Kompilieren Sie alle Quest ohne Quest 07/17/2011 - Metin2 PServer Guides & Strategies - 3 Replies ENGLISH
Hello dear community, this is a very simple guide but at the same time useful.
How to compile ALL quest in the folder "quest" without the files list in the file "locale_list"?
Easy!
Open the file "make" and replace the content of the file with this:
for f in *.quest; do ./qc $f; done
Oki. Now set the 0777 permission to the file.
Finally open a SSH client and sign in. Write the command:
cd /game_file_folder
[Problem] Problem with server starting - cannot find quest index for PaxHeader 12/22/2009 - Metin2 Private Server - 1 Replies Hello!
I have this same problem as here when i'm starting my server:
http://www.elitepvpers.com/forum/metin2-pserver-di scussions-questions/307143-metin2-serverfiles-ques t-index-fehler.html
But I didn't know the answer.. how to repair this?
Greetings