|
You last visited: Today at 16:53
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
04/01/2014, 18:37
|
#9946
|
elite*gold: 0
Join Date: Dec 2010
Posts: 200
Received Thanks: 24
|
Quote:
Originally Posted by .Delta
WHERE Name = ""..sname[1][1].."" das ist strange^^
probier mal
WHERE Name = '"..sname[1][1].."'
|
Quote:
Originally Posted by Kilroy.
Ja das ist strange, da [1][1] nur bei der funktion searchname Auswirkungen hätte.
PHP Code:
local searchname = mysql_query("select Name from quest.bankgold ")
Somit müsste man searchname[1][1] schreiben um den Namen der durch die Select-Funktion gewählt worden ist, auszugeben^^
Dies wirft mich zu einer ganz anderen Frage
PHP Code:
sname = input()
Man erfährt also dadurch wer der Empfänger ist, danach durch die Select-Funktion kann der Name gar nicht gewählt werden, da du kein WHERE ... setzt.
Richtig müsste es so sein.
hier gibt Spieler A den Namen vom Empfänger an (denke war allen klar)
PHP Code:
local sname = input()
hier das Auslesen der Namens Zeile aus der entsprechenden Datenbank
PHP Code:
local searchname = mysql_query("SELECT Name from quest.bankgold WHERE Name = '"..sname.."' ")
PHP Code:
local transfer2 = mysql_query("UPDATE quest.bankgold SET Konto1 = Konto1+"..goldtrans.." WHERE Name = '"..searchname[1][1].."' ")
Schöner wäre das ganze dann auch noch so:
PHP Code:
local sname = input()
PHP Code:
local searchname = mysql_query("SELECT Name FROM quest.bankgold WHERE Name = '"..sname.."';")[1][1]
Wieso verwendest du die Funktion pc.get_player_id() wenn du bei dem 2ten Transfer nach den Namen sucht, wäre leichter wenn'de dann auch nach dem Namen(welcher überweist) suchst.
PHP Code:
mysql_query("UPDATE quest.bankgold SET Konto1 = Konto1 - "..goldtrans.." WHERE Name = '"..pc.get_name().."';")
PHP Code:
mysql_query("UPDATE quest.bankgold SET Konto1 = Konto1 + "..goldtrans.." WHERE Name = '"..searchname.."';")
Ich hoffe doch auch das der Ort und die Spalten so heißen wie du sie angibst!
|
Erst einmal vielen Dank für die möglichen Hilfestellungen.
zu dem Punkt
Quote:
Originally Posted by Kilroy.
Ich hoffe doch auch das der Ort und die Spalten so heißen wie du sie angibst!
|
ja der Pfad stimmt, weil dem "Absender" wird stets das angegebene Gold abgezogen, nur der "Empfänger" bekommt es nicht gut geschrieben. Kann es eventuell daran liegen das der Spieler offline ist?
Edit: hat sich erledigt , klappt alles wunderbar ! Vielen Dank / war gerade ein Fehler meinerseits beim einfügen....
Vielen dank für die Hilfestellungen
Gruß Blacky
|
|
|
04/01/2014, 18:46
|
#9947
|
elite*gold: 0
Join Date: Mar 2014
Posts: 738
Received Thanks: 549
|
Quote:
Originally Posted by Rofelmau
Da fehlt nen end am ende
|
nope, der Fehler muss ja auch woanders liegen, wenn FBSD anzeigt:
syntax error: [String "collect_rubin . count_item {9999} > 0"1;39: <eof> expected near else
Die_erste_Aufgabe.quest:115:Error occured on compile Die_erste_Aufgabe.quest
|
|
|
04/01/2014, 19:12
|
#9948
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Quote:
Originally Posted by xSess
nope, der Fehler muss ja auch woanders liegen, wenn FBSD anzeigt:
syntax error: [String "collect_rubin . count_item {9999} > 0"1;39: <eof> expected near else
Die_erste_Aufgabe.quest:115:Error occured on compile Die_erste_Aufgabe.quest
|
Er hat Recht, es fehlt ein end unten 
ansonsten hast du versucht die Wartezeit zu entfernen, aber hast einen Else Zweig übersehen.
PHP Code:
quest Die_erste_Aufgabe begin
state start begin
when login or levelup with pc.get_level()>= 6 begin
set_state(talk_to_disciple_lv6)
end
end
state talk_to_disciple_lv6 begin
when letter begin
local v = find_npc_by_vnum(20090)
if v != 0 then target.vid("__TARGET__", v, "Asami")
end
send_letter("Edelsteine Teil 1")
end
when button or info begin
say_title("Die Forschungen von Asami")
say("")
say("Asami benötigt deine Hilfe.")
say("Sprich mit ihr.")
say("")
say_reward("Sprich mit Asami")
say("")
end
when __TARGET__.target.click or 20090.chat."Edelsteine Teil 1" begin
target.delete("__TARGET__")
say("Asami:")
say("")
say("Oh, wer bist du denn?")
say("Ah, du bist noch recht neu, ich verstehe.")
say("Ich bin übrigens Asami. Ich sammle verschiedene Edelsteine")
say("und suche noch jemanden, der mir dabei hilft.")
say("Hey! Könntest du mir nicht helfen?")
say("Wenn du mir bei verschiedenen Edelsteinarten hilfst,")
say("sie zu sammeln, werde ich dich Reich belohnen!")
wait()
say("Asami:")
say("Spitze! Als erstes suche ich Rubine")
say("sie sind nicht sehr selten, aber ich brauche davon sehr viele.")
say("Da ich zurzeit recht beschäftig bin wäre es nett, wenn du")
say("mir einige Rubine bringen könntest.")
say("")
wait()
say("Asami:")
say("Ich benötige 50 Rubine für meine Forschungen.")
say("Diese sind zwar sehr robust, aber")
say("es kann passieren, dass einige bei")
say("meinen Untersuchungen kaputt gehen.")
say("Ich benötige alle 50,")
say("um meine Forschungen vollenden zu können.")
say("")
set_state(collect_rubin)
pc.setqf("duration",0)
pc.setqf("collect_count",0)
end
end
state collect_rubin begin
when letter begin
send_letter("Edelsteine Teil 1")
end
when button or info begin
say_title("Rubine")
say("")
say("Asami gab euch den Auftrag,")
say("50 Rubine zu sammeln.")
say("Sammelt und bringt sie zu Asami.")
say("")
say_item_vnum(19)
say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!")
say("")
end
when 20090.chat."Rubine" with pc.count_item(9999)>0 begin
say("Einen Moment ...")
say("Vielen Dank,")
say("lasst mich schnell überprüfen")
say("ob dieser Rubin in Ordnung ist ...")
say("")
pc.remove_item("9999", 1)
wait()
local rand = number(0,99)
if rand<50 then
local count = pc.getqf("collect_count")+1
if count<10 then
pc.setqf("collect_count", count)
say("Asami:")
say("Hervorragend, dieser Rubin ist in Ordnung.")
say("Bringt mir noch welche, damit ich meine")
say("Forschungen abschließen kann.")
say("")
say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!")
say("")
else
say("Asami:")
say("Du hast mir die 50 Stück gebracht...")
say("Nun bitte ich dich noch, mir den")
say("ein gewisses Schmuckstück zu bringen.")
say("Du bekommst es von jedem Monster in Map1 und Map2! ...")
say("Ich denke, dafür bist du stark genug.")
say("")
pc.setqf("collect_count",0)
pc.setqf("duration",0)
set_state(collect_Schmuckstueck)
end
else
say("Asami:")
say("Es tut mir leid, aber der Rubin ist bei")
say("meinen Untersuchungen zerbrochen.")
say("Bitte hol mir einen neuen Rubin!")
say("")
end
end
end
state collect_Schmuckstueck begin
when letter begin
send_letter("Das Schmuckstück")
end
when button or info begin
say_title("Das Schmuckstück")
say("")
say("Du hast Asami alle 50 Rubine gebracht.")
say("Nun müsst du das Schmuckstück erbeuten.")
say("")
say_item_vnum(30141)
say("Was das wohl für ein Schmuck sein mag?")
say("")
end
when 405.kill or 404.kill or 406.kill or 401.kill or 402.kill or 101.kill or 102.kill or 103.kill or 104.kill begin
if pc.count_item(30141)<1 then
local rand = number(0,99)
if rand<5 then pc.give_item2(30141, 1)
end
end
end
when 20090.chat."Das Schmuckstück" begin
if pc.count_item(30141)>0 then
say("Asami:")
say("Dank deiner Hilfe konnte ich einen neuen Rubin herstellen!")
say("Ich danke dir von ganzem Herzen.")
say("Du hast hart gekämpft.")
say("Geh doch bitte zu meinem Freund Sokka,")
say("er wird dir eine gute Belohnung geben.")
say("")
pc.remove_item(30141,1)
set_state(Schmuckstueck_reward)
else
say("Asami:")
say("Du hast mir die 50 Stück gebracht...")
say("Nun bitte ich dich noch, mir ein")
say("Schmuckstück zu bringen.")
say("Du bekommst es von allen Monstern in Map1 und Map2 ...")
say("Ich denke, dafür bist du stark genug.")
say("")
end
end
end
state schmuckstueck_reward begin
when letter begin
send_letter("Sprich mit Sokka")
local v = find_npc_by_vnum(20018)
if v != 0 then target.vid("__TARGET__", v, "Sokka")
end
end
when button or info begin
say("Um die Belohnung von Asami zu erhalten,")
say("suche Sokka auf. Er wird dir eine prächtige Belohnung überreichen.")
say("")
end
when __TARGET__.target.click or 20018.chat."Belohnung von Asami" begin
target.delete("__TARGET__")
say_title("Sokka:")
say("Ich sehe ...")
say("Asami hat dich zu mir geschickt.")
say("Hier ist deine Belohnung:")
say("")
say_reward("Du erhälst:")
say_reward("800 Trefferpunkte (permanent) und 10% Monster ")
say("")
affect.add_collect(apply.MAX_HP, 800, 60*60*24*365*60)
affect.add_collect(apply.ATTBONUS_MONSTER, 10, 60*60*24*365*60)
set_state(collect_quest_lv8)
end
end
end
|
|
|
04/01/2014, 19:45
|
#9949
|
elite*gold: 0
Join Date: Mar 2014
Posts: 738
Received Thanks: 549
|
hmh, hab die Wartezeit entfernt. Den else-Zweig habe ich vllt übersehen, ändert dennoch nichts^^ immernoch der selbe Fehler.
|
|
|
04/01/2014, 20:33
|
#9950
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
dann stell den geänderten code rein
|
|
|
04/02/2014, 08:53
|
#9951
|
elite*gold: 0
Join Date: Aug 2012
Posts: 741
Received Thanks: 210
|
Also wenn ich loli einfüge klappt alles aber wenn ich danach halbmondring quest einfüge sind es ja dann 2 dann funktioniert loli aber sein Tp wird nicht zurückgesetzt dafür funktioniert dann der Halbmondring einwand frei aber ich will das es auch bei loli funktioniert was hab ich den da falsch gemacht hilfe pls!!!!!!!!!!!!!!!!!!!
Code:
quest loli begin
state start begin
when 71136.use with pc.getqf("use") == 0 begin
pc.setqf("use",pc.count_item(71136)+1)
cmdchat("buff2")
affect.add_collect(apply.CRITICAL_PCT, 15, 60*60*24*365*60)
affect.add_collect(apply.MAX_HP, 4000, 60*60*24*365*60)
affect.add_collect(apply.ATTBONUS_UNDEAD, 25, 60*60*24*365*60)
affect.add_collect(apply.ATTBONUS_DEVIL, 25, 60*60*24*365*60)
affect.add_collect(apply.ATTBONUS_MILGYO, 25, 60*60*24*365*60)
affect.add_collect(apply.ATTBONUS_ORC, 25, 60*60*24*365*60)
affect.add_collect(apply.ATTBONUS_ANIMAL, 25, 60*60*24*365*60)
affect.add_collect(apply.ATTBONUS_MONSTER, 25, 60*60*24*365*60)
affect.add_collect(apply.EXP_DOUBLE_BONUS, 30, 60*60*24*365*60)
loop_timer("check_item",1)
end
when login begin
if pc.getqf("use") ~= 0 then
loop_timer("check_item",1)
end
end
when check_item.timer begin
if pc.count_item(71136) ~= 0 then
if pc.count_item(71136) == pc.getqf("use") then
pc.setqf("use",0)
affect.remove_collect(apply.CRITICAL_PCT, 15, 60*60*24*365*60)
affect.remove_collect(apply.MAX_HP, 4000, 60*60*24*365*60)
affect.remove_collect(apply.ATTBONUS_UNDEAD, 25, 60*60*24*365*60)
affect.remove_collect(apply.ATTBONUS_DEVIL, 25, 60*60*24*365*60)
affect.remove_collect(apply.ATTBONUS_MILGYO, 25, 60*60*24*365*60)
affect.remove_collect(apply.ATTBONUS_ORC, 25, 60*60*24*365*60)
affect.remove_collect(apply.ATTBONUS_ANIMAL, 25, 60*60*24*365*60)
affect.remove_collect(apply.ATTBONUS_MONSTER, 25, 60*60*24*365*60)
affect.remove_collect(apply.EXP_DOUBLE_BONUS, 30, 60*60*24*365*60)
end
end
end
end
end
|
|
|
04/02/2014, 10:06
|
#9952
|
elite*gold: 0
Join Date: Dec 2010
Posts: 200
Received Thanks: 24
|
Gegenstand "auslesen" lassen mit Boni und Steinen
Hallo,
könnt ihr mir sagen welche Zeilen ich hier hinzufügen muss, damit die Bonis und Steine (falls in dem Gegenstand vorhanden) mit angezeigt werden.
PHP Code:
when NPC.take begin
local vnum = item.get_vnum()
say("Hallo")
say("")
say_item_vnum(vnum)
say("")
say("Ist das der Gegenstand?")
end
Vielen Dank
Gruß Blacky
|
|
|
04/02/2014, 17:22
|
#9953
|
elite*gold: 0
Join Date: Apr 2013
Posts: 108
Received Thanks: 15
|
PHP Code:
quest truhen_zero begin
state start begin
when login begin
pc.give_item2(50187)
set_state(truhen)
end
end
state truhen begin
when 50187.use begin
local item_vnum = 19 --Schwert+9
pc.give_item2(11209, 1) --Mönchsplattenpanzer+9
pc.give_item2(12209, 1) --Traditioneller Helm+9
if pc.get_job() == 1 then
item_vnum = 1009 --Dolche+9
pc.give_item2(11409, 1) --Azuranzug+9
pc.give_item2(12349, 1) --Lederkaputze+9
elseif pc.get_job() == 2 then
item_vnum = 19 --Schwert+9
pc.give_item2(11609, 1) --Requiem-Plattenpanzer+9
pc.give_item2(12489,1) --Blutiger Helm+9
elseif pc.get_job() == 3 then
item_vnum = 7009 --Fächer+9
pc.give_item2(11809, 1) --Pupurkleidung+9
pc.give_item2(12629, 1) --Mönchshut+9
end
pc.give_item2(item_vnum) --lvl 1er waffe je nach rasse
pc.give_item2(27003, 200) --Roter Trank(G)
pc.give_item2(27006, 200) --Blauer Trank(G)
pc.give_item2(27112, 200) --Grüner Trank(G)
pc.give_item2(27115, 200) --Violetter Trank(G)
pc.give_item2(13009, 1) --Schlachtschild+9
pc.give_item2(14009, 1) --Holzarmband+9
pc.give_item2(15009, 1) --Lederschuhe+9
pc.give_item2(16009, 1) --Holzhalskette+9
pc.give_item2(17009, 1) --Holzohrringe+9
pc.give_item2(70038, 200) --Tapferkeitsumhang
pc.give_item2(50037, 10) --Sechseckige Schatztruhe
pc.give_item2(72701, 1) --Windschuhe
pc.give_item2(72501, 1) --Anti-EXP
pc.give_item2(71134, 1) --Rappen-Siegel
pc.remove_item(50187, 1) --Lehrlingstruhe I verschwindet
end
end
end
So man bekommt auch als Schamie Sura Ninja immer Mpp und Tradi
Kann mir einer sagen why
|
|
|
04/02/2014, 19:00
|
#9954
|
elite*gold: 0
Join Date: Sep 2011
Posts: 188
Received Thanks: 99
|
Quote:
Originally Posted by xknairolf22
PHP Code:
quest truhen_zero begin
state start begin
when login begin
pc.give_item2(50187)
set_state(truhen)
end
end
state truhen begin
when 50187.use begin
local item_vnum = 19 --Schwert+9
pc.give_item2(11209, 1) --Mönchsplattenpanzer+9
pc.give_item2(12209, 1) --Traditioneller Helm+9
if pc.get_job() == 1 then
item_vnum = 1009 --Dolche+9
pc.give_item2(11409, 1) --Azuranzug+9
pc.give_item2(12349, 1) --Lederkaputze+9
elseif pc.get_job() == 2 then
item_vnum = 19 --Schwert+9
pc.give_item2(11609, 1) --Requiem-Plattenpanzer+9
pc.give_item2(12489,1) --Blutiger Helm+9
elseif pc.get_job() == 3 then
item_vnum = 7009 --Fächer+9
pc.give_item2(11809, 1) --Pupurkleidung+9
pc.give_item2(12629, 1) --Mönchshut+9
end
pc.give_item2(item_vnum) --lvl 1er waffe je nach rasse
pc.give_item2(27003, 200) --Roter Trank(G)
pc.give_item2(27006, 200) --Blauer Trank(G)
pc.give_item2(27112, 200) --Grüner Trank(G)
pc.give_item2(27115, 200) --Violetter Trank(G)
pc.give_item2(13009, 1) --Schlachtschild+9
pc.give_item2(14009, 1) --Holzarmband+9
pc.give_item2(15009, 1) --Lederschuhe+9
pc.give_item2(16009, 1) --Holzhalskette+9
pc.give_item2(17009, 1) --Holzohrringe+9
pc.give_item2(70038, 200) --Tapferkeitsumhang
pc.give_item2(50037, 10) --Sechseckige Schatztruhe
pc.give_item2(72701, 1) --Windschuhe
pc.give_item2(72501, 1) --Anti-EXP
pc.give_item2(71134, 1) --Rappen-Siegel
pc.remove_item(50187, 1) --Lehrlingstruhe I verschwindet
end
end
end
So man bekommt auch als Schamie Sura Ninja immer Mpp und Tradi
Kann mir einer sagen why 
|
Weil die Abfrage ganz einfach zu spät kommt. Er wird praktisch abgefragt, nachdem man den Mpp und den Tradi bekommen hat.
So sollte es gehen:
PHP Code:
quest truhen_zero begin
state start begin
when login begin
pc.give_item2(50187)
set_state(truhen)
end
end
state truhen begin
when 50187.use begin
if pc.get_job() == 0 then
local item_vnum = 19 --Schwert+9
pc.give_item2(11209, 1) --Mönchsplattenpanzer+9
pc.give_item2(12209, 1) --Traditioneller Helm+9
elseif pc.get_job() == 1 then
item_vnum = 1009 --Dolche+9
pc.give_item2(11409, 1) --Azuranzug+9
pc.give_item2(12349, 1) --Lederkaputze+9
elseif pc.get_job() == 2 then
item_vnum = 19 --Schwert+9
pc.give_item2(11609, 1) --Requiem-Plattenpanzer+9
pc.give_item2(12489,1) --Blutiger Helm+9
elseif pc.get_job() == 3 then
item_vnum = 7009 --Fächer+9
pc.give_item2(11809, 1) --Pupurkleidung+9
pc.give_item2(12629, 1) --Mönchshut+9
end
pc.give_item2(item_vnum) --lvl 1er waffe je nach rasse
pc.give_item2(27003, 200) --Roter Trank(G)
pc.give_item2(27006, 200) --Blauer Trank(G)
pc.give_item2(27112, 200) --Grüner Trank(G)
pc.give_item2(27115, 200) --Violetter Trank(G)
pc.give_item2(13009, 1) --Schlachtschild+9
pc.give_item2(14009, 1) --Holzarmband+9
pc.give_item2(15009, 1) --Lederschuhe+9
pc.give_item2(16009, 1) --Holzhalskette+9
pc.give_item2(17009, 1) --Holzohrringe+9
pc.give_item2(70038, 200) --Tapferkeitsumhang
pc.give_item2(50037, 10) --Sechseckige Schatztruhe
pc.give_item2(72701, 1) --Windschuhe
pc.give_item2(72501, 1) --Anti-EXP
pc.give_item2(71134, 1) --Rappen-Siegel
pc.remove_item(50187, 1) --Lehrlingstruhe I verschwindet
end
end
end
|
|
|
04/03/2014, 00:18
|
#9955
|
elite*gold: 0
Join Date: Jun 2013
Posts: 6
Received Thanks: 0
|
error: allocation failed
Hallo Epvp,
was ist an dieser Quest falsch...
quest dragon_soul begin
state start begin
when levelup or letter with pc.level >= 30 begin
send_letter("A Sárkánykő-szilánk érkezése")
local v = find_npc_by_vnum(20001)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20001))
end
end
when info or button begin
say("Az egész birodalom legszakavatotabb alkimistája")
say("keres. Menj el hozzá, amilyen gyorsan csak tudsz!")
end
when 20001.chat."Sárkánykő-szilánk?! " with pc.level >= 30 begin
target.delete("__TARGET__")
say_title(mob_name(20001))
say("Ah, te ott! Felfedeztem valami egészen")
say("figyelemreméltót: A Sárkánykő egy szilánkját! A")
say("Sárkánykő egy rendkívül ritka és értékes kristály")
say("hatalmas erővel. Azt tartják, egyszer ezek egy")
say("sárkány lelkét képezték. Hihetetlenül gyönyörű!")
say("Neked adom a Sárkányszem erejét, amivel te is")
say("érzékelheted a szilánkokat. Hozz nekem összesen")
say("tíz Sárkánykő-szilánkot. Akkor képes leszek")
say("átalakítani azokat egy teljes kővé.")
set_state(state_learning)
end
end
state state_learning begin
when letter begin
send_letter("Sárkánykő-szilánkok gyűjtése")
end
when info or button begin
say("Vigyél tíz Sárkánykő-szilánkot az Alkimistának.")
end
when kill begin
if npc.is_pc() then
return
end
if pc.count_item(30270) < 10 then
if drop_gamble_with_flag("ds_drop") then
game.drop_item_with_ownership(30270, 1, 300)
end
end
end
when 20001.chat."Sárkánykő-szilánkok gyűjtése" begin
say_title(mob_name(20001))
if pc.count_item(30270) >= 10 then
say("Ah, nagyon jó! Találtál tíz Sárkánykő-szilánkot.")
say("Kérlek, várj egy pillanatot.")
say("...")
say("Hihetetlen! Az átalakítás eredményeként egy Cor")
say("Draconis jött létre - egy megkristályosodott")
say("sárkányszív, mely védelmezően veszi körbe a")
say("Sárkánykövet. Amikor felnyitod, a Sárkánykő ")
say("közvetlenül a Sárkánykő-alkímia leltáradba kerül.")
say("Ahhoz, hogy Sárkánykő-szilánkot találj,")
say("szükséged lesz a Sárkányszem erejére. Én tudok")
say("egyet adni kölcsönbe - csak gyere el hozzám minden")
say("nap, és akkor te is képes leszel Sárkányköveket")
say("átalakítani! Egyet már megcsináltam neked mára, a")
say("maradék 9-et pedig te magad is létre tudod hozni.")
pc.remove_item(30270, 10)
ds.give_qualification()
char_log(pc.get_player_id(), 'DS_QUALIFICATION', 'SUCCESS')
pc.give_item2(50255)
local today = math.floor(get_global_time() / 86400)
pc.setf("dragon_soul", "eye_timestamp", today)
pc.setf("dragon_soul", "eye_left", 9)
set_state(state_farming)
else
say("Hé, ne vesztegesd az időt! Indulj és keress")
say("Sárkánykő-szilánkokat!")
end
end
end
state state_farming begin
when letter begin
send_letter("A Sárkányszem ereje")
end
when info or button begin
say(string.format(gameforge.dragon_soul._1100_say, pc.getf("dragon_soul", "eye_left")))
end
when kill begin
if npc.is_pc() then
return
end
if drop_gamble_with_flag("ds_drop") then
local eye_left = pc.getf("dragon_soul", "eye_left")
local haved_gemstone_number = pc.count_item(30270)
if eye_left > haved_gemstone_number / 10 then
game.drop_item_with_ownership(30270, 1, 300)
end
end
end
when 30270.pick begin
local eye_left = pc.getf("dragon_soul", "eye_left")
if eye_left <= 0 then
return
end
if pc.count_item(30270) >= 10 then
pc.setf("dragon_soul", "eye_left", eye_left - 1)
pc.remove_item(30270, 10)
pc.give_item2(50255)
if 1 == eye_left then
notice_multiline(gameforge.dragon_soul._1110_not ice, notice)
set_state(state_closed_season)
end
end
end
when 20001.chat."Add nekem a Sárkányszem erejét" begin
say_title(mob_name(20001))
local today = math.floor(get_global_time() / 86400)
if today == pc.getf("dragon_soul", "eye_timestamp") then
say("Hello! Ma már megkaptad a Sárkányszem erejét. Az")
say("eljárás nagyon legyengít, Úgyhogy naponta csak")
say("egyszer tudok rajtad segíteni. Gyere vissza holnap.")
else
say("Hello! Lefogadom, hogy a Sárkányszem erejéért")
say("jöttél. Ugye? Nagyszerű, akkor helyben vagy. Sok")
say("szerencsét a vadászathoz! Remélem, elég szilánkot")
say("találsz a tíz Sárkánykőhöz!")
pc.setf("dragon_soul", "eye_timestamp", today)
pc.setf("dragon_soul", "eye_left", 10)
end
end
end
state state_closed_season begin
when letter begin
send_letter("Megszűnt a Sárkányszem ereje")
end
when info or button begin
say("A tíz Sárkányszem ereje megszűnt.")
local today = math.floor(get_global_time() / 86400)
if today == pc.getf("dragon_soul", "eye_timestamp") then
say("Holnap gyere el újra az alkimistához aki készít")
say("számodra Sárkányszem erejét.")
else
say("Menj el az alkimistához a Sárkányszem erejéért.")
end
end
when 20001.chat."Megszűnt a Sárkányszem ereje" begin
say_title(mob_name(20001))
local today = math.floor(get_global_time() / 86400)
if today == pc.getf("dragon_soul", "eye_timestamp") then
say("Hello! Ma már megkaptad a Sárkányszem erejét. Az")
say("eljárás nagyon legyengít, úgyhogy naponta csak")
say("egyszer tudok rajtad segíteni. Gyere vissza holnap.")
else
say("Hello! Lefogadom, hogy a Sárkányszem erejéért")
say("jöttél. Ugye? Nagyszerű, akkor helyben vagy. Sok")
say("szerencsét a vadászathoz! Remélem, elég szilánkot")
say("találsz a tíz Sárkánykőhöz!")
pc.setf("dragon_soul", "eye_timestamp", today)
pc.setf("dragon_soul", "eye_left", 10)
set_state(state_farming)
end
end
end
-- deprecated states. so, jump to new state.
state state_1 begin
when login begin
set_state(state_learning)
end
end
state state_2 begin
when login begin
set_state(state_learning)
end
end
state state_3 begin
when login begin
set_state(state_closed_season)
end
end
end
(qc in malloc(): error: allocation failed
Abort (core dumped)
Hilfen Bitte!
|
|
|
04/03/2014, 19:54
|
#9956
|
elite*gold: 0
Join Date: Apr 2014
Posts: 168
Received Thanks: 8
|
Lotto Hilfe
Kann sich das mal einer anschauen Bitte?
Fehler:
WHEN : 20500.chat ("Lottoschein kaufen")
when doesn't have begin-end clause. (say_title)
lotto.quest:4:Error occured on compile lotto.quest
PHP Code:
quest lotto begin
state start begin
when 20500.chat."Lottoschein kaufen"
say_title("Fetter Keyto")
say("Möchtest du einen Lottoschein kaufen?")
say("Er kostet 10.000.000 Yang")
say("")
local s3 = select("Ja klar", "Nein lieber nicht")
if s3 == 1 then
if pc.money<=9999999 then
say_title("Fetter Keyto")
say("Du hast nicht genug Geld")
say("Komm wieder wenn du genug hast")
elseif pc.count_item(30001)==1 then
say_title("Fetter Keyto")
say("Du hast schon ein Lotto Schein")
say("Bitte Warte erst, du Kanst dur Einen haben!")
elseif pc.money>=10000000 and pc.count_item(30001)==0 then
say_title("Fetter Keyto:")
say("Sehr Gut hier hast du einen Lottoschein")
say("")
say_reward("Lottoschein erhalten")
say("")
say("In einer Stunde wirst du erfahren,")
say("ob du etwas gewonnen hast, oder nicht")
pc.change_money(-10000000)
pc.give_item2(30001, 1)
timer("lotto", 60*60)
end
else
say("Okey komm später wieder")
end
end
when lotto.timer with pc.count_item(30001)==1
pc.remove_item(30001, 1)
local lotto = number(1, 200)
if lotto == 1 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 1.000.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 50.000.000 Yang gewonnen")
pc.change_money(1000000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 2 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 500.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 5.000.000 Yang gewonnen")
pc.change_money(500000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 3 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 10.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 1.000.000 Yang gewonnen")
pc.change_money(10000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
else
notice("Tut mir Leid dein Lottoschein war eine Niete")
notice("Du hast leider nichts gewonnen")
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
end
end
end
end
|
|
|
04/03/2014, 20:00
|
#9957
|
elite*gold: 0
Join Date: Sep 2011
Posts: 188
Received Thanks: 99
|
Quote:
Originally Posted by TayzZ.?
Kann sich das mal einer anschauen Bitte?
Fehler:
WHEN : 20500.chat ("Lottoschein kaufen")
when doesn't have begin-end clause. (say_title)
lotto.quest:4:Error occured on compile lotto.quest
PHP Code:
quest lotto begin
state start begin
when 20500.chat."Lottoschein kaufen"
say_title("Fetter Keyto")
say("Möchtest du einen Lottoschein kaufen?")
say("Er kostet 10.000.000 Yang")
say("")
local s3 = select("Ja klar", "Nein lieber nicht")
if s3 == 1 then
if pc.money<=9999999 then
say_title("Fetter Keyto")
say("Du hast nicht genug Geld")
say("Komm wieder wenn du genug hast")
elseif pc.count_item(30001)==1 then
say_title("Fetter Keyto")
say("Du hast schon ein Lotto Schein")
say("Bitte Warte erst, du Kanst dur Einen haben!")
elseif pc.money>=1000000 and pc.count_item(30001)==0 then
say_title("Fetter Keyto:")
say("Sehr Gut hier hast du einen Lottoschein")
say("")
say_reward("Lottoschein erhalten")
say("")
say("In einer Stunde wirst du erfahren,")
say("ob du etwas gewonnen hast, oder nicht")
pc.change_money(-10000000)
pc.give_item2(30001, 1)
timer("lotto", 60*60)
end
else
say("Okey komm später wieder")
end
end
when lotto.timer with pc.count_item(30001)==1 and game.get_event_flag("lotto")==1 begin
pc.remove_item(30001, 1)
local lotto = number(1, 200)
if lotto == 1 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 1.000.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 50.000.000 Yang gewonnen")
pc.change_money(1000000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 2 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 500.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 5.000.000 Yang gewonnen")
pc.change_money(500000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 3 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 10.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 1.000.000 Yang gewonnen")
pc.change_money(10000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
else
notice("Tut mir Leid dein Lottoschein war eine Niete")
notice("Du hast leider nichts gewonnen")
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
end
end
end
end
|
Das
Code:
when 20500.chat."Lottoschein kaufen"
zu dem
Code:
when 20500.chat."Lottoschein kaufen" begin
|
|
|
04/03/2014, 20:23
|
#9958
|
elite*gold: 0
Join Date: Apr 2014
Posts: 168
Received Thanks: 8
|
Danke jetzt kommen keine Fehlermeldungen mehr, aber wenn ich Uritel antippe kommt keine Zeile mit "Lottoschein kaufen". Woran könnte das liegen?
PHP Code:
quest lotto begin
state start begin
when 20011.chat."Lottoschein kaufen" begin
say_title("Fetter Keyto")
say("Möchtest du einen Lottoschein kaufen?")
say("Er kostet 10.000.000 Yang")
say("")
local s3 = select("Ja klar", "Nein lieber nicht")
if s3 == 1 then
if pc.money<=9999999 then
say_title("Fetter Keyto")
say("Du hast nicht genug Geld")
say("Komm wieder wenn du genug hast")
elseif pc.count_item(30001)==1 then
say_title("Fetter Keyto")
say("Du hast schon ein Lotto Schein")
say("Bitte Warte erst, du Kanst dur Einen haben!")
elseif pc.money>=10000000 and pc.count_item(30001)==0 then
say_title("Fetter Keyto:")
say("Sehr Gut hier hast du einen Lottoschein")
say("")
say_reward("Lottoschein erhalten")
say("")
say("In einer Stunde wirst du erfahren,")
say("ob du etwas gewonnen hast, oder nicht")
pc.change_money(-10000000)
pc.give_item2(30001, 1)
timer("lotto", 60*60)
end
else
say("Okey komm später wieder")
end
end
when lotto.timer with pc.count_item(30001)==1
pc.remove_item(30001, 1)
local lotto = number(1, 200)
if lotto == 1 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 1.000.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 50.000.000 Yang gewonnen")
pc.change_money(1000000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 2 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 500.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 5.000.000 Yang gewonnen")
pc.change_money(500000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 3 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 10.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 1.000.000 Yang gewonnen")
pc.change_money(10000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
else
notice("Tut mir Leid dein Lottoschein war eine Niete")
notice("Du hast leider nichts gewonnen")
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
end
end
end
end
|
|
|
04/03/2014, 21:26
|
#9959
|
elite*gold: 0
Join Date: Sep 2011
Posts: 188
Received Thanks: 99
|
Quote:
Originally Posted by TayzZ.?
Danke jetzt kommen keine Fehlermeldungen mehr, aber wenn ich Uritel antippe kommt keine Zeile mit "Lottoschein kaufen". Woran könnte das liegen?
PHP Code:
quest lotto begin
state start begin
when 20011.chat."Lottoschein kaufen" begin
say_title("Fetter Keyto")
say("Möchtest du einen Lottoschein kaufen?")
say("Er kostet 10.000.000 Yang")
say("")
local s3 = select("Ja klar", "Nein lieber nicht")
if s3 == 1 then
if pc.money<=9999999 then
say_title("Fetter Keyto")
say("Du hast nicht genug Geld")
say("Komm wieder wenn du genug hast")
elseif pc.count_item(30001)==1 then
say_title("Fetter Keyto")
say("Du hast schon ein Lotto Schein")
say("Bitte Warte erst, du Kanst dur Einen haben!")
elseif pc.money>=10000000 and pc.count_item(30001)==0 then
say_title("Fetter Keyto:")
say("Sehr Gut hier hast du einen Lottoschein")
say("")
say_reward("Lottoschein erhalten")
say("")
say("In einer Stunde wirst du erfahren,")
say("ob du etwas gewonnen hast, oder nicht")
pc.change_money(-10000000)
pc.give_item2(30001, 1)
timer("lotto", 60*60)
end
else
say("Okey komm später wieder")
end
end
when lotto.timer with pc.count_item(30001)==1
pc.remove_item(30001, 1)
local lotto = number(1, 200)
if lotto == 1 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 1.000.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 50.000.000 Yang gewonnen")
pc.change_money(1000000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 2 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 500.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 5.000.000 Yang gewonnen")
pc.change_money(500000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 3 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 10.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 1.000.000 Yang gewonnen")
pc.change_money(10000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
else
notice("Tut mir Leid dein Lottoschein war eine Niete")
notice("Du hast leider nichts gewonnen")
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
end
end
end
end
|
Probier es einfach mal so:
PHP Code:
quest lotto begin
state start begin
when 20011.chat."Lottoschein kaufen" begin
say_title("Fetter Keyto")
say("Möchtest du einen Lottoschein kaufen?")
say("Er kostet 10.000.000 Yang")
say("")
local s3 = select("Ja klar", "Nein lieber nicht")
if s3 == 1 then
if pc.get_money < 10000000 then
say_title("Fetter Keyto")
say("Du hast nicht genug Geld")
say("Komm wieder wenn du genug hast")
return
elseif pc.count_item(30001)==1 then
say_title("Fetter Keyto")
say("Du hast schon ein Lotto Schein")
say("Bitte warte erst, du kannst nur Einen haben!")
return
elseif pc.get_money>=10000000 and pc.count_item(30001)==0 then
say_title("Fetter Keyto:")
say("Sehr Gut hier hast du einen Lottoschein")
say("")
say_reward("Lottoschein erhalten")
say("")
say("In einer Stunde wirst du erfahren,")
say("ob du etwas gewonnen hast, oder nicht")
pc.change_money(-10000000)
pc.give_item2(30001, 1)
timer("lotto", 60*60)
end
else
say("Okey komm später wieder")
return
end
end
when lotto.timer with pc.count_item(30001)==1
pc.remove_item(30001, 1)
local lotto = number(1, 200)
if lotto == 1 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 1.000.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 50.000.000 Yang gewonnen")
pc.change_money(1000000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 2 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 500.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 5.000.000 Yang gewonnen")
pc.change_money(500000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 3 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 10.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 1.000.000 Yang gewonnen")
pc.change_money(10000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto > 3 then
notice("Tut mir Leid dein Lottoschein war eine Niete")
notice("Du hast leider nichts gewonnen")
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
end
end
end
end
|
|
|
04/04/2014, 06:43
|
#9960
|
elite*gold: 0
Join Date: Mar 2014
Posts: 121
Received Thanks: 14
|
Wenn ich uriel anklicke, Lottoschein kaufen und dann auf Ja klar klicke geht das quest fenster wieder zu, weiter passiert gar nichts und folgender fehler steht serverside in der syserr
Code:
SYSERR: Apr 4 06:41:57 :: RunState: LUA_ERROR: [string "lotto"]:7: attempt to compare function with number
SYSERR: Apr 4 06:41:57 :: WriteRunningStateToSyserr: LUA_ERROR: quest lotto.start click
Quest:
Code:
quest lotto begin
state start begin
when 20011.chat."Lottoschein kaufen" begin
say_title("Uriel")
say("Möchtest du einen Lottoschein kaufen?")
say("Er kostet 1.000.000 Yang")
say("")
local s3 = select("Ja klar", "Nein lieber nicht")
if s3 == 1 then
if pc.get_money < 1000000 then
say_title("Uriel")
say("Du hast nicht genug Geld")
say("Komm wieder wenn du genug hast")
return
elseif pc.count_item(30001)==1 then
say_title("Uriel")
say("Du hast schon ein Lotto Schein")
say("Bitte warte erst, du kannst nur Einen haben!")
return
elseif pc.get_money>=1000000 and pc.count_item(30001)==0 then
say_title("Uriel:")
say("Sehr Gut hier hast du einen Lottoschein")
say("")
say_reward("Lottoschein erhalten")
say("")
say("In einer Stunde kannst du dein Ticket,")
say("einlösen und erfahren, ob du etwas")
say("gewonnen hast, oder nicht")
pc.change_money(-1000000)
pc.give_item2(30001, 1)
pc.setqf("lottoticket", 1)
pc.setqf("lotto_time", get_time() +60*60)
end
else
say("Okey komm später wieder")
return
end
end
when 30001.use begin
local lottoleft = pc.getqf('lotto_time')
if pc.getqf("lottoticket") == 1 then
if get_time() <= pc.getqf("lotto_time") then
syschat("Du kannst deinen Lottoschein erst in '..lottoleft..' Sekunden einlösen!")
elseif get_time() > pc.getqf("lotto_time") then
local lotto = number(1, 200)
if lotto == 1 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 1.000.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 50.000.000 Yang gewonnen")
pc.setqf("lotto_time",0)
pc.delqf("lottoticket")
pc.change_money(1000000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 2 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 500.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 5.000.000 Yang gewonnen")
pc.setqf("lotto_time",0)
pc.delqf("lottoticket")
pc.change_money(500000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto == 3 then
notice("Herzlichen Glückwunsch")
notice("Du hast soeben 10.000.000 Yang gewonnen")
notice_all("".. pc.get_name() .." hat im Lotto 1.000.000 Yang gewonnen")
pc.setqf("lotto_time",0)
pc.delqf("lottoticket")
pc.change_money(10000000)
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
elseif lotto > 3 then
notice("Tut mir Leid dein Lottoschein war eine Niete")
notice("Du hast leider nichts gewonnen")
notice("Du kannst dir nun einen neuen Lottoschein kaufen")
pc.setqf("lotto_time",0)
pc.delqf("lottoticket")
end
end
elseif pc.getqf("lottoticket") == 0 then
syschat("Du kannst kein fremdes Lottoticket einlösen!")
end
end
end
end
|
|
|
All times are GMT +1. The time now is 16:54.
|
|