Counter

» Siedler Map Source Forum » Siedler DEdK Script Forum » Counter

Seiten: 1

LolBroX
#1
06.10.2015 17:00
Beiträge: 49

Counter

Hallo,
ich habe probleme mit den Countern, die man nicht sieht. Ich hab folgendes eingefügt:

EP = 0
StartSimpleJob("GiveEP")
StartSimpleJob("Heimatlieferung")

function GiveEP()
 EP = EP + 1
end

function Heimatlieferung()

end



Mein Problem ist, dass ich nicht weiß, wie man machen kann, dass wenn mindestens EP = 750 ist, dass dann eine Message kommt:

Message("Ihr koennt euch bei eurem Hafen eine Heimatstadtlieferung bestellen!")



Kann mir da jemand helfen?

____________________
#nobody #cares #about #your #hashtags

Zedeg
#2
06.10.2015 17:03
Beiträge: 428

Variante 1 mit Variablen:

EP = 0
StartSimpleJob("GiveEP")
--StartSimpleJob("Heimatlieferung") --unnötig

function GiveEP()
    EP = EP + 1
    if EP == 750 then
        Heimatlieferung()
        return true
    end
end

function Heimatlieferung()
    Message("Ihr koennt euch bei eurem Hafen eine Heimatstadtlieferung bestellen!")
end


Variante 2 mit Counter:

--EP = 0
--StartSimpleJob("GiveEP")
StartSimpleJob("Heimatlieferung")

function GiveEP()
end

function Heimatlieferung()
    if Counter.Tick2("EP", 750) then
        Message("Ihr koennt euch bei eurem Hafen eine Heimatstadtlieferung bestellen!")
        return true
    end
end



____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

LolBroX
#3
06.10.2015 17:06
Beiträge: 49

Danke Zedeg, aber das Problem ist, dass man durch das Bauen & Zerstören von Gebäuden auch EP bekommt. So kann man auch EP = 766 haben. Deswegen habe ich da Probleme.

____________________
#nobody #cares #about #your #hashtags

Zedeg
#4
06.10.2015 17:18
Beiträge: 428

Kein Problem. Dann nehmen wir eben Variante 1 :

EP = 0
StartSimpleJob("GiveEP")

function GiveEP()
    EP = EP + 1
    if EP >= 750 then -- größer-gleich
        Heimatlieferung()
        return true
    end
end

function Heimatlieferung()
    Message("Ihr koennt euch bei eurem Hafen eine Heimatstadtlieferung bestellen!")
end



____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

LolBroX
#5
08.10.2015 19:36
Beiträge: 49

Danke Zedeg, aber wenn man dann EP = 1500 hat, dann sagt es ja nicht, dass eine zweite Heimatlieferung erlaubt ist. Und wenn man sich alle Lieferungen aufhebt, dann ist es auch ziemlich aufwendig über 20 SimpleJobs mit immer die vorherige Zahl +750 zu erstellen. Würde es dann auch gehen mit:

EP = 0
Lieferung = 0
StartSimpleJob("GiveEP")
StartSimpleJob("Liefern")

function GiveEP()
    EP = EP + 1
    if EP >= 750 then -- größer-gleich
       Lieferung = Lieferung + 1
       EP = EP - 750
    end
end


function Liefern()
    if Lieferung == 1 then -- größer-gleich
       Heimatlieferung()
       return true
    end  
end

function Heimatlieferung()
    Message("Ihr koennt euch bei eurem Hafen eine Heimatstadtlieferung bestellen!")
end



Ich benutze das Auftrags Menü nicht, also könnte ich machen, dass da die Lieferungs & EP Anzahl angezeigt wird.

____________________
#nobody #cares #about #your #hashtags

Zedeg
#6
08.10.2015 20:02
Beiträge: 428

Zitat von LolBroX:
Würde es dann auch gehen mit:

Nein. Der Job Liefern (eh unnötig) wird beendet, sobald Lieferung = 1 ist. Da ich nicht weiß, wie deine Heimatstadtlieferung aufgebaut ist, kann ich nicht viel genaues dazu sagen. Ich nehme jetzt einfach einmal an, dass es eine Aktion ist, die vom Spieler extra aufgerufen werden muss. Dann wäre der Ansatz mit der zweiten Variable richtig.

Zitat von LolBroX:
Ich benutze das Auftrags Menü nicht, also könnte ich machen, dass da die Lieferungs & EP Anzahl angezeigt wird.

Zeige es doch einfach direkt oben links an.

EP = 0
Lieferung = 0
StartSimpleJob("GiveEP")

function GiveEP()
    EP = EP+1
    XGUIEng.SetText("TopMainMenuTextButton", Umlaute("Menü @cr @cr @cr EP: @cr Lieferungen:"))
    XGUIEng.SetText("TopDiplomacyMenuTextButton", Umlaute("Dipl. @cr @cr @cr "..EP+Lieferungen*750.." @cr "..Lieferungen))
    if EP >= 750 then
       Lieferung = Lieferung+1
       Heimatlieferung()
       EP = EP-750
    end
end

function Heimatlieferung()
    Message("Ihr koennt euch bei eurem Hafen eine Heimatstadtlieferung bestellen!")
end



____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

Dieser Beitrag wurde von Zedeg am 08.10.2015 um 20:07 editiert.

LolBroX
#7
09.10.2015 15:22
Beiträge: 49

Bei mir werden die Heimatstadtlieferungen in der Uni geholt (Model & Widgets geändert). Kann man auch die Diplomatie oben rechts anzeigen?
z.B.:
Team 1:
@colorBlue "Playername"
@colorGreen Sueleyman
@colorPurple Friedrich der Grosse

Team 2:
@colorRed Koenigin Elisabeth
@colorLightBlue Iwan der Schreckliche
@colorPink Napoleon


Ich weiß nicht welche Farbe welcher Code ist, also hab ich nur die Farbe angegeben.

____________________
#nobody #cares #about #your #hashtags

mcb
#8
09.10.2015 17:40
Beiträge: 1472

Generell geht das genauso. Einfach das ganze zu einem string zusammenbauen und über XGUIEng.SetText setzen. (Dabei Umlaute und den Originaltext nicht vergessen)
Beispiel (für die ersten 2 Spieler):

"Team1: @cr @color:"..table.concat({GUI.GetPlayerColor(1)},",").." "..UserTool_GetPlayerName(1)..
" @cr @color:"..table.concat({GUI.GetPlayerColor(2)},",").."Sueleyman"


Dabei ergibt table.concat({GUI.GetPlayerColor(1)},"," ) genau den Farbcode für Spieler 1 und UserTool_GetPlayerName(1) lädt den Spielernamen (normalerweise Spieler).

LolBroX
#9
11.10.2015 16:35
Beiträge: 49

OK, danke!

____________________
#nobody #cares #about #your #hashtags

Seiten: 1

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

Impressum