Möchte man einen Ammo Counter erstellen, definieren wir folgende Funktion:
function ShowAmmoCounter()
local holdWeapon = Lara:GetHandStatus()
local ammoMessage = DisplayString("Ammo: " .. Lara:GetAmmoCount(), 100, 300, Color(0,255,128))
if (Lara:GetAmmoCount() == -1) then
unlimited = true
else
unlimited = false
end
if not unlimited then
if holdWeapon == 4 then
ShowString(ammoMessage)
else
HideString(ammoMessage)
end
end
end
Alles anzeigen
und binden diese dann in der "OnControlPhase" ein, damit diese für jedes Frame im Spiel aufgerufen wird:
Erklärung:
Wir speichern erst einmal den "Lara Hand Status" mit der Funktion Lara:GetHandStatus() in "holdWeapon" ab.
Zitat1=Busy(climbing,etc), 2=WeaponDraw, 3=WeaponUndraw, 4=WeaponInHand.
Wir wollen den Counter ja auch nur aufrufen, wenn Lara eine Waffe in der Hand hält - (4)
Dann erstellen wir unsere "Message" die wir anzeigen wollen, via "DisplayString".
Die Werte 100 , 300 sind für die Ausrichtung zuständig, der erste Wert für x der zweite für y .
In der Referenz heisst es dazu:
- x int x-coordinate of top-left of string (or the center if DisplayStringOption.CENTER is given)
- y int y-coordinate of top-left of string (or the center if DisplayStringOption.CENTER is given)
Anschließend prüfen wir, ob Laras ausgewählte Waffe unlimitierte Ammo besitzt, dann zeigen wir es nicht an.
Wir speichern das Ergebnis in einer Bool Variable "unlimited".
Nur wenn "unlimited" false ist (Also Laras Waffe nicht unendlich Munition hat), soll die Anzeige dargestellt werden.
Außerdem prüfen wir noch das Ergebnis der ersten Abfrage Lara:GetHandStatus() in "holdWeapon" - auf "4", denn 4 bedeutet: 4=WeaponInHand.
Wenn beide Abfragen durchgelaufen sind, zeigen wir den String mit "ShowString()" an, ansonsten nicht.
Heisst: Sofern ENTWEDER Laras Waffe unendlich Munition hat oder wenn Lara nicht gerade die Waffe hält, wird der String wieder ausgeblendet.
Die Abfrage wird für jeden Frame ausgeführt, das haben wir sichergestellt, in dem wir unsere Funktion in OnControlPhase aufrufen.
Viel Erfolg beim Ausprobieren