Settlers United Wiki
Settlers UnitedImprint
Settler IV Lua API DE
Settler IV Lua API DE
  • Tutorials
    • Einführung
    • SU Library
    • Erste Schritte
      • Einrichtung & HelloWorld
      • Einstieg: new_game
      • Events: register_functions
      • Siegbedingungen anpassen
    • Erweiterte Tipps
      • Die Vars.Save Variablen
      • Moderner Lua Compiler
      • S4Editor Export Path Changer
      • Anticheat
      • Löschen aller Gebäude
      • Platzieren von Gebäuden
    • Code Schnipsel
      • Soldatenanzahl ermitteln
      • Random innerhalb Bereich
      • Verbesserte Zufallszahlen
      • Neue Minute angebrochen
      • Round & Modulo
      • All Points in a circle (hexagon)
      • foreach_ext
      • Textnachricht nur für einen Spieler
      • Mehr als 8 Waren spawnen
    • Community Bibliotheken
      • MinuteEvents-Library
      • VarsSave-Extender
      • Ground-Library
    • Vollständige Mapscripts
      • Siedler IV WM 2021 "The Woods"
      • Turnier Map Script 2vs2 2022
  • Library Functions
    • Global Functions
      • new_game
      • reg_func
      • register_functions
      • request_event
      • unrequest_event
    • AI
      • AI.AttackNow
      • AI.DarkTribeUseDarkGardeners
      • AI.DarkTribeUseShamans
      • AI.NewSquad
      • AI.SetPlayerVar
    • Buildings
      • Buildings.AddBuilding
      • Buildings.Amount
      • Buildings.CrushBuilding
      • Buildings.Delete
      • Buildings.ExistsBuildingInArea
      • Buildings.GetFirstBuilding
      • Buildings.GetInhabitantAmount
      • Buildings.GetTarget
      • Buildings.IsSelected
    • DarkTribe
      • DarkTribe.AddManakopter
      • DarkTribe.FlyTo
    • Debug
      • Debug.AccessViolation
      • Debug.ActivateAI
      • Debug.DeactivateAI
      • Debug.FatalError
      • Debug.Freeze
      • Debug.MakeDark
      • Debug.MakeGreen
    • Effects
      • Effects.AddEffect
    • Game
      • Game.ArePlayerAreasConnected
      • Game.DefaultGameEndCheck
      • Game.DefaultPlayerLostCheck
      • Game.DefaultPlayersLostCheck
      • Game.DisableLastNPlayersInStatistic
      • Game.EnableLandExploredCheck
      • Game.EnemyPlayersLost
      • Game.FindAnyUnit
      • Game.GetAmountOfTreesInArea
      • Game.GetDifficulty
      • Game.GetNumberOfSquaresWithDarkLand
      • Game.GetOffenceFightingStrength
      • Game.HasPlayerLost
      • Game.IsAlmostAllLandExplored
      • Game.IsAreaDarkLand
      • Game.IsAreaGreen
      • Game.IsAreaOwned
      • Game.LocalPlayer
      • Game.NumberOfPlayers
      • Game.PlayerLost
      • Game.PlayerRace
      • Game.Random
      • Game.Random100
      • Game.ResetFogging
      • Game.SetAlliesDontRevealFog
      • Game.SetFightingStrength
      • Game.ShowClock
      • Game.ShowText
      • Game.Time
    • Goods
      • Goods.AddPileEx
      • Goods.Amount
      • Goods.Delete
      • Goods.GetAmountInArea
    • Magic
      • Magic.CastSpell
      • Magic.CurrentManaAmount
      • Magic.DecreaseMana
      • Magic.IncreaseMana
    • Map
      • Map.AddDecoObject
      • Map.DeleteDecoObject
      • Map.Height
      • Map.PointIsOnScreen
      • Map.SetScreenPos
      • Map.Width
    • Settlers
      • Settlers.AddSettlers
      • Settlers.AddSettlersToFerry
      • Settlers.Amount
      • Settlers.AmountInArea
      • Settlers.AmountInSector
      • Settlers.IsSelected
      • Settlers.KillSelectableSettlers
      • Settlers.ProductionAmount
      • Settlers.SetHealthInArea
    • Statistic
      • Statistic.BuildingsCaptured
      • Statistic.GoodsProduced
      • Statistic.LandOwnedByPlayer
      • Statistic.ManaCollected
      • Statistic.MushroomFarmsDestroyed
      • Statistic.ServantsFreed
      • Statistic.SpellsCast
      • Statistic.UnitsDestroyed
    • Tutorial
      • Tutorial.ClearMarker
      • Tutorial.DeleteWorldCursor
      • Tutorial.DisableControls
      • Tutorial.DisableExcept
      • Tutorial.EnableAllControls
      • Tutorial.EnableControls
      • Tutorial.Exit
      • Tutorial.GetCurrentZoomFactor
      • Tutorial.PressButton
      • Tutorial.RWM
      • Tutorial.SelectNextBuilding
      • Tutorial.SetMarker
      • Tutorial.SetWorldCursor
      • Tutorial.SetZoom
      • Tutorial.ShowText
      • Tutorial.Won
    • Vehicles
      • Vehicles.AddVehicle
      • Vehicles.AddWheelerToFerry
      • Vehicles.Amount
      • Vehicles.AmountInArea
      • Vehicles.AmountInSector
      • Vehicles.GetFerryCargoInArea
      • Vehicles.GetHealth
      • Vehicles.IsSelected
      • Vehicles.KillVehicles
    • dbg
      • dbg.aioff
      • dbg.aion
      • dbg.db
      • dbg.pi
      • dbg.sg
      • dbg.stm
      • dbg.tp
  • SU Library Functions
    • SU.VersionOK
    • SU.Buildings
      • SU.Buildings.AddBuilding
      • SU.Buildings.AddBuildingEx
      • SU.Buildings.AddConstructionSite
      • SU.Buildings.AddConstructionSiteEx
      • SU.Buildings.GarrisonWarriors
      • SU.Buildings.GetConstructionState
      • SU.Buildings.GetHaltedState
      • SU.Buildings.GetPriorityState
      • SU.Buildings.RecruitVehicle
      • SU.Buildings.RecruitWarriors
      • SU.Buildings.SetHaltedState
      • SU.Buildings.SetPriorityState
      • SU.Buildings.SetProduction
      • SU.Buildings.SetProductionPercentMode
      • SU.Buildings.SetProductionPercentage
      • SU.Buildings.SetTradingRoute
      • SU.Buildings.SetWorkarea
      • SU.Buildings.StartPlacement
      • SU.Buildings.StoreGood
      • SU.Buildings.ToggleHalt
      • SU.Buildings.TogglePriority
      • SU.Buildings.TradeGood
      • SU.Buildings.UnGarrisonWarriors
    • SU.Entity
      • SU.Entity.GetBaseType
      • SU.Entity.GetClass
      • SU.Entity.GetEntityType
      • SU.Entity.GetHealth
      • SU.Entity.GetMaxHealth
      • SU.Entity.GetNextEntityID
      • SU.Entity.GetOwner
      • SU.Entity.GetPosition
      • SU.Entity.GetPreviousEntityID
      • SU.Entity.GetRoleClass
      • SU.Entity.GetTribe
      • SU.Entity.GetType
      • SU.Entity.GetUniqueID
      • SU.Entity.PileGetAmount
    • SU.Game
      • SU.Game.AddBeds
      • SU.Game.ClearSelection
      • SU.Game.GetLanguage
      • SU.Game.GetMapName
      • SU.Game.GetMapNameRelativePath
      • SU.Game.GetMaxSelection
      • SU.Game.IsCurrentlyOnScreen
      • SU.Game.Ping
      • SU.Game.PingPlayer
      • SU.Game.PingTeam
      • SU.Game.PingTeamOfPlayer
      • SU.Game.SetBeds
      • SU.Game.SetMaxSelection
      • SU.Game.ShowTextMessage
      • SU.Game.stm
    • SU.Map
      • SU.Map.GetEcoSector
      • SU.Map.GetFogOfWar
      • SU.Map.GetHeight
      • SU.Map.GetObject
      • SU.Map.GetOwner
      • SU.Map.GetResource
      • SU.Map.GetType
      • SU.Map.IsDarkLand
      • SU.Map.IsDarkLandBorder
      • SU.Map.IsFoundingStone
      • SU.Map.IsOccupied
      • SU.Map.SetResource
    • SU.Settlers
      • SU.Settlers.AddSettlersWithBeds
  • API Enums
    • AI
    • Buildings
    • Control
    • Dialog
    • Effects
    • Events
    • Game
    • Goods
    • Magic
    • Menu
    • Settlers
    • Sounds
    • Vehicles
  • SU API Enums
    • SU.Animals
    • SU.BaseTypes
    • SU.Classes
    • SU.EntityTypes
    • SU.Grounds
    • SU.GUIElements
    • SU.Languages
    • SU.Objects
    • SU.Resources
    • SU.RoleClasses
    • SU.Trees
    • SU.Tribes
Powered by GitBook
On this page
Edit on GitHub
  1. Tutorials
  2. Erste Schritte

Events: register_functions

PreviousEinstieg: new_gameNextSiegbedingungen anpassen

Last updated 5 months ago

Die Function wird wie direkt von S4 selber aufgerufen. Hier definiert ihr, welche Funktionen von euch dem Spiel zur Verfügung gestellt werden für die Verwendung bei Events. Ihr nutzt hierbei die Funktion innerhalb der um eine Art "Liste" zuschreiben von Funktionen die später in Events aufgerufen werden sollen.

Um eine von auch registrierte Funktion nun auch einem Event zuzuordnen benötigt ihr noch die Funktion innerhalb der . Die häufigsten Events die verwendet werden sind Events.TICK, Events.FIRST_TICK_OF_NEW_OR_LOADED_GAME und Events.VICTORY_CONDITION_CHECK

--setze global eine variable "zahl" mit dem wert 5
zahl = 5

function eineEventFunktion()
    --setze bei globaler variable "zahl" den wert auf 10
    zahl = 10
end

function tickEventFunktion()
   dbg.stm("Hallo, zahl hat den Wert " .. zahl)
end

--bereits behandelt: new_game
function new_game()
    -- später mehr zu request_event
    request_event(eineEventFunktion,Events.FIRST_TICK_OF_NEW_OR_LOADED_GAME)
    request_event(tickEventFunktion,Events.TICK) 
end

function register_functions()
    -- OHNE reg_func(func) WIRD DIE FUNKTION NICHT DURCH EVENTS AUFRUFBAR SEIN
    reg_func(eineEventFunktion)
    reg_func(tickEventFunktion)
end

Dieses Codebeispiel hat 2 Events:

  • eineEventFunktion, welches ein mal am Anfang des Spiels aufgerufen wird (inklusive nach dem Laden) und die variable zahl auf 10 setzt

  • tickEventFunktion, welche jeden Spieltick (Das Spiel hat ~845Ticks die Minute, entspricht ca. = 14 Ticks pro Sekunde) einen Text ausgibt, welche unter anderem die Variable zahl beinhaltet

register_functions()
new_game()
reg_func
register_functions()
request_event()
new_game()