Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: isolator05 Dátum 2018-11-21, 07:24:33

Cím: Reggel /Este automatika.
Írta: isolator05 Dátum 2018-11-21, 07:24:33
Sziasztok.
Egy olyan furcsa dolgot szeretnék megoldani, hogy a szerver órájához kellene 1 quest ami ki be kapcsolgatja a napalt és éjszakát.
Pl: 07:00 -tól reggel, 19:00 -tól éjszaka.
Sehol nem találok ilyesféle questet csak olyat aminél nekem kel megadni hogy mikor legyen reggel vagy este.
Gondolom elég fura kérés. De meg lehet oldani? Ha meg akkor hogyan?
Válaszokat előre is köszönöm.
Cím: Re:Reggel /Este automatika.
Írta: Chookez Dátum 2018-11-21, 07:37:45
Szia.

Ezzel próbáltad már?
https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1471500-release-funktionierte-tag-und-nacht-quest.html

Annyi hogy meg kell adnod a questben, mikor váltson át, aztán a szerver ideje szerint azt automatikusan elvégzi.
Cím: Re:Reggel /Este automatika.
Írta: isolator05 Dátum 2018-11-21, 14:46:48
Köszönöm.
Kipróbáltam de sajna nem sikerült.
quest daymode begin
state start begin
function funktion()
local text = {
-------Guten Morgen Texte
{"Jó reggelt, ideje felkelni."},
{"Csengő csengő csengetés, felkelni!"},
-------Guten Abend Texte
{"Szóval, ideje aludni. A csapat kellemes éjszakát kíván."},
{"Játékosok itt az ideje, hogy lefeküdjetek."},
}
local zufall = number(1, 2)
local zufalle = number(3, 4)

local morgentext = text[zufall][1]
local abendtext = text[zufalle][1]
local clockk = os.date ("%H")
if clockk >= "19" and game.get_event_flag("eclipse") == 0 then
notice_all(""..abendtext.."")
game.set_event_flag("eclipse", 1 )
elseif clockk >= "07" and game.get_event_flag("eclipse") == 1 then
notice_all(""..morgentext.."")
game.set_event_flag("eclipse", 0 )
end
end

when login or levelup or logout begin
daymode.funktion()
end

end
end

Az időt így módosítottam. Amikor aktiválom /e eclipse 1 akkor elsötétül, pedig csak nappal van. sajna nem tudom kipróbálni hogy vált e mert csak órát lehet benne megadni. Esetleg percet hogyan lehetne megadni csak próba képpen ?
Cím: Re:Reggel /Este automatika.
Írta: Chookez Dátum 2018-11-21, 16:31:55
Csak a lényeget szedd ki belőle.
when login or letter or kill begin
local machine_time = os.date("%X");
if (machine_time == "13:00:00") then
game.set_event_flag("test_event1", 1);

elseif (machine_time == "16:00:00") then
game.set_event_flag("test_event1", 0);
end -- if/elseif
end -- when
Cím: Re:Reggel /Este automatika.
Írta: isolator05 Dátum 2018-11-23, 05:35:16
Sikerült megcsinálnom.
Köszönet érte.
Már csak 1 kis hiba van vele:
quest daymode begin
state start begin
when login or letter or kill begin
local machine_time = os.date("%H:%M");
if machine_time >= ("08:00") and game.get_event_flag("napszak") == 0 then
game.set_event_flag("napszak", 0)
command("\x 0")
notice_all("Bakker Reggel van")

elseif machine_time <= ("08:00") and game.get_event_flag("napszak") == 1 then
game.set_event_flag("napszak", 1)
command("\x 1")
notice_all("Bakker este van")
end -- if/elseif
end -- when

end
end


Folyamatosan lefut minden eggyes ölésnél.
Hogyan tudom ezt kiküszöbölni hogy ha már aktív akkor már töbször ne ismétlődjön meg.
Cím: Re:Reggel /Este automatika.
Írta: Deangerious Dátum 2018-11-23, 07:03:19
Ezt a részt:
when login or letter or kill begin

nyilván lecseréled erre, logikus módon...:
when login or letter begin
Cím: Re:Reggel /Este automatika.
Írta: Distraught Dátum 2018-11-23, 12:36:29
Minden loginnál le akarod futtatni? Miért kell bevonni a szervert? Célszerűbb csak a kliensben megoldani a felhasználó gépének ideje alapján.
Cím: Re:Reggel /Este automatika.
Írta: hunti Dátum 2018-12-03, 18:12:24
Az a probléma vele, hogy if-nél game.get_event_flag("napszak") == 0 van megadva, és utána nullára állítod ismét az értékét game.set_event_flag("napszak", 0) -el (ugyanez a másiknál if-nél 1 és set 1).
Semmi mást nem kell változtatni, csak hogy az if-nél és utána a set_event_flag -ben különböző értékek legyenek mindkét esetben.

Idézetet írta: isolator05 Dátum 2018-11-23, 05:35:16
Sikerült megcsinálnom.
Köszönet érte.
Már csak 1 kis hiba van vele:
quest daymode begin
state start begin
when login or letter or kill begin
local machine_time = os.date("%H:%M");
if machine_time >= ("08:00") and game.get_event_flag("napszak") == 0 then
game.set_event_flag("napszak", 0)
command("\x 0")
notice_all("Bakker Reggel van")

elseif machine_time <= ("08:00") and game.get_event_flag("napszak") == 1 then
game.set_event_flag("napszak", 1)
command("\x 1")
notice_all("Bakker este van")
end -- if/elseif
end -- when

end
end


Folyamatosan lefut minden eggyes ölésnél.
Hogyan tudom ezt kiküszöbölni hogy ha már aktív akkor már töbször ne ismétlődjön meg.
EhPortal 1.39 © 2025, WebDev