OX Event

Indította learnmetin2, 2019-09-15, 15:29:02

Sziasztok.

1 hete keresem a megoldást de nem találom, oxot miután leállítom mindenki kezdőre teleportál aki pl bent sincs oxon, farmol vagy valami és ha véget ér az ox mindenkit kezdőre visz.


Szia.
Lennél olyan kedves hogy ide biggyeszted a questet is?  ???

quest oxevent_manager begin
   state start begin
      when letter with pc.get_map_index()==113 begin
         send_letter("OX-Rendezvény elhagyása")
      end
      when button or info begin
         say_title("OX-Rendezvény elhagyása")
         say("Valóban el szeretnél menni a rendezvényről?")
         local s=select("Igen", "Nem")
         if s==2 then
            send_letter("OX-Rendezvény elhagyása")
            return
         end
         local empire = pc.get_empire()
         if empire== 1 then
            pc.warp(433300, 219600)
         elseif  empire == 2 then 
            pc.warp(431500, 209200)
         elseif  empire == 3 then
            pc.warp(439800, 211000)
         end
      end
      when 20011.chat."OX-Rendezvény" begin
         say_title(mob_name(20011)..":")
         if game.get_event_flag("oxevent_status") == 0 then
            say("Hé, te! Igen te!")
            say("Te intelligensnek tűnsz, de vajon az is vagy?")
            say("Ha okosnak érzed magad, bizonyítsd be!")
            say("Lehetőséged van megmutatni a világnak tudásod,")
            say("amikor OX esemény folyik.")
            say("Az OX egy különleges rendezvény, melyen mind a")
            say("három birodalom küzd meg egymás ellen, de ez a harc")
            say("az ész viadala! Ha buta vagy, ne járasd le magad,")
            say("akkor inkább csak nézd a profikat.")
            say("Én beteleportálhatlak de csak akkor ha a rendezvény")
            say("folyamatban van, ami jelenleg nem lehetséges.")
            say("")
         elseif game.get_event_flag("oxevent_status") == 1 then
            say("Az OX-Rendezvény már elindult!")
            say("Siess, ha be akarsz érni még mielőtt elindul a kvíz.")
            say_reward("Be szeretnél lépni az OX-Rendezvényre?")
            local s = select("Résztveszek", "Nézem", "Mégse")
            if s == 1 then
               say_title(mob_name(20011)..":")
               say("Oké, beregisztráltalak és máris teleportállak.")
               say("Sok sikert kívánok!")
               say("")
               wait()
               pc.warp(896500, 24600)
            elseif s == 2 then
               say_title(mob_name(20011)..":")
               say("Ahha látom valaki megfogadja a tanácsom.")
               say("Nem probléma, fejleszd tudásod és majd egyszer")
               say("próbáld meg te is az élmezőnyben is!")
               say("")
               say_reward("Máris teleportállak!")
               say("")
               wait()
               pc.warp(896300, 28900)
            end
         elseif game.get_event_flag("oxevent_status") == 2 then
            say("A kvíz kérdések már elindultak, sajnos már")
            say("nem tudlak résztvevőként beregisztrálni, de")
            say("nézőnek még bemehetsz.")
            say("")
            say_reward("Részt akarsz venni a rendezvényen nézőként?")
            say("")
            local s = select("Jó, legyen", "Nem, köszi")
            if s == 1 then
               say_title(mob_name(20011)..":")
               say("Ne csüggedj, majd legközelebb szerencséd lesz és")
               say("bekerülsz!")
               say("")
               say_reward("Máris teleportállak!")
               say("")
               wait()
               pc.warp(896300, 28900)
            end
         end
      end

      when 20358.chat."OX-Rendezvény" with pc.get_gm_level() == 5 and pc.get_map_index() == 113 begin
         local stat = oxevent.get_status()
         if stat == 0 then
            say_title("OX-Rendezvény")
            say("Jelenleg az OX-Rendezvény nem fut.")
            say("")
            say_reward("Akarod elindítani?")
            local s = select("Indítás", "Bezár")
            if s == 1 then
               local v = oxevent.open()
               if v == 0 then
                  say_title("OX-Rendezvény")
                  say("Hiba lépett fel az esemény megnyitása közben!")
                  say("")
               elseif v == 1 then
                  say_title("OX-Rendezvény")
                  say("Az OX-Rendezvény sikeresen elindítva!")
                  say("")

                  notice_all("<[`°*~-._ 1337 _.-~*°´]>")
                  notice_all("Az OX-Rendezvény megnyitotta kapuit!")
                  notice_all("Ne habozz, gyere és Játsz!")
                  notice_all("Menj Uriel-hez a regisztrációhoz!")
               else
                  say_title("OX-Rendezvény")
                  say("Ismeretlen hiba..")
                  say("")
               end
            end
         elseif stat == 1 then
            say_title("OX-Rendezvény")
            say(string.format("Jelenleg %d Játékos van a rendezvényen.", oxevent.get_attender()))
            say("A kvízkérdések elindításához le kell zárni")
            say("a rendezvényre való regisztrációt!")
            say("")
            say_reward("Lezárod a regisztrációt az OX-Rendezvényre?")
            say("")
            local s = select("Lezárom", "Nem zárom le")
            if s == 1 then
               say_title("OX-Rendezvény")
               oxevent.close()
               say("Lezártad a regisztrációt!")
               say("Már nem csatlakozhat a játékhoz egy játékos se.")
               say("A nézőtérre még léphetnek be emberek!")
               say("")
            end
         elseif stat == 2 then
            say_title("OX-Rendezvény")
            say("Válassz a lehetőségek közül:")
            say("")
            local s = select("Kérdés betöltés", "Rendezvény befejezése", "Bezár")
            if s == 1 then
               local v = oxevent.quiz(1, 30)
               say_title("OX-Rendezvény")
               if v == 0 then
                  say("A Rendezvény nem fut!")
                  say("")
               elseif v == 1 then
                  say("Elindult egy kérdés.")
                  say("")
               else
                  say("Ezt a kérdést már feltetted!")
                  say("")
               end
            elseif s == 2 then
               say_title("OX-Rendezvény")
               say("Az OX-Rendezvényt leállítottad!")
               say("")
               
               notice_all("<[`°*~-._ 1337 _.-~*°´]>")
               notice_all("AZ OX-Rendezvény végetért!")
               notice_all("Reméljük jól éreztétek magatokat a rendezvény alatt.")

               oxevent.end_event()
            end
         elseif stat == 3 then
            say_title("OX-Rendezvény")
            say("Státusz: Nincs kérdés...")
            say("Kérlek várj...")
            say("")
         else
            say_title("OX-Rendezvény")
            say("Hiba történt!")
         end
      end

      when 20358.chat."OX-Rendezvény leállítása" with pc.get_gm_level() == 5 and pc.get_map_index() == 113 and oxevent.get_status() >= 1 begin
         say_title("OX-Rendezvény")
         say("Szeretnéd leállítani az OX-Rendezvényt?")
         say("Ez hibát is okozhat!")
         say("")
         say_reward("Szeretnéd leállítani?")
         say("")
         local s = select("Igen", "Nem")
         if s == 1 then
            say_reward("Az OX-Rendezvény kényszerített leállítással leállt!")
            oxevent.end_event_force()
         end
      end

      when 20358.chat."OX Nyertes(ek) jutalmazása" with pc.get_gm_level() == 5 and pc.get_map_index() == 113 and oxevent.get_status() >= 1 begin
         say_title("OX-Rendezvény")
         say("Itt tudod megjutalmazni a rendezvény győzteseit.")
         say("")
         say_reward("Add meg a Tárgy ID-t:")
         say("")
         local item_vnum = input()
         say_title("OX-Rendezvény")
         say_reward("Add meg a Tárgy számát:")
         say("")
         local item_count = input()
         oxevent.give_item(item_vnum, item_count)
         local itemname = item_name(item_vnum)
         local name = pc.get_name()
         say("A győztes(ek) száma: "..oxevent.get_attender())
         say("")
         notice_all("<[`°*~-._ 1337 _.-~*°´]>")
         notice_all("A nyertes a következő díjat kapta meg:")
         notice_all(item_count.." darab "..itemname.."-t.")
      end
   end
