Guten Abend Community,
Habe da mal eine frage wie füge ich am leichtersten Pets und Mounts ein.
Da ich nicht weiß wo die gr2 abfrage ist also wo die gr2 von den pets und den mounts eingetragen gehört kann mir da jemand mal ein tutorial schreiben bzw eins senden?
Wäe ech nett von euch.
Würde auch gerne wissen wie ich das mache das ein Mount einen nach läuft so wie das pferd wo ich das eintragen muss würde das auch gerne wissen hoffe mir kann wer weiter helfen.
bzw habe ich da noch eine frage kann mir wer sagen wie ich eine zeit abfrage in dt einbaue bzw kann mir einer dabei helfen die zin karten eberne und Schlüssel eberne raus zu nehmen und eine 20minütige zeitabfrage einbauen das mann erst in 20 min wieder den dt betreten kann.
hier die quest:
- 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 logout begin
- if pc.count_item(30300) >= 1 then
- pc.remove_item(30300, pc.count_item(30300))
- end
- -- not used in the game
- -- pc.remove_item(30301, pc.count_item(30301))
- if pc.count_item(30302) >= 1 then
- pc.remove_item(30302, pc.count_item(30302))
- end
- end
- when deviltower_man.chat.gameforge.deviltower_zone._10_npcChat begin
- if pc.get_level() < 40 then
- say_title(gameforge.deviltower_zone._20_sayTitle)
- say(gameforge.deviltower_zone._30_say)
- else
- say_title(gameforge.deviltower_zone._20_sayTitle)
- say(gameforge.deviltower_zone._40_say)
- local s = select(gameforge.locale.monkey_dungeon.enter, gameforge.locale.monkey_dungeon.no_enter)
- if s == 1 then
- pc.warp(216500,727000)
- end
- end
- end
- when devil_stone1.kill begin
- timer("devil_stone1_1", 6)
- end
- when devil_stone1_1.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_stone3.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
- 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()
- 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
- 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)
- local positions = deviltower_zone.get_4floor_stone_pos()
- for i = 1, 6 do
- test_chat(positions[i][1], positions[i][2])
- d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
- end
- test_chat(positions[7][1], positions[7][2])
- local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
- test_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())
- notice_multiline(gameforge.deviltower_zone._50_dNotice,d.notice)
- end
- when devil_stone4_fail1.server_timer begin
- if d.select(get_server_timer_arg()) then
- notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
- 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
- notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
- 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
- notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
- d.clear_regen()
- 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)
- notice_multiline(gameforge.deviltower_zone._90_dNotice,d.notice)
- end
- end
- end
- else
- server_timer("devil_stone4_end", 5, get_server_timer_arg())
- --d.kill_all()
- d.purge()
- notice_multiline(gameforge.deviltower_zone._100_dNotice,d.notice)
- 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
- clear_server_timer('devil_stone4_update', get_server_timer_arg())
- 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())
- -- clear regen from memory when exit
- d.clear_regen()
- d.setf("level", 5)
- d.setf("stone_count", 5)
- notice_multiline(gameforge.deviltower_zone._110_dNotice,d.notice)
- 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
- notice_multiline(gameforge.deviltower_zone._120_dNotice,d.notice)
- 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
- notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
- 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
- notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
- 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
- notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
- d.exit_all()
- end
- end
- when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
- local KILL_COUNT_FOR_DROP_KEY = 50
- local n =d.getf("count") + 1
- d.setf("count", n)
- if n == KILL_COUNT_FOR_DROP_KEY then
- 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")
- notice_multiline(gameforge.deviltower_zone._130_dNotice,d.notice)
- d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
- local server_arg = d.get_map_index()
- clear_server_timer('devil_stone5_fail1', server_arg)
- clear_server_timer('devil_stone5_fail2', server_arg)
- clear_server_timer('devil_stone5_fail3', server_arg)
- clear_server_timer('devil_stone5_fail', server_arg)
- else
- d.notice(string.format(gameforge.deviltower_zone._140_dNotice, d.getf("stone_count")))
- end
- end
- when devil_stone6.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
- d.kill_all()
- notice_multiline(gameforge.deviltower_zone._150_dNotice,d.notice)
- d.check_eliminated()
- notice_multiline(gameforge.deviltower_zone._160_dNotice,d.notice)
- local reward_alchemist = {20074, 20075, 20076}
- d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
- d.setqf2("deviltower_zone","can_refine", 1)
- end
- when 20074.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
- say_title(mob_name(20074))
- say(gameforge.deviltower_zone._190_say)
- wait()
- if pc.level >=75 then
- say_title(mob_name(20074))
- say(gameforge.deviltower_zone._200_say)
- local s= select(gameforge.deviltower_zone._210_select, gameforge.locale.cancel, gameforge.deviltower_zone._220_select)
- if s==3 then
- pc.warp(590500, 110900)
- return
- end
- if s==2 then
- return
- end
- timer("devil_jump_7", 6)
- npc.unlock()
- d.purge()
- return
- end
- say_title(mob_name(20074))
- say(gameforge.deviltower_zone._230_say)
- wait()
- pc.warp(590500, 110500)
- return
- end
- when 20075.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
- say_title(mob_name(20075))
- say(gameforge.deviltower_zone._190_say)
- wait()
- if pc.level >=75 then
- say_title(mob_name(20075))
- say(gameforge.deviltower_zone._200_say)
- local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
- if s==3 then
- pc.warp(590500, 110900)
- return
- end
- if s==2 then
- return
- end
- timer("devil_jump_7", 6)
- npc.unlock()
- d.purge()
- return
- end
- say_title(mob_name(20075))
- say(gameforge.deviltower_zone._230_say)
- wait()
- pc.warp(590500, 110500)
- return
- end
- when 20076.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
- say_title(mob_name(20076))
- say(gameforge.deviltower_zone._190_say)
- wait()
- if pc.level >=75 then
- say_title(mob_name(20076))
- say(gameforge.deviltower_zone._200_say)
- local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
- if s==3 then
- pc.warp(590500, 110900)
- return
- end
- if s==2 then
- return
- end
- timer("devil_jump_7", 6)
- npc.unlock()
- d.purge()
- return
- end
- say_title(mob_name(20076))
- say(gameforge.deviltower_zone._230_say)
- 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)
- notice_multiline(gameforge.deviltower_zone._240_dNotice,d.notice)
- 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
- game.drop_item(30302, 1)
- d.clear_regen()
- else
- -- nothing happens cause the items isnt used in the game
- -- 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
- if d.getf( "level" ) != 7 then
- pc.remove_item( "30302", 1)
- return
- end
- say_title(gameforge.blacksmith._40_sayTitle)
- say(gameforge.deviltower_zone._250_say)
- pc.remove_item("30302", 1)
- timer("devil_jump_8", 6)
- d.clear_regen()
- end
- when devil_jump_8.timer begin
- d.setf("level", 8)
- notice_multiline(gameforge.deviltower_zone._260_dNotice,d.notice)
- 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)
- 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
- game.drop_item(30304, 1)
- else
- game.drop_item(30303, 1)
- end
- else
- return
- end
- end
- when 20366.take with item.vnum == 30304 begin
- npc.purge()
- item.remove()
- timer("devil_jump_9", 6)
- end
- when devil_jump_9.timer begin
- d.setf("level", 9)
- notice_multiline(gameforge.deviltower_zone._270_dNotice,d.notice)
- 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()
- d.setqf2("deviltower_zone","9_done", 1)
- notice_multiline(gameforge.deviltower_zone._280_dNotice,d.notice)
- notice_multiline(gameforge.deviltower_zone._290_dNotice,d.notice)
- server_timer("devil_end_jump", 60, d.get_map_index())
- end
- when devil_end_jump.server_timer begin
- if d.select (get_server_timer_arg()) then
- d.clear_regen()
- d.exit_all()
- end
- end
- end
- end
Hoffe ihr könnt mir helfen
Mit freundlichen grüßen
AceWavee