Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: zuraht11 Dátum 2018-01-25, 22:00:49

Cím: pvp rendszer
Írta: zuraht11 Dátum 2018-01-25, 22:00:49
Sziasztok!
Segítséget szeretnék kérni.
Találtam egy pvp-rendszer questet
quest pvp_rendszer begin
   state start begin
      when kill with npc.is_pc() begin
            local ute,hans = pc.get_vid(), npc.get_vid()
            pc.select(hans)
            local killed_name = pc.get_name()
            pc.select(ute)
         if get_time() < pc.getqf("waitingtime"..tostring((npc.get_vid()))) then
            chat("Nem kaptál pontot "..killed_name.." megöléséért!")
            return
         else
            if pc.getqf("killedtimes"..npc.get_vid()) >= 0 then
               pc.setqf("waitingtime"..npc.get_vid(), get_time()+1*60*60)
               pc.setqf("killedtimes"..npc.get_vid(), 0)
               chat("Következő 1 órában nem kapsz PvP pontot "..killed_name.." megöléséért!")
            else
               chat("Sikeresen megölted "..killed_name.." játékost!")
               chat("Felhasználódra sikeresen jóváírtuk a szükséges pontot!")
               local DB_FH = "root"
               local DB_JS = "NAVICAT JELSZAVAD"
               local ID = pc.get_account_id()
               local QUERY = "UPDATE account.account SET pvppont = pvppont + 1 WHERE id = "..ID..";"
               os.execute("mysql --host=IPCIMED --user="..DB_FH.." --password="..DB_JS.." --execute='"..QUERY.."'")
               pc.setqf("killedtimes"..npc.get_vid(), pc.getqf("killedtimes"..npc.get_vid())+1)
            end
         end
      end
   end
end


Ezt a questet hogyan lehet berakni külön 1db mapra?
Itt arra gondolok,hogy ne az összes mapon lehessen ütni a pontot hanem csak 1db mapon.
Segítségeteket előre is köszönöm.
Cím: Re:pvp rendszer
Írta: gife974 Dátum 2018-01-25, 22:29:30
Parancsolj:
quest pvp_rendszer begin
   state start begin
      when kill with npc.is_pc() and pc.get_map_index() == MAPINDEX begin
            local ute,hans = pc.get_vid(), npc.get_vid()
            pc.select(hans)
            local killed_name = pc.get_name()
            pc.select(ute)
         if get_time() < pc.getqf("waitingtime"..tostring((npc.get_vid()))) then
            chat("Nem kaptál pontot "..killed_name.." megöléséért!")
            return
         else
            if pc.getqf("killedtimes"..npc.get_vid()) >= 0 then
               pc.setqf("waitingtime"..npc.get_vid(), get_time()+1*60*60)
               pc.setqf("killedtimes"..npc.get_vid(), 0)
               chat("Következő 1 órában nem kapsz PvP pontot "..killed_name.." megöléséért!")
            else
               chat("Sikeresen megölted "..killed_name.." játékost!")
               chat("Felhasználódra sikeresen jóváírtuk a szükséges pontot!")
               local DB_FH = "root"
               local DB_JS = "NAVICAT JELSZAVAD"
               local ID = pc.get_account_id()
               local QUERY = "UPDATE account.account SET pvppont = pvppont + 1 WHERE id = "..ID..";"
               os.execute("mysql --host=IPCIMED --user="..DB_FH.." --password="..DB_JS.." --execute='"..QUERY.."'")
               pc.setqf("killedtimes"..npc.get_vid(), pc.getqf("killedtimes"..npc.get_vid())+1)
            end
         end
      end
   end
end


Értelem szerűen a MAPINDEX helyére írod a kívánt pálya mapindexét.
Cím: Re:pvp rendszer
Írta: udvatt108 Dátum 2018-01-25, 22:30:09
Ez a segítségedre lesz benne, nyilván ez nem minden, de ezzel kikérheted a mapindexet a megfelelő módon, majd egy "if" statementel ellenőrzöd, hogy egyezik e az általad megadott map indexel és csak akkor írsz jóvá pontot.
pc.get_map_index()
Cím: Re:pvp rendszer
Írta: zuraht11 Dátum 2018-01-25, 22:37:48
Nagyon szépen köszönöm!!!
2 hete próbálkozok vele.
EhPortal 1.39 © 2025, WebDev