end

2019-09-15, 18:08:54 #3 Utolsó szerkesztés: 2019-09-15, 18:35:39 Szerző: Chookez™
Próbáld meg így:
quest oxevent_manager begin
   state start begin
      when letter with pc.get_map_index()==113 begin
         send_letter("OX-Rendezvény elhagyása")
      end
      when button or info begin
         say_title("OX-Rendezvény elhagyása")
         say("Valóban el szeretnél menni a rendezvényről?")
         local s=select("Igen", "Nem")
         if s==2 then
            send_letter("OX-Rendezvény elhagyása")
            return
         end
if s == 1 then
if pc.get_empire()== 1 then
pc.warp(433300, 219600)
elseif pc.get_empire() == 2 then
pc.warp(431500, 209200)
elseif pc.get_empire() == 3 then
pc.warp(439800, 211000)
end
end
end
      when 20011.chat."OX-Rendezvény" begin
         say_title(mob_name(20011)..":")
         if game.get_event_flag("oxevent_status") == 0 then
            say("Hé, te! Igen te!")
            say("Te intelligensnek tűnsz, de vajon az is vagy?")
            say("Ha okosnak érzed magad, bizonyítsd be!")
            say("Lehetőséged van megmutatni a világnak tudásod,")
            say("amikor OX esemény folyik.")
            say("Az OX egy különleges rendezvény, melyen mind a")
            say("három birodalom küzd meg egymás ellen, de ez a harc")
            say("az ész viadala! Ha buta vagy, ne járasd le magad,")
            say("akkor inkább csak nézd a profikat.")
            say("Én beteleportálhatlak de csak akkor ha a rendezvény")
            say("folyamatban van, ami jelenleg nem lehetséges.")
            say("")
         elseif game.get_event_flag("oxevent_status") == 1 then
            say("Az OX-Rendezvény már elindult!")
            say("Siess, ha be akarsz érni még mielőtt elindul a kvíz.")
            say_reward("Be szeretnél lépni az OX-Rendezvényre?")
            local s = select("Résztveszek", "Nézem", "Mégse")
            if s == 1 then
               say_title(mob_name(20011)..":")
               say("Oké, beregisztráltalak és máris teleportállak.")
               say("Sok sikert kívánok!")
               say("")
               wait()
               pc.warp(896500, 24600)
            elseif s == 2 then
               say_title(mob_name(20011)..":")
               say("Ahha látom valaki megfogadja a tanácsom.")
               say("Nem probléma, fejleszd tudásod és majd egyszer")
               say("próbáld meg te is az élmezőnyben is!")
               say("")
               say_reward("Máris teleportállak!")
               say("")
               wait()
               pc.warp(896300, 28900)
            end
         elseif game.get_event_flag("oxevent_status") == 2 then
            say("A kvíz kérdések már elindultak, sajnos már")
            say("nem tudlak résztvevőként beregisztrálni, de")
            say("nézőnek még bemehetsz.")
            say("")
            say_reward("Részt akarsz venni a rendezvényen nézőként?")
            say("")
            local s = select("Jó, legyen", "Nem, köszi")
            if s == 1 then
               say_title(mob_name(20011)..":")
               say("Ne csüggedj, majd legközelebb szerencséd lesz és")
               say("bekerülsz!")
               say("")
               say_reward("Máris teleportállak!")
               say("")
               wait()
               pc.warp(896300, 28900)
            end
         end
      end

      when 20358.chat."OX-Rendezvény" with pc.get_gm_level() == 5 and pc.get_map_index() == 113 begin
         local stat = oxevent.get_status()
         if stat == 0 then
            say_title("OX-Rendezvény")
            say("Jelenleg az OX-Rendezvény nem fut.")
            say("")
            say_reward("Akarod elindítani?")
            local s = select("Indítás", "Bezár")
            if s == 1 then
               local v = oxevent.open()
               if v == 0 then
                  say_title("OX-Rendezvény")
                  say("Hiba lépett fel az esemény megnyitása közben!")
                  say("")
               elseif v == 1 then
                  say_title("OX-Rendezvény")
                  say("Az OX-Rendezvény sikeresen elindítva!")
                  say("")

                  notice_all("<[`°*~-._ 1337 _.-~*°´]>")
                  notice_all("Az OX-Rendezvény megnyitotta kapuit!")
                  notice_all("Ne habozz, gyere és Játsz!")
                  notice_all("Menj Uriel-hez a regisztrációhoz!")
               else
                  say_title("OX-Rendezvény")
                  say("Ismeretlen hiba..")
                  say("")
               end
            end
         elseif stat == 1 then
            say_title("OX-Rendezvény")
            say(string.format("Jelenleg %d Játékos van a rendezvényen.", oxevent.get_attender()))
            say("A kvízkérdések elindításához le kell zárni")
            say("a rendezvényre való regisztrációt!")
            say("")
            say_reward("Lezárod a regisztrációt az OX-Rendezvényre?")
            say("")
            local s = select("Lezárom", "Nem zárom le")
            if s == 1 then
               say_title("OX-Rendezvény")
               oxevent.close()
               say("Lezártad a regisztrációt!")
               say("Már nem csatlakozhat a játékhoz egy játékos se.")
               say("A nézőtérre még léphetnek be emberek!")
               say("")
            end
         elseif stat == 2 then
            say_title("OX-Rendezvény")
            say("Válassz a lehetőségek közül:")
            say("")
            local s = select("Kérdés betöltés", "Rendezvény befejezése", "Bezár")
            if s == 1 then
               local v = oxevent.quiz(1, 30)
               say_title("OX-Rendezvény")
               if v == 0 then
                  say("A Rendezvény nem fut!")
                  say("")
               elseif v == 1 then
                  say("Elindult egy kérdés.")
                  say("")
               else
                  say("Ezt a kérdést már feltetted!")
                  say("")
               end
            elseif s == 2 then
               say_title("OX-Rendezvény")
               say("Az OX-Rendezvényt leállítottad!")
               say("")
               
               notice_all("<[`°*~-._ 1337 _.-~*°´]>")
               notice_all("AZ OX-Rendezvény végetért!")
               notice_all("Reméljük jól éreztétek magatokat a rendezvény alatt.")

               oxevent.end_event()
            end
         elseif stat == 3 then
            say_title("OX-Rendezvény")
            say("Státusz: Nincs kérdés...")
            say("Kérlek várj...")
            say("")
         else
            say_title("OX-Rendezvény")
            say("Hiba történt!")
         end
      end

      when 20358.chat."OX-Rendezvény leállítása" with pc.get_gm_level() == 5 and pc.get_map_index() == 113 and oxevent.get_status() >= 1 begin
         say_title("OX-Rendezvény")
         say("Szeretnéd leállítani az OX-Rendezvényt?")
         say("Ez hibát is okozhat!")
         say("")
         say_reward("Szeretnéd leállítani?")
         say("")
         local s = select("Igen", "Nem")
         if s == 1 then
            say_reward("Az OX-Rendezvény kényszerített leállítással leállt!")
            oxevent.end_event_force()
         end
      end

      when 20358.chat."OX Nyertes(ek) jutalmazása" with pc.get_gm_level() == 5 and pc.get_map_index() == 113 and oxevent.get_status() >= 1 begin
         say_title("OX-Rendezvény")
         say("Itt tudod megjutalmazni a rendezvény győzteseit.")
         say("")
         say_reward("Add meg a Tárgy ID-t:")
         say("")
         local item_vnum = input()
         say_title("OX-Rendezvény")
         say_reward("Add meg a Tárgy számát:")
         say("")
         local item_count = input()
         oxevent.give_item(item_vnum, item_count)
         local itemname = item_name(item_vnum)
         local name = pc.get_name()
         say("A győztes(ek) száma: "..oxevent.get_attender())
         say("")
         notice_all("<[`°*~-._ 1337 _.-~*°´]>")
         notice_all("A nyertes a következő díjat kapta meg:")
         notice_all(item_count.." darab "..itemname.."-t.")
      end
   end
