Szerző Téma: Reggel /Este automatika.  (Megtekintve 561 alkalommal)

Nem elérhető isolator05

  • Intermediate
  • **
  • Thank You
  • -Given: 0
  • -Receive: 78
  • Hozzászólások: 233
  • Segített: 77
Reggel /Este automatika.
« 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.
Ha segítettem ne sajnáld a + t.

Nem elérhető Chookez™

  • Intermediate
  • **
  • Thank You
  • -Given: 16
  • -Receive: 33
  • Hozzászólások: 173
  • Segített: 46
  • めヴィジャ
Re:Reggel /Este automatika.
« Válasz #1 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.
Soha sem fogod megkapni, amit akarsz, ha nem harcolsz érte.

#Visszavonult#Fórum#Lakó

Nem elérhető isolator05

  • Intermediate
  • **
  • Thank You
  • -Given: 0
  • -Receive: 78
  • Hozzászólások: 233
  • Segített: 77
Re:Reggel /Este automatika.
« Válasz #2 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 ?
Ha segítettem ne sajnáld a + t.

Nem elérhető Chookez™

  • Intermediate
  • **
  • Thank You
  • -Given: 16
  • -Receive: 33
  • Hozzászólások: 173
  • Segített: 46
  • めヴィジャ
Re:Reggel /Este automatika.
« Válasz #3 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
Soha sem fogod megkapni, amit akarsz, ha nem harcolsz érte.

#Visszavonult#Fórum#Lakó

Nem elérhető isolator05

  • Intermediate
  • **
  • Thank You
  • -Given: 0
  • -Receive: 78
  • Hozzászólások: 233
  • Segített: 77
Re:Reggel /Este automatika.
« Válasz #4 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.
« Utoljára szerkesztve: 2018-11-23, 06:38:11 írta isolator05 »
Ha segítettem ne sajnáld a + t.

Nem elérhető Deangerious

  • Trainee
  • *
  • Thank You
  • -Given: 43
  • -Receive: 13
  • Hozzászólások: 122
  • Segített: 10
Re:Reggel /Este automatika.
« Válasz #5 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

Nem elérhető Distraught

  • Professional
  • ***
  • Thank You
  • -Given: 102
  • -Receive: 313
  • Hozzászólások: 521
  • Segített: 265
  • GothBoiClique
    • Facebook
Re:Reggel /Este automatika.
« Válasz #6 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.

Nem elérhető hunti

  • Trainee
  • *
  • Thank You
  • -Given: 0
  • -Receive: 8
  • Hozzászólások: 74
  • Segített: -2
Re:Reggel /Este automatika.
« Válasz #7 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.

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.
« Utoljára szerkesztve: 2018-12-03, 18:14:23 írta hunti »