[SERVICE] Die Questkontrolle

09/06/2013 19:29 Yiv#8956
PHP Code:
quest metin_dropp begin
    state start begin
        when 8001.kill 
or 8002.kill or 8003.kill or 8004.kill or 8005.kill or 8006.kill or 8007.kill or 8008.kill or 8009.kill or 8010.kill or 8011.kill or 8012.kill or 8013.kill or 8014.kill or 8024.kill or 8025.kill or 8026.kill or 8027.kill begin
            
-- FB's    -    2 = Steine
            local drp = {
                [1] = {50401, 50402, 50403, 50404, 50405, 50416, 50417, 50418, 50419, 50420, 50431, 50432, 50433, 50434, 50435, 50446, 50447, 50448, 50449, 50450, 50461, 50462, 50463, 50464, 50465, 50466, 50476, 50477, 50478, 50479, 50480, 50481, 50491, 50492, 50493, 50494, 50495, 50496, 50506, 50507, 50508, 50509, 50510, 50511},
                [2] = {
                    [1] = {28030, 28031, 28032, 28033, 28034, 28035, 28036, 28037, 28038, 28039, 28040, 28041, 28042, 28043},
                    [2] = {28130, 28131, 28132, 28133, 28134, 28135, 28136, 28137, 28138, 28139, 28140, 28141, 28142, 28143},
                    [3] = {28230, 28231, 28232, 28233, 28234, 28235, 28236, 28237, 28238, 28239, 28240, 28241, 28242, 28243},
                    [4] = {28330, 28331, 28332, 28333, 28334, 28335, 28336, 28337, 28338, 28339, 28340, 28341, 28342, 28343},
                    [5] = {28430, 28431, 28432, 28433, 28434, 28435, 28436, 28437, 28438, 28439, 28440, 28441, 28442, 28443}
                    [6] = {28030, 28031, 28032, 28033, 28034, 28035, 28036, 28037, 28038, 28039, 28040, 28041, 28042, 28043},
                    [7] = {28130, 28131, 28132, 28133, 28134, 28135, 28136, 28137, 28138, 28139, 28140, 28141, 28142, 28143},
                    [8] = {28230, 28231, 28232, 28233, 28234, 28235, 28236, 28237, 28238, 28239, 28240, 28241, 28242, 28243},
                    [9] = {28330, 28331, 28332, 28333, 28334, 28335, 28336, 28337, 28338, 28339, 28340, 28341, 28342, 28343},
                    [10] = {28030, 28031, 28032, 28033, 28034, 28035, 28036, 28037, 28038, 28039, 28040, 28041, 28042, 28043},
                    [11] = {28130, 28131, 28132, 28133, 28134, 28135, 28136, 28137, 28138, 28139, 28140, 28141, 28142, 28143},
                    [12] = {28230, 28231, 28232, 28233, 28234, 28235, 28236, 28237, 28238, 28239, 28240, 28241, 28242, 28243},
                    [13] = {28030, 28031, 28032, 28033, 28034, 28035, 28036, 28037, 28038, 28039, 28040, 28041, 28042, 28043},
                    [14] = {28130, 28131, 28132, 28133, 28134, 28135, 28136, 28137, 28138, 28139, 28140, 28141, 28142, 28143},
                    [15] = {28030, 28031, 28032, 28033, 28034, 28035, 28036, 28037, 28038, 28039, 28040, 28041, 28042, 28043},
                },
            }
            local tab = number(1, 2)
            local rnd = number(1, table.getn(drp[tab]))
            if tab == 1 then
                game.drop_item_with_ownership(drp[tab][rnd], 1)
            else
                local rnd2 = number(1, table.getn(drp[tab][rnd]))
                game.drop_item_with_ownership(drp[tab][rnd][rnd2], 1)
            end
        end
    end
end 
Fehler
Code:
metin_dropp.quest:33:syntax error : [string "start"]:9: `}' expected (to close `{' at line 3) near `['
Error occured on compile metin_dropp.quest
Wer kann helfen?

MfG
09/06/2013 21:26 Noa_#8957
schau mal hier,
PHP Code:
[5] = {2843028431284322843328434284352843628437284382843928440284412844228443
dort hast du am ende ein komma vergessen
09/06/2013 23:41 Yiv#8958
Problem1:

Und wenn ich schon dabei bin...
Problem2:

MfG
09/07/2013 08:45 pyccak96#8959
Quote:
Originally Posted by pyccak96 View Post
Tag,
Hab ein Problem mit meiner Warpring Quest..
Alles funktioniert super außer dt...

Das ist verwechselt:
Wenn ich auf Dämonenturm klicke, komme ich zurück zur 1. Auswahl,
Wenn ich auf Zurück klicke, werde ich zum Dämonenturm getelt.

Kann mir jemand dabei helfen? :D



Danke im Vorraus. :D
Problem besteht weiterhin. :o
Wäre noch sehr dankbar, wenn man die neuen 4 Beta Maps einbaut.
Kordis:
Nephritbucht: 1049600 1510400
Kap des Drachenfeuers: 1024000 1664000
Gautamakliff: 1177600 1664000
Donnerberge: 1126400 1510400
09/07/2013 18:24 Noa_#8960
@DaJuBi zu deinem problem2 wenn du schon 0er index verwendest, brauchst du kein +1
09/08/2013 13:32 Yiv#8961
Quote:
Originally Posted by ΞΠ∪Μ View Post
@DaJuBi zu deinem problem2 wenn du schon 0er index verwendest, brauchst du kein +1
Habe ich bereits geändert, aber warum der Fehler -.-
09/08/2013 15:45 Metinsoul#8962
Es kommt immer dieser Error:

[Only registered and activated users can see links. Click Here To Register...]

Bei dieser Quest:

Quote:
quest achievement_system begin
state start begin
when login or levelup begin
----Alle Level Achievements müssen in die Liste eingetragen werden!--------------
----Die Level Achievemt Anzahl muss danach bearbeitet werden!--------------------
--------------------------- Level --- Points ------------------------------------
local LevelAchievements = { { 5, 10},
{ 30, 10},
{ 50, 10},
{ 60, 10},
{ 70, 10},
{ 80, 10},
{ 90, 10},
{100, 10},
{110, 10},
{120, 10},
{130, 10},
{140, 10},
{150, 10},
{160, 10}
}
--------------------------- Level --- Points ------------------------------------
--Wie viel Level Achievements insgesamt: ----------------------------------------
local LevelAchievementsCount = 14
---------------------------------------------------------------------------------
local CurrentLevel = pc.get_level()
local checkAchievments = 0
while LevelAchievementsCount > checkAchievments do
checkAchievments = checkAchievments + 1
local level = LevelAchievements[checkAchievments][1]
if level == CurrentLevel then
local check = pc.getqf("LevelAchievements_"..level.."")
if check == 0 then
local points = pc.getqf("AchievementPoints")
local new_points = LevelAchievements[checkAchievments][2] + points
pc.setqf("LevelAchievements_"..level.."", 1)
pc.setqf("AchievementPoints", new_points)
local Achievement = "Level "..level.." ereicht"
SendAchievement(Achievement, new_points)
return
end
end
end
end
when kill begin
----Alle Kill Achievements müssen in die Liste eingetragen werden!---------------
----Die Kill Achievemt Anzahl muss danach bearbeitet werden!---------------------
---------------------------- MobId -- Count - Points ----- MobName --------------
local KillAchievements = { { 691, 1, 10, "Oberork"},
{ 1091, 1, 10, "Daemonenkoenig"},
{ 1092, 1, 10, "Stolzer Daemon"}
{ 1093, 1, 20, "Sensenmann"}
{ 1191, 1, 10, "Eishexe"}
{ 2191, 1, 10, "Kroete"}
{ 2206, 1, 10, "Flammenking"}
{ 2493, 1, 10, "Wasserdrache"}
{ 2599, 1, 10, "Diablo"}
{ 2598, 1, 10, "Azrael"}
}
---------------------------- MobId -- Count - Points ----- MobName --------------
--Wie viel Kill Achievements insgesamt: ----------------------------------------
local KillAchievementsCount = 10
---------------------------------------------------------------------------------
local CurrentKillID = npc.race
local checkAchievments = 0
while KillAchievementsCount > checkAchievments do
checkAchievments = checkAchievments + 1
local id = KillAchievements[checkAchievments][1]
if id == CurrentKillID then
local check = pc.getqf("KillAchievements_"..id.."")
if check < KillAchievements[checkAchievments][2] then
check = check + 1
if check == KillAchievements[checkAchievments][2] then
local points = pc.getqf("AchievementPoints")
local new_points = KillAchievements[checkAchievments][3] + points
pc.setqf("AchievementPoints", new_points)
pc.setqf("KillAchievements_"..id.."", KillAchievements[checkAchievments][2])
local Achievement = KillAchievements[checkAchievments][4].." getötet"
SendAchievement(Achievement, new_points, check)
return
else
pc.setqf("KillAchievements_"..id.."", check)
end
end
end
end
end
end
end


Bitte um hilfe!

Es kommt immer dieser Error:

[Only registered and activated users can see links. Click Here To Register...]

Bei dieser Quest:

Quote:
quest achievement_system begin
state start begin
when login or levelup begin
----Alle Level Achievements müssen in die Liste eingetragen werden!--------------
----Die Level Achievemt Anzahl muss danach bearbeitet werden!--------------------
--------------------------- Level --- Points ------------------------------------
local LevelAchievements = { { 5, 10},
{ 30, 10},
{ 50, 10},
{ 60, 10},
{ 70, 10},
{ 80, 10},
{ 90, 10},
{100, 10},
{110, 10},
{120, 10},
{130, 10},
{140, 10},
{150, 10},
{160, 10}
}
--------------------------- Level --- Points ------------------------------------
--Wie viel Level Achievements insgesamt: ----------------------------------------
local LevelAchievementsCount = 14
---------------------------------------------------------------------------------
local CurrentLevel = pc.get_level()
local checkAchievments = 0
while LevelAchievementsCount > checkAchievments do
checkAchievments = checkAchievments + 1
local level = LevelAchievements[checkAchievments][1]
if level == CurrentLevel then
local check = pc.getqf("LevelAchievements_"..level.."")
if check == 0 then
local points = pc.getqf("AchievementPoints")
local new_points = LevelAchievements[checkAchievments][2] + points
pc.setqf("LevelAchievements_"..level.."", 1)
pc.setqf("AchievementPoints", new_points)
local Achievement = "Level "..level.." ereicht"
SendAchievement(Achievement, new_points)
return
end
end
end
end
when kill begin
----Alle Kill Achievements müssen in die Liste eingetragen werden!---------------
----Die Kill Achievemt Anzahl muss danach bearbeitet werden!---------------------
---------------------------- MobId -- Count - Points ----- MobName --------------
local KillAchievements = { { 691, 1, 10, "Oberork"},
{ 1091, 1, 10, "Daemonenkoenig"},
{ 1092, 1, 10, "Stolzer Daemon"}
{ 1093, 1, 20, "Sensenmann"}
{ 1191, 1, 10, "Eishexe"}
{ 2191, 1, 10, "Kroete"}
{ 2206, 1, 10, "Flammenking"}
{ 2493, 1, 10, "Wasserdrache"}
{ 2599, 1, 10, "Diablo"}
{ 2598, 1, 10, "Azrael"}
}
---------------------------- MobId -- Count - Points ----- MobName --------------
--Wie viel Kill Achievements insgesamt: ----------------------------------------
local KillAchievementsCount = 10
---------------------------------------------------------------------------------
local CurrentKillID = npc.race
local checkAchievments = 0
while KillAchievementsCount > checkAchievments do
checkAchievments = checkAchievments + 1
local id = KillAchievements[checkAchievments][1]
if id == CurrentKillID then
local check = pc.getqf("KillAchievements_"..id.."")
if check < KillAchievements[checkAchievments][2] then
check = check + 1
if check == KillAchievements[checkAchievments][2] then
local points = pc.getqf("AchievementPoints")
local new_points = KillAchievements[checkAchievments][3] + points
pc.setqf("AchievementPoints", new_points)
pc.setqf("KillAchievements_"..id.."", KillAchievements[checkAchievments][2])
local Achievement = KillAchievements[checkAchievments][4].." getötet"
SendAchievement(Achievement, new_points, check)
return
else
pc.setqf("KillAchievements_"..id.."", check)
end
end
end
end
end
end
end


Bitte um hilfe!
09/08/2013 16:07 Noa_#8963
Quote:
Originally Posted by DaJuBi View Post
Habe ich bereits geändert, aber warum der Fehler -.-
du hast auch hier ein end vergessen
PHP Code:
for 1table.getn(items[a][4])+1do 
09/08/2013 17:15 Yiv#8964
Danke NuM, dass hat mir geholfen und den Fehler behoben :D

Jetzt habe ich das Problem, dass nur die Items der 1. for-Schleife gegeben werden...

Quest:
PHP Code:
quest lehrlingstruhe begin
    state start begin
        when 50187.
use or 50188.use or 50189.use or 50190.use or 50191.use or 50192.use or 50193.use or 50194.use or 50195.use begin
            local items 
= {
                [
50187] = {
                    [
0] = {
                        [
1] = {101},
                        [
2] = {112001},
                        [
3] = {122001},
                    },
                    [
1] = {},
                    [
2] = {},
                    [
3] = {},
                    [
4] = {
                        [
1] = {130001},
                        [
2] = {140001},
                        [
3] = {150001},
                        [
4] = {160001},
                        [
5] = {170001},
                        [
6] = {2700160},
                        [
7] = {2700460},
                        [
8] = {2710010},
                        [
9] = {2710525},
                    },
                    [
5] = {1},
                },
            }
            
local a item.get_vnum()
            if 
pc.get_level() < items[a][5][1then
                syschat
("Dein Level ist zu niedrig.")
                return
            
end
            local b 
pc.get_job()
            for 
0table.getn(items[a][b]), do
                
pc.give_item2(items[a][b][i][1], items[a][b][i][2])
            
end
            
for 0table.getn(items[a][4]), do
                
pc.give_item2(items[a][4][j][1], items[a][4][j][2])
            
end
            local next 
1
            pc
.remove_item(a1)
            
pc.give_item2(next1)
        
end
    end
end 
MfG
09/08/2013 18:15 Noa_#8965
da steht aber unter der for schleife das
PHP Code:
local next 
dh. das end muss nach ganz unten hin, also
PHP Code:
            for 0table.getn(items[a][4]), do
                
pc.give_item2(items[a][4][j][1], items[a][4][j][2])
                
local next 1
                pc
.remove_item(a1)
                
pc.give_item2(next1)
            
end 
09/08/2013 18:31 Yiv#8966
:D Das ist Absicht ;) Das ist eine Lehrlingstruhen Quest inzw. nur für die erste. Da die VNum der Truhen immer um 1 steigt, lasse ich einfach die aktuelle VNum mit 1 addieren (local next = a + 1) und diese dann geben (pc.give_item2 (next, 1)) und die aktuelle Truhe removen (pc.remove_item (a, 1)) ).
Mein Problem ist, dass die 1. for-Schleife für die Rassenspeziefischen Items sein soll und die 2. für alle. Es wird jedoch nur die 1. ausgeführt.

MfG

P.S: Im Allgemeinen kann ich questen, so ist es nicht. Aber zurzeit stehe ich unter Druck und schreibe rund 20-50 Quests pro Tag (ca. 2-5 Stunden) und schnell und Fehler oder langsam und sauber. Da ich aber so unter Zeitdruck stehe, ziehe ich zurzeit meistens epvp zu Rate.
09/08/2013 22:23 R3laXFrEaK#8967
Also GMs können sich problem los auf die map porten aber user werden sofort in ihr reich geportet -.-

09/08/2013 23:06 Chritation#8968
quest drop8027 start
state start begin
when 8060.kill begin
game.drop_item_with_ownership(299)
game.drop_item_with_ownership(189)
end
end

Ich will einfach das wenn man 8060 killt, dass man verschiedene Items bekommt.
Ohne irgendwelche % Chancen.
09/09/2013 04:58 Noa_#8969
PHP Code:
        function IsFinish()
            if 
pc.getqf('finish_1')==1 then
                
return true
            
else
                return 
false
            end
        end
        when 20006.chat
.'Quest für neue Map' with not q_karte.IsFinish() begin 
wenn ich die quest abgeschlossen habe erscheint dieser Dialog bei Mirine, wenn ich ein 2tes mal draufdrücke ist es wieder weg, beim 3ten mal ist es erscheint es wieder, beim 4ten mal wieder weg usw.
Kann mir jmd sagen wie ich das umgehen kann? es soll nicht mehr angezeigt werden.
weil es scheint ein bug oder ähnliches zu sein
mfg Noa
09/09/2013 08:28 .Inya#8970
Poste einfach mal den when abschnitt auch komplett :)