Advertisement
Luzzo

Survival

Jan 24th, 2015
783
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.11 KB | None | 0 0
  1. --**Quest by Luzzo
  2. --**Data: 24/01/2015
  3.  
  4. quest survival begin
  5.     state start begin
  6.    
  7.         function get_stone_pos()
  8.             local positions = {
  9.             {368, 629},
  10.             {419, 630},
  11.             {428, 653},
  12.             {422, 679},
  13.             {395, 689},
  14.             {369, 679},
  15.             {361, 658},
  16.             }
  17.             for i = 1, 6 do
  18.                 local j = number(i, 7)
  19.                 if i != j then
  20.                     local t = positions[i];
  21.                     positions[i] = positions[j];
  22.                     positions[j] = t;
  23.                 end
  24.             end
  25.             return positions
  26.         end
  27.        
  28.         when 9003.chat."Survival" bengin
  29.             say_title("Surival")
  30.             say("")
  31.             say("Sei pronto ad entrare nella ")
  32.             say("modalita' survival?")
  33.            
  34.             if select("Si","No") != 1 then
  35.                 return
  36.             end
  37.            
  38.             pc.warp(x,y)
  39.         end
  40.        
  41.         when login with pc.get_map_index() == 149 begin        
  42.             pc.set_warp_location(65, 5376+532, 512+596+4)
  43.         end
  44.        
  45.         when 8009. kill with pc.get_map_index() == 149 begin
  46.             timer("surival_stone", 6)
  47.         end
  48.        
  49.         when survival_stone.timer begin
  50.             d.new_jump_all(149, x, y)
  51.             d.regen_file("data/dungeon/survival_1.txt")
  52.             d.setqf("ondata", 1)
  53.             server_timer("survival_fail",30*60, d.get_map_index())
  54.             server_timer("survival_notice1",10*60, d.get_map_index())
  55.             d.notice("Avete 30 min per terminare il dungeon")
  56.         end
  57.        
  58.         when survival_fail.server_timer begin
  59.             d.exit_all()
  60.         end
  61.        
  62.         when survival_notice1.server_timer begin
  63.             if d.select(get_server_timer_arg()) then
  64.                 d.notice("Venti minuti rimanenti.")
  65.                 server_timer('survival_notice2', 10*60, get_server_timer_arg())
  66.             end
  67.         end
  68.        
  69.         when survival_notice2.server_timer begin
  70.             if d.select(get_server_timer_arg()) then
  71.                 d.notice("Dieci minuti rimanenti.")            
  72.             end
  73.         end
  74.        
  75.         when s_ondata2.server_timer begin
  76.             d.notice("Ecco la seconda Ondata")
  77.             d.regen_file("data/dungeon/survival_2.txt")
  78.         end
  79.        
  80.         when kill with pc.get_map_index() >= 1490000 and pc.get_map_index() < 1450000 begin
  81.             if d.count_monster() == 0 then
  82.                 if d.getqf("ondata") == 1 then
  83.                     d.notice("Prima ondata completata.Tra 5 secondi arrivera' la prossima")
  84.                     d.setqf("ondata", 2)
  85.                     server_timer("s_ondata2", 5, d.get_map_index())
  86.                 elseif d.getqf("ondata") == 2 then
  87.                     d.notice("Tra 5 secondi verrete trasportati al piano dei metin.")
  88.                     d.setqf("ondata", 0)
  89.                     server_timer("s_floor2", 5, d.get_map_index())
  90.                 end
  91.             end
  92.         end
  93.        
  94.         when s_floor2.server_timer begin
  95.             local positions = survival.get_stone_pos()
  96.             for i = 1, 6 do        
  97.                 d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
  98.             end        
  99.             local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])        
  100.             d.set_unique("real", vid)          
  101.             server_loop_timer('stone_update', 10, d.get_map_index())
  102.             d.notice("Trova il metin corretto per salire.")
  103.         end
  104.        
  105.         when stone_update.server_timer begin
  106.             if d.select(get_server_timer_arg()) then
  107.                 if not d.is_unique_dead("real") then
  108.                     for i = 1, 6 do
  109.                         if d.getf("fakedead" .. i) == 0 then
  110.                             if d.unique_get_hp_perc("fake" .. i) < 50 then
  111.                                 d.purge_unique("fake" .. i)
  112.                                 d.setf("fakedead" .. i, 1)
  113.                                 d.notice("Metin falso scompare....");
  114.                             end
  115.                         end
  116.                     end
  117.                 else
  118.                     server_timer("survival_end", 5, get_server_timer_arg())
  119.                     d.notice("Metin esatto...");
  120.                     d.notice("Sali all'ultimo piano")
  121.                            
  122.                 end
  123.             else
  124.                 clear_server_timer('stone_update', get_server_timer_arg())
  125.             end
  126.         end
  127.        
  128.         when survival_end.server_timer begin
  129.             d.notice("Siete arrivati all'ultimo piano!")
  130.             d.notice("Sconfiggete il boss finale")
  131.             d.spawn_mob(value,x,y)
  132.         end
  133.        
  134.         when value.kill with pc.get_map_index() >= 1490000 and pc.get_map_index() < 1450000 begin
  135.             d.notice("Avete sconfitto il leggendario mostro")
  136.             d.notice("Avete completato il survival")
  137.             clear_server_timer('stone_update', get_server_timer_arg())
  138.             clear_server_timer('survival_notice1', get_server_timer_arg())
  139.             clear_server_timer('survival_notice2', get_server_timer_arg())
  140.             clear_server_timer('survival_fail', get_server_timer_arg())        
  141.             server_timer("survival_exit", 5, d.get_map_index())
  142.         end
  143.        
  144.         when survival_exit.server_timer begin
  145.             d.exit_all()
  146.         end
  147.     end
  148. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement