Kleine Frage

» Siedler Map Source Forum » Siedler DEdK Script Forum » Kleine Frage

Seiten: 1

Der_Deutsche
#1
07.10.2018 18:13
Beiträge: 349

Kleine Frage

Heyy,
ich melde mich seit langem wieder in diesem Bereich mal.

Meine Frage ist, wird ein SimpleJob Beendet, wenn die dort
drin eingetragende Aktion ausgeführt wird? Wenn nein wie kann
man dann ein SimpleJob deaktivieren.

____________________
Nachbau von Siedler 5 Lobbys "Ubi.Com"

Updatelösungen Siedler 5 Patch 1.06

Creators Update Lösung Windows 10 Siedler 5

mcb
#2
07.10.2018 18:21
Beiträge: 1472

Der Sinn von einem SimpleJob ist es ja gerade, etwas jede Sekunde ausführen zu lassen, er wird also nicht nach einmaiger Ausführung beendet. Er wird beendet, wenn die Aufgerufene Funktion true zurückgibt, oder du EndJob aufrufst:

function foo()
   if i==1 then
      return true
   end
end
StartSimpleJob("foo")


function foo()
   if i==1 then
      EndJob(bar)
   end
end
bar = StartSimpleJob("foo")

Der_Deutsche
#3
07.10.2018 18:52
Beiträge: 349

Ah ok danke, da kommt mir die Frage in den Sinn, wie man etwas nur alle 5 Minuten abfragen kann. Ich weiß nämlich nicht ob es in Lua wie in Java scheduels gibt

____________________
Nachbau von Siedler 5 Lobbys "Ubi.Com"

Updatelösungen Siedler 5 Patch 1.06

Creators Update Lösung Windows 10 Siedler 5

mcb
#4
07.10.2018 19:09
Beiträge: 1472

Schedules müsstest du dir selbst basteln, geht aber auch einfacher:

function foo()
   if Counter.Tick2("someRandomString", 5*60) then
      bar()
   end
end



(Counter ist praktisch eine Zählvariable, was dann auf 5 Minuten rausläuft, wenn sie vom SJ jede Sekunde aufgerufen wird)

(Alternativ kannst du über Logic.GetTime() die Zeit erfragen, seit der die Map gestartet wurde (Ingame-Zeit) oder über XGUIEng.GetSystemTime() die Zeit, seit der Siedler läuft (Realzeit))

SH
#5
07.10.2018 22:12
Beiträge: 127

Zitat von mcb:

function foo()
   if Counter.Tick2("someRandomString", 5*60) then
      bar()
   end
end





Why it must be a random string? What does it do?

____________________
Sorry for my German

mcb
#6
07.10.2018 22:27
Beiträge: 1472

You can use whatever you want there, it just has to be unique. Counter identifies its global variable with this string (it gets used as table key).

SH
#7
08.10.2018 16:07
Beiträge: 127

OK, I didn't know it. When I used Counter.Tick2 I just entered the job name.

____________________
Sorry for my German

mcb
#8
08.10.2018 17:43
Beiträge: 1472

Using the job name works fine, as long as you don't start a job more than once.

Der_Deutsche
#9
08.10.2018 18:05
Beiträge: 349

At a String you can write any what do you want Dick you can use mam and anymore

____________________
Nachbau von Siedler 5 Lobbys "Ubi.Com"

Updatelösungen Siedler 5 Patch 1.06

Creators Update Lösung Windows 10 Siedler 5

Seiten: 1

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum