Archivierte Modifikationen > [SuM 1½] Ankündigungen und Diskussion

[SuM 1½] Unterstützung für KI-Erstellung gesucht

<< < (4/7) > >>

Rimli:
Das mit der Flag hab ich auch schon probiert und das funzt aus dem selben Grund nicht:

Wenn die Kaserne zerstört ist ist "Player_1_Building_Plot_3 _1" nicht mehr vorhanden und die neue Kaserne kann die Referenz nichtübernehmen -> Flag ist immer noch False -> Kaserne wird aufgebaut, obwohl schon eine wieder gebaut wurde -> mit der Zeit unendlich viele Kasernen auf einem Bauplatz

Reshef:
Warum kann den die neue Kaserne nicht genauso heissen?
Zb beim spawnen von Einheiten, können nie 2 einheiten gleichen namens existieren. Wenn aber nun der eine Trupp tot ist, kann wieder ein neuer gleichen namens gespawnt werden.
Ist das beim bauen nicht das selbe?

Rimli:
Hallo Resh!

Also ich hab die Skripte jetzt bisschen umgeändert und es funktioniert jetzt! Anscheinend hast du recht, die neue Kaserne kann genauso heißen. Jedoch hab ich das bei meinen vorherigen Scripts irgendwie nie hinbekommen (man muss höllisch aufpassen mit "deactivate upon success" und "is active") aber so funktioniert es jetzt:


--- Code: ---Plot 3 - Build Gondor Barracks (active, deactivate upon success)
*** IF ***
True.
*** THEN ***
   Player '<This Player>' gets $ 350
  Build building 'GondorBarracks' at a foundationUnit 'Gondor_Player_1_BP_3'
  Set timer 'Rebuild_Plot_3' to expire in 60.00 seconds.
  Find unnamed 'GondorBarracks' Owned by Player '<This Player>' nearest team Team 'PlyrCivilian/Start_Team' and reference as UnitRef 'Player_1_Building_Plot_3_1'

Plot 3 - Destroyed Building  (active, NOT deactivate upon success)
*** IF ***
Timer 'Rebuild_Plot_3' has expired.
*AND*  Unit 'Player_1_Building_Plot_3_1' has been destroyed.
*** THEN ***
  Enable Script 'Plot 3 - Start Rebuild Building'.
  Set timer 'Rebuild_Plot_3_Do_The_Work' to expire between 30.00 and 90.00 seconds.
  Set timer 'Rebuild_Plot_3' to expire in 120.00 seconds.

Plot 3 - Start Rebuild Building (NOT active, deactivate upon success)
*** IF ***
Timer 'Rebuild_Plot_3_Do_The_Work' has expired.
*** THEN ***
  Enable Script 'Plot 3 - Rebuild Building'.

Plot 3 - Rebuild Building (NOT active, NOT deactivate upon success)
*** IF ***
Counter 'Player_1_money' IS Greater Than or Equal To  350
*** THEN ***
  Build building 'GondorBarracks' at a foundationUnit 'Gondor_Player_1_BP_3'
  Set timer 'Rebuild_Plot_3' to expire in 60.00 seconds.
  Find unnamed 'GondorBarracks' Owned by Player '<This Player>' nearest team Team 'PlyrCivilian/Start_Team' and reference as UnitRef 'Player_1_Building_Plot_3_1'
  Disable Script 'Plot 3 - Rebuild Building'.
--- Ende Code ---

Ich speichere das Geld des Spielers durch ein seperates Skript, das ständig ausgeführt wird, in einem Counter. Gibt's da ne bessere Möglichkeit, der Counter ist nämlich leider nicht immer ganz genau, da ja Geld ausgegeben werden kann kurz bevor das Skript dies im Counter aktualisiert. Die Folge wäre, dass das RebuildSkript inaktiv wäre, ohne dass ein Gebäude hätte gebaut werden können.

Reshef:

--- Code: ---*** IF ***
    True.
*** THEN ***
  Store amount of  Player 'Player_1' money to the counter 'Geld'
--- Ende Code ---
Sowas? Müsstest du nurnoch jedes Frame ausführen.

Rimli:
Jo genau.

Mach ich jetzt auch:

--- Code: ---*** IF ***
    True.
*** THEN ***
  Store amount of  Player '<This Player>' money to the counter 'Players_money'
  Show 'Players_money' with text Localized String: 'Players Money'
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln