Hey,
ich hatte mal ne Quest geschrieben die ich jetzt wieder gesucht habe. Ja es gibt tausende Truhenquests und ich hab keine ahnung ob meine wie sie funktionieren schonmal released worden sind.
Es sind 2 verschiedene Quests, zum einen eine Büchertruhen Quest, habe sie fürs Release etwas erweitert da manche nicht so gut mit .lua können, gerade villeicht für anfänger interessant.
Und dann noch eine Item-Truhen Quest. Die ist eher für Itemshop-Truhen gedacht, kann man natürlich nutzen wie man will.
Büchertruhen-Quest:
Sie funktioniert automatisch. Man hat 3 optionen zur auswahl, denke die beschreibung hinter den Optionen ist aussagekräftig genug
- quest chest_special_book begin
- state start begin
- function settings()
- return
- {
- ["book_stack_count"] = 10 , -- Stackmenge
- ["book_run_count"] = 10 , -- Wie oft er Stacks pro Truhe gibt
- ["flag"] = 2 , -- Skillgruppe bezogen = 1 / Klasse bezogen = 2 / komplett Random = 3
- }
- end
- when CHEST_VNUM.use or CHEST_VNUM.use begin
- local settings = chest_special_book.settings()
- local book_table =
- {
- [0] = {
- {50401, 50402, 50403, 50404, 50405}, -- Körper-Krieger
- {50416, 50417, 50418, 50419, 50420}, -- Mental-Krieger
- {50401, 50402, 50403, 50404, 50405, 50416, 50417, 50418, 50419, 50420}, -- Krieger-Komplett
- },
- [1] = {
- {50431, 50432, 50433, 50434, 50435}, -- Nahkampf-Ninja
- {50446, 50447, 50448, 50449, 50450}, -- Fernkampf-Ninja
- {50431, 50432, 50433, 50434, 50435, 50446, 50447, 50448, 50449, 50450}, -- Ninja-Komplett
- },
- [2] = {
- {50461, 50462, 50463, 50464, 50465, 50466}, -- Waffen-Sura
- {50476, 50477, 50478, 50479, 50480, 50481}, -- Magie-Sura
- {50461, 50462, 50463, 50464, 50465, 50466, 50476, 50477, 50478, 50479, 50480, 50481}, -- Sura-Komplett
- },
- [3] = {
- {50491, 50492, 50493, 50494, 50495, 50496}, -- Drachen-Schamane
- {50506, 50507, 50508, 50509, 50510, 50511}, -- Heilungs-Schamane
- {50491, 50492, 50493, 50494, 50495, 50496, 50506, 50507, 50508, 50509, 50510, 50511}, -- Schamane-Komplett
- },
- [99] = {
- -- Alle Bücher
- 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,
- },
- }
- local loop_book = 1
- local table_counts
- if settings.flag == 1 then
- table_counts = table.getn(book_table[pc.get_job()][pc.get_skill_group()])
- elseif settings.flag == 2 then
- table_counts = table.getn(book_table[pc.get_job()][3])
- elseif settings.flag == 3 then
- table_counts = table.getn(book_table[99])
- end
- while loop_book <= settings.book_run_count do
- local rnd = number(1, table_counts)
- if settings.flag == 1 then
- pc.give_item2(book_table[pc.get_job()][pc.get_skill_group()][rnd], settings.book_stack_count)
- elseif settings.flag == 2 then
- pc.give_item2(book_table[pc.get_job()][3][rnd], settings.book_stack_count)
- elseif settings.flag == 3 then
- pc.give_item2(book_table[99][rnd], settings.book_stack_count)
- end
- loop_book = loop_book + 1
- end
- item.remove()
- end
- end
- end
Itemtruhen-Quest:
einfach zu händeln, auch vollautomatische Quest. Man muss lediglich oben im when XXX.use die item_vnums eintragen immer gefolgt von einem or wenn es mehrere sein sollen und eben in der local item_table die Truhenvnums und deren Drop reinschreiben wie in der special_item.txt.
Bei dieser Quest erhält man ALLE Items die dort aufgezählt werden in der Menge wie sie dort stehen.
Beim anklicken sieht das ganze dann so aus (vollautomatisch):
Bitte melden Sie sich an, um dieses Bild zu sehen.
Die Fenstergröße passt sich zudem auch automatisch an je mehr Items man in der Truhe hat. Bis zu 20 Items sieht noch ganz ok aus, alles was drüber ist wirds hässlich.
- quest chest_special_item begin
- state start begin
- when CHEST_VNUM.use or CHEST_VNUM.use begin
- local item_table =
- { -- XX Truhe
- [CHEST_VNUM] = {
- {72001, 1}, -- Erfahrungsring (1h)
- {72004, 1}, -- Diebeshandschuh (1h)
- {72726, 1}, -- Elixier der Sonne (S)
- {72730, 1}, -- Elixier des Mondes (S)
- {71151, 30}, -- Grüner Zauber
- {71152, 10}, -- Grüne Stärke
- {70024, 5}, -- Segenskugel
- },
- -- XX Truhe
- [CHEST_VNUM] = {
- {72001, 1}, -- Erfahrungsring (1h)
- {72004, 1}, -- Diebeshandschuh (1h)
- {72726, 1}, -- Elixier der Sonne (S)
- {72730, 1}, -- Elixier des Mondes (S)
- {71151, 50}, -- Grüner Zauber
- {71152, 20}, -- Grüne Stärke
- {70024, 10}, -- Segenskugel
- {71044, 5}, -- Kritischer Kampf
- {71045, 5}, -- Durchbohrender Kampf
- },
- }
- local loop_check = 1
- local loop_reward = 1
- local item_count = table.getn(item_table[item.get_vnum()])
- if item_count <= 7 then -- 7 oder weniger
- say_size(350, 340)
- elseif item_count <= 10 then -- 10 oder weniger
- say_size(350, 390)
- elseif item_count <= 13 then -- 13 oder weniger
- say_size(350, 440)
- elseif item_count <= 16 then -- 16 oder weniger
- say_size(350, 490)
- elseif item_count <= 19 then -- 19 oder weniger
- say_size(350, 550)
- else -- alles ab 20
- say_size(350, 620)
- end
- say_item_vnum(item.get_vnum())
- while loop_check <= item_count do
- say("• "..item_table[item.get_vnum()][loop_check][2].."x "..item_name(item_table[item.get_vnum()][loop_check][1]))
- loop_check = loop_check + 1
- end
- say("")
- say_reward("Möchtest du die Truhe jetzt öffnen?")
- say("")
- local sel = select("Öffnen", "Abbrechen")
- if sel == 1 then
- while loop_reward <= item_count do
- pc.give_item2(item_table[item.get_vnum()][loop_reward][1], item_table[item.get_vnum()][loop_reward][2])
- loop_reward = loop_reward + 1
- end
- item.remove()
- else
- return
- end
- end
- end
- end
Nochmal anständig als anhang zum Download für die Tabs und viel spaß damit!
P.S: Releases gehen auch ohne Zwangs-Like-Funktion