|
You last visited: Today at 13:01
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
03/02/2015, 22:18
|
#11131
|
elite*gold: 0
Join Date: Jan 2013
Posts: 1,818
Received Thanks: 336
|
Quote:
Originally Posted by °Ace°
Hey, kann mir einer die Quest so umschreiben, dass man fast genau 20 Minuten für die Schlüsseln braucht. Denn wenn man früher alle Schlüssel abgibt und den Dämonenkönig killt, wird man wieder eine Ebene nach unten gestuft.
PHP Code:
quest deviltower_zone begin
state start begin
when login begin
if pc.get_map_index() == 66 then
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() > 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end
when 20348.click begin
if pc.get_level() < 30 then
say_title("Wächter des Dämonenturmes")
say("")
say("Du hast noch nicht genügend Kampferfahrung")
say("gesammelt!")
say("")
say_reward("Komme wieder wenn du Level 30 erreicht hast.")
return
end
if pc.get_level() > 29 then
say_title("Wächter des Dämonenturmes")
say("")
say("Der Dämonenturm ist die Heimat von schrecklichen")
say("Kreaturen, die nichts lieber tun, als dich zu töten.")
say("Die Boni 'Stark gegen Untote' und 'Pfeilwiderstand'")
say("könnten dir sehr hilfreich sein!")
say("")
say_reward("Ab Level 75 hast du die Möglichkeit den Dämonenturm")
say_reward("mit einer Gruppe zu betreten.")
local betreten = select("Dämonenturm normal betreten", "Dämonenturm als Gruppe betreten", "Abbrechen")
if betreten == 1 then
pc.warp(216500, 727000)
end
if betreten == 2 and pc.get_level() > 74 then
if party.is_party() then
say_title("Wächter des Dämonenturmes")
say("")
say("Bitte achte darauf, dass sich alle Gruppenmitglieder")
say("im Tempel befinden!")
say("")
say_reward("Möchtest du den Dungeon wirklich mit deiner Gruppe")
say_reward("betreten?")
local gruppe_betreten = select("Dämonenturm als Gruppe betreten", "Abbrechen")
if gruppe_betreten == 1 then
d.join(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.spawn_mob(8015, 120, 615)
end
if gruppe_betreten == 2 then
return
end
end
if not party.is_party() then
say_title("Wächter des Dämonenturmes")
say("")
say("Du kannst diese Option nur ausführen wenn du dich")
say("in einer Gruppe befindest.")
say("")
say_reward("Du befindest dich in keiner Gruppe.")
return
end
end
if betreten == 2 and pc.get_level() < 75 then
say_title("Wächter des Dämonenturmes")
say("")
say_reward("Du kannst diese Option erst mit Level 75 nutzen.")
return
end
if betreten == 3 then
return
end
end
end
when 8015.kill begin
timer("zeit_bis_port", 10)
d.notice("Ihr habt den Metin der Härte zerstört!")
d.notice("In 10 Sekunden werdet ihr in die erste Ebene teleportiert.")
end
when zeit_bis_port.timer begin
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
--d.set_exit_all_at_eliminate(6)
--d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
d.check_eliminated()
--d.exit_all()
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- positions[i][1] = positions[i][1] * 100
-- positions[i][2] = positions[i][2] * 100
-- end
return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("level", 4)
-- ¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY
--d.regen_file("data/dungeon/deviltower4_regen.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
d.notice("Findet den richtigen Metinstein und zerstört ihn.");
d.notice("Die falschen Metinsteine werden verschwinden!");
d.notice("Ihr habt 15 Minuten zeit!");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 10 Minuten")
server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 5 Minuten")
server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
end
when devil_stone4_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Der falsche Metinstein ist verschwunden..");
end
end
end
else
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Ihr habt den richtigen Metinstein zerstört.");
d.notice("Ihr werdet nun in die nächste Ebene teleportiert")
clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
clear_server_timer('devil_stone4_fail', get_server_timer_arg())
end
else
server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
end
end
when devil_stone4_stop_timer.server_timer begin
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
when devil_stone4_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("level", 5)
d.setf("stone_count", 5)
d.notice("Du bist nun in der 5. Ebene")
d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.")
d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
d.spawn_mob(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
end
end
when devil_stone5_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 15 Minuten")
server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 10 Minuten")
server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail3.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 5 Minuten")
server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
end
end
--when devil_stone4.kill begin
--d.setf("level", 5)
--d.setf("stone_count", 4)
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
--d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 45
--if is_test_server() then
--KILL_COUNT_FOR_DROP_KEY = 1
--end
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
-- bla bla 3
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when devil_stone5.take with item.vnum == 50084 begin
npc.purge()
item.remove()
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.setf("level", 6)
d.clear_regen()
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun")
d.notice("in die 6. Ebene teleportiert.")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
clear_server_timer('devil_stone5_fail', get_server_timer_arg())
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln")
end
end
when devil_stone6.kill begin
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
timer("stolzerking_killed", 5)
end
when stolzerking_killed.timer begin
cmdchat("CMD1")
d.spawn_mob(9012, 395, 200)
d.spawn_mob(20074, 392, 209)
d.spawn_mob(20075, 405, 209)
d.spawn_mob(20076, 399, 209)
d.spawn_mob(9003, 402, 200)
d.setqf("can_refine", 1)
d.notice("Du hast den Stolzen Dämonenkönig getötet und damit den 1. Teil des Dungeons abgeschlossen.")
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
d.notice("Falls du für den 2. Teil des Dungeons etwas benötigst kannst du es bei der Gemischtwarenhändlerin kaufen.")
d.notice("Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
timer("zeit_zum_uppen", 110)
end
when zeit_zum_uppen.timer begin
d.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
timer("zeit_bis_mordesebene", 10)
end
when zeit_bis_mordesebene.timer begin
d.clear_regen()
d.spawn_mob(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+638)
end
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local cont = d.getf("7_stone_kill") + 1
d.setf("7_stone_kill", cont)
if cont >= 4 then
d.setf("7_stone_kill", 0)
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
end
end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(30300, 1)
end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then
-- bla bla 7
game.drop_item(30302, 1)
d.clear_regen()
else
-- bla bla 8
game.drop_item(30301, 1)
end
end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- bla bla 9
say_title("Karte der Zin-Grotte")
say("")
say("Herzlichen Glückwunsch! Du hast die richtige Karte")
say("gefunden.")
say("")
say_reward("Du wirst jetzt in die nächste Ebene teleportiert.")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)-- bla bla 11
pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local pct1 = number(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- bla bla 12
game.drop_item(30304, 1)
else
-- bla bla 13
game.drop_item(30304, 1)
end
else
return
end
end
when 20366.take with item.vnum == 30304 begin
-- bla bla 14
npc.purge()
item.remove()
d.kill_all()
timer("devil_jump_9", 6)
end
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower9_regen.txt")
end
when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
timer("sensi_killed", 5)
end
when sensi_killed.timer begin
cmdchat("CMD1")
d.kill_all()
d.spawn_mob(9012, 618, 187)
d.spawn_mob(20074, 611, 179)
d.spawn_mob(20075, 620, 170)
d.spawn_mob(20076, 628, 179)
d.spawn_mob(9003, 621, 187)
d.setqf("can_refine", 1)
d.notice("Du hast den Sensenmann getötet und damit den 2. Teil des Dungeons abgeschlossen.")
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
d.notice("Falls du den Dungeon fortführen möchtest, kannst du dir bei der Gemischtwarenhändlerin")
d.notice("erneut Tränke kaufen. Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
timer("zeit_nach_sensi", 110)
end
when zeit_nach_sensi.timer begin
d.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
timer("zeit_bis_gemeinerking", 10)
end
when zeit_bis_gemeinerking.timer begin
d.jump_all(2048+590, 6656+155)
d.kill_all()
d.spawn_mob(1094, 620, 170)
d.notice("Der Gemeine Dämonenkönig treibt hier sein Unwesen.")
d.notice("Töte ihn, um auf die nächste Ebene zu gelangen.")
end
when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
timer("zeit_bis_bt", 10)
d.notice("Du hast den Gemeinen Dämonenkönig getötet.")
d.notice("In 10 Sekunden wirst du auf die letzte Ebene teleportiert.")
end
when zeit_bis_bt.timer begin
d.jump_all(2048+590, 6656+155)
d.kill_all()
d.spawn_mob(1095, 620, 170)
d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.")
d.notice("Töte den Blauen Tod und du wirst reich belohnt!")
end
when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
cmdchat("CMD1")
d.kill_all()
d.spawn_mob(9012, 618, 187)
d.spawn_mob(20074, 611, 179)
d.spawn_mob(20075, 620, 170)
d.spawn_mob(20076, 628, 179)
d.spawn_mob(9003, 621, 187)
d.setqf("can_refine", 1)
d.notice("Du hast den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
d.notice("Herzlichen Glückwunsch!")
d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!")
notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
end
end
end
|
#help
|
|
|
03/02/2015, 22:22
|
#11132
|
elite*gold: 0
Join Date: Jun 2013
Posts: 70
Received Thanks: 12
|
Die Quest spuckt immer ein fehler aus
Erorror load thr page
|
|
|
03/03/2015, 01:17
|
#11133
|
elite*gold: 30
Join Date: Feb 2015
Posts: 362
Received Thanks: 58
|
PHP Code:
quest horse_guard begin state start begin when 20349.chat."Millitär-Pferd kaufen." with pc.get_level() >= 30 and horse.get_level() < 21 begin say_title("Stallbursche") say("Hallo ".. pc.get_name() ..".") say("") say_reward("Möchtest du für 1.000 Yang ein") say_reward("neues Militärpferd kaufen?") local b=select("Kaufen", "Nicht Kaufen") if 1==b then if pc.money>=1000en pc.changemoney(-1000) horse.set_level("21") pc.give_item2("50053", 1) else say("Du hast nicht genug Yang.") end end end when 20349.chat."Reitshop" begin npc.open_shop(17) say("Hier findest du alle Items für ein Pferd.") end when 20349.chat."Information" begin local s=number(1, 7) if 1>=s then -- 14.29% (1/7) say("Füttere dein Pferd") say("regelmässig sonst") say("stirbt es.") elseif 2>=s then -- 14.29% (1/7) say("Das Anfängerpferd") say("ist sehr schnell erschöpft.") say("Bleibe nicht auf seinem Rücken stehen.") elseif 3>=s then -- 14.29% (1/7) say("Um dein Pferd zu verbessern") say("benötigst du 1kk Yang.") say("Bringe das Yang zu mir") say("und ich werde dein Pferd steigern.") elseif 4>=s then -- 14.29% (1/7) say("Wenn dein Pferd gestorben") say("ist gibt es mehrere") say("Kräuter von den") say("Affenkönigen um") say("sie Wiederzubeleben.") elseif 5>=s then -- 14.29% (1/7) say("Es gibt 9 verschiedene") say("Pferde Aussehen.") say("Ohne Gilde, mit Gilde und als Leader.") elseif 6>=s then -- 14.29% (1/7) say("Das Anfängerpferd") say("isst gerne Heu.") say("Das Kampfpferd") say("isst gerne Karotten.") say("Das Militärpferd") say("isst gerne Roten Ginseng.") elseif 7>=s then -- 14.29% (1/7) say("Lese Handbuch Pferde Zähmen") say("um dein Pferd schneller zu rufen.") end end end state __COMPLETE__ begin when enter begin q.done() end end end
Was daran fail kommt immer das
da bild von putty
http://prntscr.com/6c02kh
Quote:
Originally Posted by °Ace°
#help
|
Da gibt es zwar auf semtlichen seiten aber poste es dir noch mal gerne
PHP Code:
quest deviltower_zone begin
state start begin
when login begin
if pc.get_map_index() == 66 then
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
say_title("Wächter des Dämonturmes")
if pc . get_level ( ) < 40 then
say("Du hast noch nicht genügend Erfahrung gesammelt.")
say("Komme wieder, wenn du Level 40 bist!")
return
end
say("Möchtest du den Dämonenturm betreten?")
local s = select ("Betreten", "Abbrechen")
if s == 1 then
pc.warp (216500, 727000)
end
end
when devil_stone1.kill begin
timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
local mapto7= pc.count_item(30302) -- Die Karte der Zin Grotte wurde aus deinem Inventar entfernt
pc.remove_item(30302,mapto7)
local boxto7= pc.count_item(30300) -- Die Unbekannte Alte Kiste wurde aus deinem Inventar entfernt
pc.remove_item(30300,boxto7)
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
--d.set_exit_all_at_eliminate(6)
--d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
d.check_eliminated()
--d.exit_all()
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- positions[i][1] = positions[i][1] * 100
-- positions[i][2] = positions[i][2] * 100
-- end
return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("level", 4)
-- ¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY
--d.regen_file("data/dungeon/deviltower4_regen.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
d.notice("Findet den richtigen Metinstein und zerstört ihn.");
d.notice("Die falschen Metinsteine werden verschwinden!");
d.notice("Ihr habt 15 Minuten zeit!");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 10 Minuten")
server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 5 Minuten")
server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
end
when devil_stone4_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Der falsche Metinstein ist verschwunden..");
end
end
end
else
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Ihr habt den richtigen Metinstein zerstört.");
d.notice("Ihr werdet nun in die nächste Etage teleportiert")
clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
clear_server_timer('devil_stone4_fail', get_server_timer_arg())
end
else
server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
end
end
when devil_stone4_stop_timer.server_timer begin
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
when devil_stone4_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("level", 5)
d.setf("stone_count", 5)
d.notice("Du bist nun in der 5. Ebene")
d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.")
d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
-- bla bla
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
-- bla bla 2
d.spawn_mob(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
end
end
when devil_stone5_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 15 Minuten")
server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 10 Minuten")
server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail3.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Verbleibende Zeit: 5 Minuten")
server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
end
end
--when devil_stone4.kill begin
--d.setf("level", 5)
--d.setf("stone_count", 4)
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
--d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 50
--if is_test_server() then
--KILL_COUNT_FOR_DROP_KEY = 1
--end
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
-- bla bla 3
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when devil_stone5.take with item.vnum == 50084 begin
npc.purge()
item.remove()
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.setf("level", 6)
d.clear_regen()
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun")
d.notice("in die 6. Ebene teleportiert.")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
clear_server_timer('devil_stone5_fail', get_server_timer_arg())
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln")
end
end
when devil_stone6.kill begin
-- bla bla 4
-- bla bla 5
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end
--------------------------------------
-- bla bla 6
--------------------------------------
when 20074.chat."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20074).."")
say("Ihr möchtet in die 7.Etage?")
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
say("Aber voher muss ich euch noch prüfen..")
say("Mal sehen..")
wait()
if pc.level >=75 then
say("Ich erlaube euch weiterzugehen!")
say("Viel Glück und passt auf euch auf da oben!")
timer("devil_jump_7", 6)
return
end
say("Betreten der 7.Etage nicht erlaubt!")
say("Ihr seid nicht qualifiziert genug!")
say("Erreicht Level 75 oder höher,")
say("damit ihr eure Fertigkeiten steigern könnt")
say("und kommt dann wieder!")
wait()
pc.warp(590500, 110500)
return
end
when 20075.chat."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20075).."")
say("Ihr möchtet in die 7.Etage?")
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
say("Aber voher muss ich euch noch prüfen..")
say("Mal sehen..")
wait()
if pc.level >=75 then
say("Ich erlaube euch weiterzugehen!")
say("Viel Glück und passt auf euch auf da oben!")
timer("devil_jump_7", 6)
return
end
say("Betreten der 7.Etage nicht erlaubt!")
say("Ihr seid nicht qualifiziert genug!")
say("Erreicht Level 75 oder höher,")
say("damit ihr eure Fertigkeiten steigern könnt")
say("und kommt dann wieder!")
wait()
pc.warp(590500, 110500)
return
end
when 20076.chat."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20076).."")
say("Ihr möchtet in die 7.Etage?")
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
say("Aber voher muss ich euch noch prüfen..")
say("Mal sehen..")
wait()
if pc.level >=75 then
say("Ich erlaube euch weiterzugehen!")
say("Viel Glück und passt auf euch auf da oben!")
timer("devil_jump_7", 6)
return
end
say("Betreten der 7.Etage nicht erlaubt!")
say("Ihr seid nicht qualifiziert genug!")
say("Erreicht LvL 75 oder höher,")
say("damit ihr eure Fertigkeiten steigern könnt")
say("und kommt dann wieder!")
wait()
pc.warp(590500, 110500)
return
end
when devil_jump_7.timer begin
d.clear_regen()
d.spawn_mob(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+638)
end
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local cont = d.getf("7_stone_kill") + 1
d.setf("7_stone_kill", cont)
if cont >= 4 then
d.setf("7_stone_kill", 0)
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
end
end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(30300, 1)
end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then
-- bla bla 7
game.drop_item(30302, 1)
d.clear_regen()
else
-- bla bla 8
game.drop_item(30301, 1)
end
end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- bla bla 9
say("Die Karte wird euch alle in die nächste Ebene")
say("des Dämonenturms bringen.")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
--------------------------------------------
-- bla bla 10
--------------------------------------------
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)-- bla bla 11
pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local pct1 = number(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- bla bla 12
game.drop_item(30304, 1)
else
-- bla bla 13
game.drop_item(30303, 1)
end
else
return
end
end
when 20366.take with item.vnum == 30304 begin
-- bla bla 14
npc.purge()
item.remove()
timer("devil_jump_9", 6)
end
---------------------------------------------
-- bla bla 15
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower9_regen.txt")
end
when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
timer("devil_end_jump", 60)
end
when devil_end_jump.timer begin
d.exit_all()
end
end
end
damit sollte es gehen
[php] pet.unsummon()
chat("Dein Haustier verabschiedet sich nun von dir!")
affect.remove_collect(apply.ATT_GRADE_BONUS, 10, 60*60*8)
affect.remove_collect(apply.DEF_GRADE_BONUS, 10, 60*60*8)
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)
else
local old_level = horse.get_level()
local old_name = horse.get_name()
horse.set_level(22)
horse.set_name(haustiere.get_pet_name())
pet.summon()
horse.set_level(old_level)
horse.set_name(old_name)
affect.add_collect(apply.ATT_GRADE_BONUS, 10, 60*60*8)
affect.add_collect(apply.DEF_GRADE_BONUS, 10, 60*60*8)
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)[php]
warum geht das nicht er removet den bonus nicht
|
|
|
03/03/2015, 14:46
|
#11134
|
elite*gold: 0
Join Date: Feb 2015
Posts: 32
Received Thanks: 1
|
Das Problem hat sich von selbst gelöst!
|
|
|
03/03/2015, 14:59
|
#11135
|
elite*gold: 0
Join Date: Apr 2014
Posts: 168
Received Thanks: 8
|
Drachenraum quest
PHP Code:
quest drachenraum begin state start begin when 20500.chat."Ich will den Drachen Tötten!" begin if get_time() > game.get_event_flag("blockentry") and game.get_event_flag("blockentry") > 1 then game.set_event_flag("dragontemple_block",1) game.set_event_flag("blockentry", 0) end if get_time() > game.get_event_flag("reopen") and game.get_event_flag("reopen") > 1 then game.set_event_flag("dragontemple_used",0) game.set_event_flag("dragontemple_block",0) game.set_event_flag("reopen", 0) end if game.get_event_flag("reopen")-get_time() < 0 then dragontime = 1 else dragontime = game.get_event_flag("reopen")-get_time() end if game.get_event_flag("dragontemple_used") == 1 and game.get_event_flag("empire") == pc.get_empire() then if game.get_event_flag("dragontemple_block") == 1 then say_title(mob_name(20500)) say("") say("Der Drache wurde vor kurzem getötet!") say("Bitte warte, bis der Drache wiederbelebt") say("wird. Der Drache wird verfügbar sein in:") say_red(""..dragontime.." Sekunden.") say("") return; end say_title(mob_name(20500)) say("") say("Entschuldigung aber der Drachenraum ist") say("besetzt.") say("wenn du das Passwort zum betreten,") say("Geb es jetzt ein...") local password = input() if game.get_event_flag("dragontemple_password") == tonumber(password) then say_title(""..mob_name(20500).."") say("") say("Das Passwort ist richtig!") say("") wait() say_title(""..mob_name(20500).."") say("") say("Wenn du wilslt bring ich dich ") say("in die Drachenkammer jetzt.") say("Aber ich brauche 3 mal:") say("") say_item_vnum(30179) local s = select("Nimm sie und bring mich rein!", "Nein danke") if s == 1 then if pc.count_item(30179) >= 3 then pc.remove_item(30179,3) pc.warp(171700, 1220400) pc.setqf("payment", 1) else say("Du hast nur "..pc.count_item(30179).." von benötigten 3") say("") say_item_vnum(30179) end else return end else say_title(""..mob_name(20500).."") say("") say("Das Passwort ist nicht richtig!") return end elseif pc.has_guild() and game.get_event_flag("dragontemple_used") == 0 then say_title(""..mob_name(20500).."") say("") say("Du willst also gegen den Drachen kämpfen?") say("Dann geb mir ein Passwort für den Raum.") say("Du kannst das passwort dann deiner Gruppe geben") say("Damit sie dir Helfen den Drachen zu Erlegen.") say("Bitte geb mir das Passwort.") local password = tonumber(input("")) game.set_event_flag("dragontemple_password",password) say_title(""..mob_name(20500).."") say("") say("Wenn du willst, kann ich dich Reinbringen.") say("Und das auf der Stelle.") say("Du brauchst nur 3 mal:") say_item_vnum(30179) say("") say_reward("Achtete darauf das jeder 3 Schlüssel hat.") say_reward("Der zugang ist nur 5 Minuten offen!") say("") local s = select("bring mich rein!", "Bye") if s == 1 then if pc.count_item(30179) >= 3 then empire = pc.get_empire() pc.remove_item(30179,3) DragonLair.startRaid(207) game.set_event_flag("dragontemple_used",1) game.set_event_flag("empire",empire) game.set_event_flag("metinkills", 0) game.set_event_flag("reopen", get_time()+60*60) game.set_event_flag("blockentry", get_time()+5*60) pc.setqf("payment", 1) pc.warp(171700, 1220400) else say("du hast nur "..pc.count_item(30179).." und brauchst 3.") say("") say_item_vnum(30179) say("") return end elseif s==2 then return end elseif not pc.has_guild() then say_title(""..mob_name(20500).."") say("Du must in einer gilde sein um in dne Drachenraum zu kommen.") say("Y") say("") elseif game.get_event_flag("empire") > pc.get_empire() or game.get_event_flag("empire") < pc.get_empire() then say_title(""..mob_name(20500).."") say("") say("Der Raum ist besetzt") say("Von einem Anderen Reich.") end end when login with pc.get_map_index() == 73 begin if pc.getqf("payment") < 1 then pc.warp(10000,1214200) else pc.setqf("payment", 0) end end when 2493.kill with pc.get_map_index() == 73 begin game.set_event_flag("reopen", get_time()+30*60) notice_all("Die Gruppe von "..pc.get_name().." Hat den") notice_all("Blauen drachen getötet") game.set_event_flag("metinkills", 0) game.set_event_flag("dragontemple_block",1) end when pc.get_map_index() == 73 begin if get_time() == 1680 and pc.getqf("payment") < 1 then pc.warp(10000,1214200) else pc.setqf("payment", 0) end end
when login begin if get_time() < 1680 and pc.getqf("payment") < 1 then pc.setqf("payment", 0) else pc.setqf("payment", 0) end end end end
Ich bekomme folgenden Fehler:
Quote:
when doesn't have begin-end clause.())
raum.quest::146:Error occured on comlipe run quest
|
Würe nett, wenn mir einer helfen könnte
PHP Code:
when pc.get_map_index() == 73 begin if get_time() == 1680 and pc.getqf("payment") < 1 then pc.warp(10000,1214200) else pc.setqf("payment", 0) end end
Hiermit sollte man nach 2 Minuten in Grotte 1 Teleportiert weden, nachdem der Drache Getötet wurde.
PHP Code:
when login begin if get_time() < 1680 and pc.getqf("payment") < 1 then pc.setqf("payment", 0) else pc.setqf("payment", 0) end end
Hiermit sollte man 2 minuten nachdem der Drache getötet wurde das payment auf 0 bekommen um normal in Grotte 2 zu gehen
|
|
|
03/03/2015, 15:20
|
#11136
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by TayzZ.?
PHP Code:
quest drachenraum begin
state start begin
when 20500.chat."Ich will den Drachen Tötten!" begin
if get_time() > game.get_event_flag("blockentry") and game.get_event_flag("blockentry") > 1 then
game.set_event_flag("dragontemple_block",1)
game.set_event_flag("blockentry", 0)
end
if get_time() > game.get_event_flag("reopen") and game.get_event_flag("reopen") > 1 then
game.set_event_flag("dragontemple_used",0)
game.set_event_flag("dragontemple_block",0)
game.set_event_flag("reopen", 0)
end
if game.get_event_flag("reopen")-get_time() < 0 then
dragontime = 1
else
dragontime = game.get_event_flag("reopen")-get_time()
end
if game.get_event_flag("dragontemple_used") == 1 and game.get_event_flag("empire") == pc.get_empire() then
if game.get_event_flag("dragontemple_block") == 1 then
say_title(mob_name(20500))
say("")
say("Der Drache wurde vor kurzem getötet!")
say("Bitte warte, bis der Drache wiederbelebt")
say("wird. Der Drache wird verfügbar sein in:")
say_red(""..dragontime.." Sekunden.")
say("")
return;
end
say_title(mob_name(20500))
say("")
say("Entschuldigung aber der Drachenraum ist")
say("besetzt.")
say("wenn du das Passwort zum betreten,")
say("Geb es jetzt ein...")
local password = input()
if game.get_event_flag("dragontemple_password") == tonumber(password) then
say_title(""..mob_name(20500).."")
say("")
say("Das Passwort ist richtig!")
say("")
wait()
say_title(""..mob_name(20500).."")
say("")
say("Wenn du wilslt bring ich dich ")
say("in die Drachenkammer jetzt.")
say("Aber ich brauche 3 mal:")
say("")
say_item_vnum(30179)
local s = select("Nimm sie und bring mich rein!", "Nein danke")
if s == 1 then
if pc.count_item(30179) >= 3 then
pc.remove_item(30179,3)
pc.warp(171700, 1220400)
pc.setqf("payment", 1)
else
say("Du hast nur "..pc.count_item(30179).." von benötigten 3")
say("")
say_item_vnum(30179)
end
else
return
end
else
say_title(""..mob_name(20500).."")
say("")
say("Das Passwort ist nicht richtig!")
return
end
elseif pc.has_guild() and game.get_event_flag("dragontemple_used") == 0 then
say_title(""..mob_name(20500).."")
say("")
say("Du willst also gegen den Drachen kämpfen?")
say("Dann geb mir ein Passwort für den Raum.")
say("Du kannst das passwort dann deiner Gruppe geben")
say("Damit sie dir Helfen den Drachen zu Erlegen.")
say("Bitte geb mir das Passwort.")
local password = tonumber(input(""))
game.set_event_flag("dragontemple_password",password)
say_title(""..mob_name(20500).."")
say("")
say("Wenn du willst, kann ich dich Reinbringen.")
say("Und das auf der Stelle.")
say("Du brauchst nur 3 mal:")
say_item_vnum(30179)
say("")
say_reward("Achtete darauf das jeder 3 Schlüssel hat.")
say_reward("Der zugang ist nur 5 Minuten offen!")
say("")
local s = select("bring mich rein!", "Bye")
if s == 1 then
if pc.count_item(30179) >= 3 then
empire = pc.get_empire()
pc.remove_item(30179,3)
DragonLair.startRaid(207)
game.set_event_flag("dragontemple_used",1)
game.set_event_flag("empire",empire)
game.set_event_flag("metinkills", 0)
game.set_event_flag("reopen", get_time()+60*60)
game.set_event_flag("blockentry", get_time()+5*60)
pc.setqf("payment", 1)
pc.warp(171700, 1220400)
else
say("du hast nur "..pc.count_item(30179).." und brauchst 3.")
say("")
say_item_vnum(30179)
say("")
return
end
elseif s==2 then
return
end
elseif not pc.has_guild() then
say_title(""..mob_name(20500).."")
say("Du must in einer gilde sein um in dne Drachenraum zu kommen.")
say("Y")
say("")
elseif game.get_event_flag("empire") > pc.get_empire() or game.get_event_flag("empire") < pc.get_empire() then
say_title(""..mob_name(20500).."")
say("")
say("Der Raum ist besetzt")
say("Von einem Anderen Reich.")
end
end
when login with pc.get_map_index() == 73 begin
if pc.getqf("payment") < 1 then
pc.warp(10000,1214200)
else
pc.setqf("payment", 0)
end
end
when 2493.kill with pc.get_map_index() == 73 begin
game.set_event_flag("reopen", get_time()+30*60)
notice_all("Die Gruppe von "..pc.get_name().." Hat den")
notice_all("Blauen drachen getötet")
game.set_event_flag("metinkills", 0)
game.set_event_flag("dragontemple_block",1)
end
when pc.get_map_index() == 73 begin
if get_time() == 1680 and pc.getqf("payment") < 1 then
pc.warp(10000,1214200)
else
pc.setqf("payment", 0)
end
end
when login begin
if get_time() < 1680 and pc.getqf("payment") < 1 then
pc.setqf("payment", 0)
else
pc.setqf("payment", 0)
end
end
end
end
Ich bekomme folgenden Fehler:
Würe nett, wenn mir einer helfen könnte
PHP Code:
when pc.get_map_index() == 73 begin
if get_time() == 1680 and pc.getqf("payment") < 1 then
pc.warp(10000,1214200)
else
pc.setqf("payment", 0)
end
end
Hiermit sollte man nach 2 Minuten in Grotte 1 Teleportiert weden, nachdem der Drache Getötet wurde.
PHP Code:
when login begin
if get_time() < 1680 and pc.getqf("payment") < 1 then
pc.setqf("payment", 0)
else
pc.setqf("payment", 0)
end
end
Hiermit sollte man 2 minuten nachdem der Drache getötet wurde das payment auf 0 bekommen um normal in Grotte 2 zu gehen
|
get_time() gibt die aktuelle Serverzeit zurück. Das hat nichts mit einem timer zu tun
|
|
|
03/03/2015, 15:57
|
#11137
|
elite*gold: 0
Join Date: Apr 2014
Posts: 168
Received Thanks: 8
|
wie mache ich den den timer in die quest, sodass alle, die im run beteidigt waren und noch in Grotte 2 sind in Grotte 1 in 2 minuten nach dem bosskill Teleportiert weden und die, die sich schon davor geportet haben das "payment" auf 0 bekommen?
|
|
|
03/03/2015, 17:35
|
#11138
|
elite*gold: 0
Join Date: Jan 2010
Posts: 230
Received Thanks: 32
|
Hallo zsm
also mir wurde diese PvP quest erstellt^^
quest pvp begin
state start begin
when login or levelup with pc.get_level() >= 100 and pc.getqf("level") == 0 begin
say("Gratuliere!!")
say("Du hast das Level 105 erreicht,")
say("dass ist schon beachtlich.")
say("Nunja, ab jetzt wird der PvP Teil")
say("immer interesanter...")
say("Dafür haben wir uns was besonderes ausgesucht.")
say("Ab jetzt wirst du für das Töten anderer")
say("Spieler mit Boni belohnt.")
say_reward("50 Spieler getötet = 8% Halbmenschen")
say_reward("100 Spieler getötet = 1.000 TP")
say_reward("200 Spieler getötet = 7% Halbmenschen")
say_reward("500 Spieler getötet = 2.000 TP")
pc.setqf("level", 1)
end
when kill with npc.is_pc() begin
if get_time() < pc.getqf("kill_time") then
return
end
chat("Einen weiteren Punkt erhälst du erst in einer Minuten")
chat("Derzeit besitzt du "..pc.getqf("kill_punkte").." Punkt(e)")
pc.setqf("kill_punkte", pc.getqf("kill_punkte")+1)
pc.setqf("kill_time", get_time() + 60)
if pc.getqf("kill_punkte") == 50 then
affect.add_collect(apply.ATTBONUS_HUMAN,8,60*60*24 *365*60)
say("Du hast soeben 50 Leute getötet")
say("Dafür kriegst du 8% Halbmenschen")
elseif pc.getqf("kill_punkte") == 100 then
affect.add_collect(apply.MAX_HP,1000,60*60*24*365* 60)
say("Soeben hast du deine 100. Toetung vollbracht")
say("Dafür hast du weitere 1000 TP dazu bekommen")
elseif pc.getqf("kill_punkte") == 200 then
affect.add_collect(apply.ATTBONUS_HUMAN,7,60*60*24 *365*60)
say("OHA, schon 200 Leute gekillt, dafür kriegst du weitere 7% Halbmenschen")
say_reward("7% Halbmenschen")
elseif pc.getqf("kill_punkte") == 500 then
affect.add_collect(apply.MAX_HP,2000,60*60*24*365* 60)
say("OMG, du bist ein PvP-Gott, du hast unglaubliche 500 Kills erreicht")
say("Dein letzter Bonus sind weitere 2000 TP")
end
end
end
end
die quest funktioniert fast perfekt... das einzige ist, dass man keinen punkt bekommt, wenn man ein duell gewinnt (bin mir nicht ganz sicher obs an der Quest liegt, oder daran, dass ich eingefügt habe, dass man die TP des Gegners im duell sieht)
einen Punkt erhält man nur beim Kill auf "FREI"
Liebe Grüsse
|
|
|
03/03/2015, 22:30
|
#11139
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
mach nen standartmäßigen timer, kein server timer, mit ner map index abfrage, lass sie wenn der timer startet und die person auf der map ist vie pc.warp in die andere map porten, fertig.
mkiiing, amch es bitte einmal als php code, bei diesem code fehlen teile, das ist etwas unvorteilahft.
|
|
|
03/03/2015, 22:50
|
#11140
|
elite*gold: 0
Join Date: Jan 2010
Posts: 230
Received Thanks: 32
|
Quote:
Originally Posted by Rofelmau
mkiiing, amch es bitte einmal als php code, bei diesem code fehlen teile, das ist etwas unvorteilahft.
|
jo sorry hab ich voll verchillt
PHP Code:
quest pvp begin
state start begin
when login or levelup with pc.get_level() >= 100 and pc.getqf("level") == 0 begin
say("Gratuliere!!")
say("Du hast das Level 100 erreicht,")
say("dass ist schon beachtlich.")
say("Nunja, ab jetzt wird der PvP Teil")
say("immer interesanter...")
say("Dafuer haben wir uns was besonderes ausgesucht.")
say("Ab jetzt wirst du fuer das Toeten anderer")
say("Spieler mit Boni belohnt.")
say_reward("50 Spieler getoetet = 5% Halbmenschen")
say_reward("100 Spieler getoetet = 1.000 TP")
say_reward("200 Spieler getoetet = 5% Halbmenschen")
say_reward("500 Spieler getoetet = 2.000 TP")
pc.setqf("level", 1)
end
when kill with npc.is_pc() begin
if get_time() < pc.getqf("kill_time") then
chat("Die 2 Minuten sind noch nicht vergangen")
chat("Du erhälst für diesen Kill keinen Punkt")
return
end
chat("Du hast einen Punkt erhalten Gratuliere du hast derzeit ")
chat("Einen weiteren Punkt erhaelst du in erst 2 Minuten")
chat("Derzeit besitzt du "..pc.getqf("kill_punkte").." Punkt(e)")
pc.setqf("kill_punkte", pc.getqf("kill_punkte")+1)
pc.setqf("kill_time", get_time() + 60*2)
if pc.getqf("kill_punkte") == 50 then
affect.add_collect(apply.ATTBONUS_HUMAN,5,60*60*24*365*60)
say("Du hast soeben 50 Leute getoetet")
say("Dafuer kriegst du 5% Halbmenschen")
elseif pc.getqf("kill_punkte") == 100 then
affect.add_collect(apply.MAX_HP,1000,60*60*24*365*60)
say("Soeben hast du deine 100. Toetung vollbracht")
say("Dafuer hast du weitere 1000 TP dazu bekommen")
elseif pc.getqf("kill_punkte") == 200 then
affect.add_collect(apply.ATTBONUS_HUMAN,5,60*60*24*365*60)
say("OHA, schon 200 Leute gekillt, dafuer kriegst du weitere 5% Halbmenschen")
say_reward("Zur Zeit hast du")
say_reward("10% Halbmenschen und 1000 TP als PvP Bonus.")
elseif pc.getqf("kill_punkte") == 500 then
affect.add_collect(apply.MAX_HP,2000,60*60*24*365*60)
say("Unglaublich du hast bereits 500 Toetungen vollbracht")
say("Dein Letzter Bonus sind weitere 2000 TP")
end
end
end
end
|
|
|
03/03/2015, 22:59
|
#11141
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
würde nur
PHP Code:
pc.setqf("kill_punkte", pc.getqf("kill_punkte")+1)
pc.setqf("kill_time", get_time() + 60*2)
hoch unter das end, also über die chats setzen, damit in den chats schon direckt die richtige anzahl an punkten stehen
ansonsten kann ich keinen Fehler in der Quest sehen
|
|
|
03/04/2015, 21:24
|
#11142
|
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
|
Jagdquest [GELÖST]
Hallo liebe User,
Beim Questservice hat mir vor kurzem einer eine Jagdquest gescripted.
Nun habe ich sie endlich hinzu gefügt, jedoch gibt es ein problem bei make.sh
Vorab hier die quest
PHP Code:
quest jagt begin
state start begin
when login or levelup with pc.get_level() >= 50 begin
set_state(jagd)
pc.setqf("metin",5)
q.set_counter("metin",5)
end
end
state jagd begin
when letter begin
send_letter("Jagd-Quest")
end
when button or info begin
say_title("Jagd-Quest")
say("")
say("Töte 5 mal"..mob_name(8020))
say("")
say("Du erhälst als Belohnung")
say("etwas nützliches das dich in PVM stärkt")
end
when kill begin
if npc.get_race()==8020 then
pc.setqf("metin",pc.getqf("metin")-1)
q.set_counter("Metin",pc.getqf("metin"))
if pc.getqf("metin")<= 0 then
local rasse = pc.get_job()
if rasse == 0 then --krieger
pc.give_item2(42040,1)
elseif rasse == 1 then --ninja
pc.give_item2(42041,1)
elseif rasse == 2 then --sura
pc.give_item2(42042,1)
elseif rasse == 3 then --schami
pc.give_item2(42043,1)
end
set_state(fertig)
end
end
end
end
state fertig beign
end
end
Also wenn ich sh make.sh eingebe erscheint ein Fehler
PHP Code:
state doesn't have begin-end clause.
Jagdquest50.quest:41:Error occured on compile Jagdquest50.quest
Wie kann ich das beheben?
Danke @.Delta Habe ich total übersehen, und der Ersteller anscheinend auch 
Hast ein Thanks
Mfg
|
|
|
03/04/2015, 21:26
|
#11143
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
bei state fertig begin hinschreibe
momentan steht beign da
|
|
|
03/04/2015, 21:46
|
#11144
|
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
|
Quote:
Originally Posted by .Delta
bei state fertig begin hinschreibe
momentan steht beign da
|
Also die Quest funktioniert schon einmal, dafür hast du auch ein Thanks von mir. Nun ist das problem wenn ich die 5 Metin Steine getötet habe kann ich die Quest nicht mehr anklicken und meine Belohnung abholen, also wenn ich auf die Klicke passiert nichts mehr. Die Anzahl zu tötender Metins liegt bei 0 also sollte es doch funktionieren.
PHP Code:
quest jagt begin
state start begin
when login or levelup with pc.get_level() >= 50 begin
set_state(jagd)
pc.setqf("metin",5)
q.set_counter("metin",5)
end
end
state jagd begin
when letter begin
send_letter("Jagd-Quest")
end
when button or info begin
say_title("Jagd-Quest")
say("")
say("Töte 5 mal "..mob_name(8020))
say("Du triffst ihn im SD2")
say("")
say("Du erhälst als Belohnung")
say("etwas nützliches das dich in PVM stärkt")
end
when kill begin
if npc.get_race()==8020 then
pc.setqf("metin",pc.getqf("metin")-1)
q.set_counter("Metin",pc.getqf("metin"))
if pc.getqf("metin")<= 0 then
local rasse = pc.get_job()
if rasse == 0 then --krieger
pc.give_item2(42040,1)
elseif rasse == 1 then --ninja
pc.give_item2(42041,1)
elseif rasse == 2 then --sura
pc.give_item2(42042,1)
elseif rasse == 3 then --schami
pc.give_item2(42043,1)
end
set_state(fertig)
end
end
end
end
state fertig begin
end
end
|
|
|
03/04/2015, 22:18
|
#11145
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
Theoretisch solltest du die Belohnung nach dem 5. Kill automatisch ins Inventar bekommen ohne nochmal was anklicken zu müssen, so ist sie jedenfalls geschrieben, soll das geändert werden?
|
|
|
All times are GMT +1. The time now is 13:02.
|
|