Jump to content

forta2k

Inactive Member
  • Posts

    9
  • Joined

  • Last visited

  • Feedback

    0%

About forta2k

Informations

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

forta2k's Achievements

Rookie

Rookie (2/16)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  1. Hello, I've been using this quest for dragon soul system and I decided that the gemstone should spawn in the inventory, not on the ground. So I decided to replace game.drop_item_with_ownership(gemstone, 1, 300) with pc.give_item2 . Everything works fine - the problem is that when there are 10 gemstones in the inventory, they don't transform anymore into a rewardbox. Ideas?
  2. The quest is fine, but the NPC doesn't teleport me. Does it work for you? Nevermind, my fault. Fixed.
  3. Hello, I'm trying to compile a dragon soul quest starting with some defines, but I can't. Error: "x.quest must start with "quest". How can I still do it? I've found something on the internet with pre_qc.py, but unfortunately I don't really find that on my serverfile. Any idea how to compile it with the defines? Quest: define gemstone 30270 define alchemist 20001 define reward_box 50255 define gemstone_need_count 10 define gemstone_trade_max_per_day 10 define dragon_soul_can_use_level 30 define drop_flag "ds_drop" quest dragon_soul begin state start begin when levelup or letter with pc.level >= dragon_soul_can_use_level begin send_letter(gameforge.dragon_soul._1010_sendLetter) local v = find_npc_by_vnum(alchemist) if 0 != v then target.vid("__TARGET__", v, mob_name(alchemist)) end end when info or button begin say(gameforge.dragon_soul._1020_say) end when alchemist.chat.gameforge.dragon_soul._1030_npcChat with pc.level >= dragon_soul_can_use_level begin target.delete("__TARGET__") say_title(mob_name(alchemist)) say(gameforge.dragon_soul._1040_say) set_state(state_learning) end end state state_learning begin when letter begin send_letter(gameforge.dragon_soul._1050_sendLetter) end when info or button begin say(gameforge.dragon_soul._1060_say) end when kill begin if npc.is_pc() then return end if pc.count_item(gemstone) < gemstone_need_count then if drop_gamble_with_flag(drop_flag) then game.drop_item_with_ownership(gemstone, 1, 300) end end end when alchemist.chat.gameforge.dragon_soul._1050_sendLetter begin say_title(mob_name(alchemist)) if pc.count_item(gemstone) >= gemstone_need_count then say(gameforge.dragon_soul._1070_say) pc.remove_item(gemstone, gemstone_need_count) ds.give_qualification() char_log(pc.get_player_id(), 'DS_QUALIFICATION', 'SUCCESS') pc.give_item2(reward_box) 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(gameforge.dragon_soul._1080_say) end end end state state_farming begin when letter begin send_letter(gameforge.dragon_soul._1090_sendLetter) 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(drop_flag) then local eye_left = pc.getf("dragon_soul", "eye_left") local haved_gemstone_number = pc.count_item(gemstone) if eye_left > haved_gemstone_number / gemstone_need_count then game.drop_item_with_ownership(gemstone, 1, 300) end end end when gemstone.pick begin local eye_left = pc.getf("dragon_soul", "eye_left") if eye_left <= 0 then return end if pc.count_item(gemstone) >= gemstone_need_count then pc.setf("dragon_soul", "eye_left", eye_left - 1) pc.remove_item(gemstone, gemstone_need_count) pc.give_item2(reward_box) if 1 == eye_left then notice_multiline(gameforge.dragon_soul._1110_notice, notice) set_state(state_closed_season) end end end when alchemist.chat.gameforge.dragon_soul._1120_npcChat begin say_title(mob_name(alchemist)) local today = math.floor(get_global_time() / 86400) if today == pc.getf("dragon_soul", "eye_timestamp") then say(gameforge.dragon_soul._1130_say) else say(gameforge.dragon_soul._1140_say) 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(gameforge.dragon_soul._1150_sendLetter) end when info or button begin say(gameforge.dragon_soul._1160_say) local today = math.floor(get_global_time() / 86400) if today == pc.getf("dragon_soul", "eye_timestamp") then say(gameforge.dragon_soul._1170_say) else say(gameforge.dragon_soul._1180_say) end end when alchemist.chat.gameforge.dragon_soul._1090_sendLetter begin say_title(mob_name(alchemist)) local today = math.floor(get_global_time() / 86400) if today == pc.getf("dragon_soul", "eye_timestamp") then say(gameforge.dragon_soul._1130_say) else say(gameforge.dragon_soul._1140_say) 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
  4. As the title says - I need the official devil's catacomb quest, with all its files. (server side, client side) Thanks a lot.
  5. Thanks a lot guys. I didn't know I had to put the stones in quest_npc.txt too. I will do it and I'll tell what's happening. Love <3
  6. I edited to ch1_1 MAP_ALLOW: 1 3 4 5 6 21 23 24 25 26 41 43 44 45 46 62 67 68 69 73 79 104 112 196 200 201 202 203 204 205 206 207 208 209 235 240 222 301 302 304 303 402 ch1_2 MAP_ALLOW: 61 63 64 65 67 68 69 70 71 72 73 79 100 101 103 105 111 200 201 202 203 204 205 207 208 209 217 ch99 MAP_ALLOW: 66 73 79 81 107 108 109 110 112 113 114 118 119 120 121 122 123 124 125 126 127 128 181 182 183 196 200 201 202 203 204 205 206 207 208 209 217 235 240 301 303 302 304 305 306 307 402 -it still doesn't teleport me.
  7. Okay so I've literally tried every fucking possible quest on earth but all of them have the same problem - they don't teleport the players to the second floor. Obviously there is no problem with the quests, because no one worked, there's something I miss. I'm using a 40k SVF CLEAN, so if I had to set something and I didn't that's why. (I had to bind 20348 to deviltower_man in quest_npc, because it was clean as I said, by example). When you logout it deletes your item, it spawns you back, but it just doesn't teleport you when killing the stone to the second floor. Ideas? 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(590500, 110500) end pc.set_warp_location(65, 5905, 1105) elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then pc.set_warp_location(65, 5905, 1105) end end when logout begin if pc.count_item(30300) >= 1 then pc.remove_item(30300, pc.count_item(30300)) end if pc.count_item(30302) >= 1 then pc.remove_item(30302, pc.count_item(30302)) end end when deviltower_man.chat."Intrarea în Turnul Demonilor" begin if pc.get_level() < 40 then say_title("Gardã a Demonilor:") say("") --- l say("Acest turn este plin de demoni.") say("Doar cei puternici pot ajunge în vârf.") say("Se spune cã, cine intra în turn") say("nu iese în viaþã.") say("Momentan ... nivelul tãu este prea mic") say("pentru a te lãsa sã intri.") say("Revin-o când ai nivelul 40.") say("") else say_title("Gardã a Demonilor:") say("") --- l say("Acest turn este plin de demoni.") say("Doar cei puternici pot ajunge în vârf.") say("Se spune cã, cine intra în turn") say("nu iese în viaþã.") say("Eºti sigur cã vrei sã intri?") say("") local s = select("Intrã.", "Pleacã.") if s == 1 then -- warp into! pc.warp(216500,727000) end end end when devil_stone1.kill begin timer("devil_stone1_1", 8) 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/deviltower/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/deviltower/deviltower3_regen.txt") end when devil_stone3.kill begin d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower/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 d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2])) end local vid = d.spawn_mob(8017, positions[7][1], positions[7][2]) 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("Ai ajuns la Poarta Alegerii la etajul 4."); d.notice("Multe pietre Metin false îþi vor irita ochii ºi urechile."); d.notice("Gãseºte piatra Metin corectã ºi distruge-o. Ai 15 minute."); d.notice("Aceasta este singura modalitate de a trece aceastã poartã."); end when devil_stone4_fail1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Minute rãmase: 10") 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("Minute rãmase: 5") 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()) and d.getf("level") == 4 then d.notice("Timpul a expirat.") d.exit_all() 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("Piatra Metin falsã a dispãrut..."); end end end else server_timer("devil_stone4_end", 5, get_server_timer_arg()) d.notice("Te-ai bazat pe instinct ºi ai reuºit!"); d.notice("Ai distrus piatra Metin corectã.") d.purge() 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()) d.setf("level", 5) d.setf("stone_count", 5) d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2]) d.notice("Ai ajuns la Poarta Sigilatã la etajul 5.") d.notice("Câþiva demoni au Piatra Cheie, care poate fi") d.notice("folositã pentru a deschide Sigiliile Antice.") d.notice("Deschide cele 5 sigilii în 20 de minute") d.notice("pentru a avansa la etajul urmãtor!") 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/deviltower/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("Minutes left: 15") 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("Minute rãmase: 10") 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("Minute rãmase: 5") 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()) and d.getf("level") == 5 then d.notice("Timpul a expirat.") 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.clear_regen() d.kill_all() d.notice("Ai deschis toate sigliile.") d.notice("Vei avansa la etajul 6!") 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()) d.setf("level", 6) d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2]) d.regen_file("data/dungeon/deviltower/deviltower6_regen.txt") d.notice("Învinge toþi demonii apoi omoarã regele.") else d.notice("Sigiliul a fost rupt! Au mai rãmas "..d.getf("stone_count")..".") end end when devil_stone6.kill begin d.kill_all() 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 when 20074.chat."Etajele de vârf ale turnului" 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("") say("Aþi gãsit drumul pânã la etajul 6.") say("Necesitã multã îndemânare sã ajungi aici ...") say("Hmmmm...") say("Dupã cum þi-am examinat abilitãþile.....") say("") wait() if pc.level >=75 then say_title(""..mob_name(20074)..":") say("") say("Te voi lãsa sã treci mai departe..") say("") timer("devil_jump_7", 6) npc.unlock() d.purge() return end say_title(""..mob_name(20074)..":") say("") say("Ai nevoie de mai mult antrenament") say("pentru a te lãsa sã treci mai departe.") say("Revin-o când eºti destul de puternic..") say("") wait() pc.warp(590500, 110500) return end when 20075.chat."Etajele de vârf ale turnului" 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("") say("Aþi gãsit drumul pânã la etajul 6.") say("Necesitã multã îndemânare sã ajungi aici ...") say("Hmmmm...") say("Dupã cum þi-am examinat abilitãþile.....") say("") wait() if pc.level >=75 then say_title(""..mob_name(20075)..":") say("") say("Te voi lãsa sã treci mai departe..") say("") timer("devil_jump_7", 6) npc.unlock() d.purge() return end say_title(""..mob_name(20075)..":") say("") say("Ai nevoie de mai mult antrenament") say("pentru a te lãsa sã treci mai departe.") say("Revin-o când eºti destul de puternic..") say("") wait() pc.warp(590500, 110500) return end when 20076.chat."Etajele de vârf ale turnului" 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("") say("Aþi gãsit drumul pânã la etajul 6.") say("Necesitã multã îndemânare sã ajungi aici ...") say("Hmmmm...") say("Dupã cum þi-am examinat abilitãþile.....") say("") wait() if pc.level >=75 then say_title(""..mob_name(20076)..":") say("") say("Te voi lãsa sã treci mai departe..") say("") timer("devil_jump_7", 6) npc.unlock() d.purge() return end say_title(""..mob_name(20076)..":") say("") say("Ai nevoie de mai mult antrenament") say("pentru a te lãsa sã treci mai departe.") say("Revin-o când eºti destul de puternic..") 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) 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/deviltower/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,8) if pct == 1 then game.drop_item(30302, 1) d.clear_regen() else 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 -- 8ÃþÀ¸·Î ¿öÇÁ if d.getf( "level" ) != 7 then pc.remove_item( "30302", 1) return end say("Cu aceastã hartã poþi avansa la nivelul urmãtor!") pc.remove_item("30302", 1) timer("devil_jump_8", 6) d.clear_regen() end --------------------------------------------- -- ETAJ 8 --------------------------------------------- when devil_jump_8.timer begin d.setf("level", 8) d.jump_all(2048+590, 6656+403) d.set_regen_file("data/dungeon/deviltower/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 if d.getf("level") < 9 then local pct1 = number(1, 10) if pct1 == 1 then local pct2 = number(1, 4) if pct2 == 1 then game.drop_item(30304, 1) else game.drop_item(30303, 1) end else return end end end when 20366.take with item.vnum == 30304 begin npc.purge() item.remove() timer("devil_jump_9", 8) end --------------------------------------------- -- ETAJ 9 --------------------------------------------- when devil_jump_9.timer begin d.setf("level", 9) d.jump_all(2048+590, 6656+155) d.regen_file("data/dungeon/deviltower/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", 10) d.notice("Felicitari!") d.notice("Ai ucis pe Grim Reaper!") d.notice("Acum, veti ajunge la stagiul urmator, ucide demon rege!") end when devil_end_jump.timer begin d.setf("level", 7) d.jump_all(2048+590, 6656+638) d.clear_regen() d.spawn_mob(1094, 639, 658) end when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin d.notice("Felicitari!") d.notice("Ai ucis soldatii regelui demon!") d.notice("Acum, veti ajunge la etajul urmator, Demon albastru!") d.kill_all() timer("devil_end_jump_schmied", 10) end when devil_end_jump_schmied.timer begin d.setf("level", 9) d.jump_all(2048+590, 6656+155) d.clear_regen() d.spawn_mob(1095, 605, 178) end when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin notice_all("".. pc.get_name() .." a ucis Moartea Albastra!") d.notice("") d.notice("Ai ucis Demonul Albastru!") d.notice("Ca o recompensa iti va aparea toti cei 3 fierari din acest turn!") d.check_eliminated() local reward_alchemist = {20074, 20075, 20076} d.spawn_mob(20074, 609, 179); d.spawn_mob(20075, 609, 172); d.spawn_mob(20076, 609, 185); d.spawn_mob(9012, 619, 170); d.setqf("can_refine", 1) end end end CH1 ch1_1 MAP_ALLOW: 1 3 4 5 6 21 23 24 25 26 41 43 44 45 46 62 66 67 68 69 73 79 104 112 196 200 201 202 203 204 205 206 207 208 209 235 240 222 301 302 304 303 402 ch1_2 MAP_ALLOW: 61 63 64 65 66 67 68 69 70 71 72 73 79 100 101 103 105 111 200 201 202 203 204 205 207 208 209 217 ch99 MAP_ALLOW: 66 73 79 81 107 108 109 110 112 113 114 118 119 120 121 122 123 124 125 126 127 128 181 182 183 196 200 201 202 203 204 205 206 207 208 209 217 235 240 301 303 302 304 305 306 307 402
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.