end


Egyébként a hiba szerintem innen eredt: (Bár semmi sem biztos.)  :o
quest oxevent_manager begin
   state start begin
      when letter with pc.get_map_index()==113 begin
         send_letter("OX-Rendezvény elhagyása")
      end
      when button or info begin
         say_title("OX-Rendezvény elhagyása")
         say("Valóban el szeretnél menni a rendezvényről?")
         local s=select("Igen", "Nem")
         if s==2 then
            send_letter("OX-Rendezvény elhagyása")
            return
         end
         local empire = pc.get_empire()
         if empire== 1 then
            pc.warp(433300, 219600)
         elseif  empire == 2 then 
            pc.warp(431500, 209200)
         elseif  empire == 3 then
            pc.warp(439800, 211000)
         end
      end

2019-09-15, 19:28:49 #4 Utolsó szerkesztés: 2019-09-15, 19:32:55 Szerző: trodhenta
Chookez, nem az  a hiba. a pc.get.empire függvény a te  saját karaktered birodalmát kérdezi le, és téged teleportál ki.



oxevent.end_event()  vagy oxevent.end_event_force()

Ezeket a függvényeket kell átnézni.
Úgy kellene lennie hogy lekéri minden játékosnak a map index-ét tehát hogy hol tartózkodik, és ha = ox map_index-el, akkor kiteleportálja őket.

Vagy egy tömbbe eltárolni a player id-kat, akik az ox mappon tartózkodnak, majd a tömbön végigfutva az id-ket, kiteleportálná őket a rendszer, és a tömb az természetesen úgy ürülne.
Ha segítettem vagy akármi érted, akkor a +-t elfogadom.