Idee: Spieler entfernen/hinzufügen
Moderator: Moderatoren2
- motsch
- Stabsfeldwebel
- Beiträge: 1512
- Registriert: Mi 17. Jun 2009, 18:10
- Einheitenset: Cromoner
- Wohnort: Baiersdorf
Re: Idee: Spieler entfernen/hinzufügen
Sind das alles tatsächlich Kartenbestandteile, die auf irgend einem PBP Planeten zu finden sind? Akku und ISG Tradeship? Ich habe da so meine Zweifel. Könntest Du, GAMER, das nochmal prüfen?
Gruß
motsch
motsch
Re: Idee: Spieler entfernen/hinzufügen
Akku eher nein - meines Wissens nach nur für Duelle um am Anfang FP u/o Energy zu speichern/darzustellen.
Aber warum nicht alle Gebäude umbauen, dann wäre ein Skript auch für Kartenbauer ausserhalb PBP interessant.
Aber warum nicht alle Gebäude umbauen, dann wäre ein Skript auch für Kartenbauer ausserhalb PBP interessant.
- motsch
- Stabsfeldwebel
- Beiträge: 1512
- Registriert: Mi 17. Jun 2009, 18:10
- Einheitenset: Cromoner
- Wohnort: Baiersdorf
Re: Idee: Spieler entfernen/hinzufügen
Das fertige Skript werde ich hier natürlich einstellen. Das kann sich dann jeder für seine Bedürfnisse umschreiben.
Gruß
motsch
motsch
- motsch
- Stabsfeldwebel
- Beiträge: 1512
- Registriert: Mi 17. Jun 2009, 18:10
- Einheitenset: Cromoner
- Wohnort: Baiersdorf
Re: Idee: Spieler entfernen/hinzufügen
Gibt es ausser den Gebaeuden
Evtl. kann hier eine Eingabeaufforderung/Abfrage im Skript die Lösung sein.
- 7 = Radar Station
- 26 = Jamming Station
- 30 = Hangar
Evtl. kann hier eine Eingabeaufforderung/Abfrage im Skript die Lösung sein.
Gruß
motsch
motsch
Re: Idee: Spieler entfernen/hinzufügen
Bei Hangar würde das vieleicht noch funktionieren, aber 40-50 mal wegen einer Radarstation zu bestätigen ...
Hier wäre es wohl am sinnvollsten eine echte Secret Radarstation zu schaffen, die dann anstelle der alten eingesetzt wird.
Eine Möglichkeit diese normalen Radarstationen, Trader oder auch Hangars zu filtern, wäre auf das "versteckt" flag (unsichtbar) zu filtern. Da dies der Spieler nicht selbst setzen kann, wäre so ein verstecktes Gebäude in jedem Fall ein Kartenbestandteil.
Hier wäre es wohl am sinnvollsten eine echte Secret Radarstation zu schaffen, die dann anstelle der alten eingesetzt wird.
Eine Möglichkeit diese normalen Radarstationen, Trader oder auch Hangars zu filtern, wäre auf das "versteckt" flag (unsichtbar) zu filtern. Da dies der Spieler nicht selbst setzen kann, wäre so ein verstecktes Gebäude in jedem Fall ein Kartenbestandteil.
[enjoy the future!]
- motsch
- Stabsfeldwebel
- Beiträge: 1512
- Registriert: Mi 17. Jun 2009, 18:10
- Einheitenset: Cromoner
- Wohnort: Baiersdorf
Re: Idee: Spieler entfernen/hinzufügen
Gut, und wie kann ich dieses flag mit LUA auslesen?
Gruß
motsch
motsch
Re: Idee: Spieler entfernen/hinzufügen
Ich vermute mal, TheCoder muß das erst implementieren.
[enjoy the future!]
Re: Idee: Spieler entfernen/hinzufügen
Mit dem nächsten Update gibt es ein getVisible() beim Building
- motsch
- Stabsfeldwebel
- Beiträge: 1512
- Registriert: Mi 17. Jun 2009, 18:10
- Einheitenset: Cromoner
- Wohnort: Baiersdorf
Re: Idee: Spieler entfernen/hinzufügen
Das hier fehlt auch noch in der Liste der Kartenbestandteile.
Gruß
motsch
motsch
- motsch
- Stabsfeldwebel
- Beiträge: 1512
- Registriert: Mi 17. Jun 2009, 18:10
- Einheitenset: Cromoner
- Wohnort: Baiersdorf
Re: Idee: Spieler entfernen/hinzufügen
Das ist der aktuelle Stand. Den Trader ID 12017 habe ich nicht in das table kartenbestandteile aufgenommen, da er über das unvisible flag gefiltert wird.
Wenn dieses Skript soweit fertig ist, kann man sicher auch über Erweiterungen nachdenken, um Gebäude einem bestimmten Spieler zu "überschreiben".
Wenn dieses Skript soweit fertig ist, kann man sicher auch über Erweiterungen nachdenken, um Gebäude einem bestimmten Spieler zu "überschreiben".
Code: Alles auswählen
--
-- Dieses Script setzt alle Gebäude eines wählbaren Spielers die als Kartenbestandteil gelten auf neutral.
--
-- Verwendbar in: mapeditor
--
-- -------------------------------------------------------------------------------------------------------
--
-- globale Variable vorbelegen:
slotnr = 0
neutral = false
counter = 0
--
-- -------------------------------------------------------------------------------------------------------
--
-- Table für Kartenbestandteile erzeugen:
--
kartenbestandteile = {}
kartenbestandteile.Headquarter1 = 3
kartenbestandteile.Town1 = 24
kartenbestandteile.Akku = 25
kartenbestandteile.Lab10 = 27
kartenbestandteile.Lab25 = 28
kartenbestandteile.Headquarter2 = 55
kartenbestandteile.Headquarter3 = 56
kartenbestandteile.TrainingCenter = 57
kartenbestandteile.VillaDeng = 58
kartenbestandteile.Town2 = 59
kartenbestandteile.Town3 = 60
kartenbestandteile.Headquarter4 = 1002
kartenbestandteile.Bunker1 = 1003
kartenbestandteile.SecretDepot = 1005
kartenbestandteile.MountainEntrance = 1009
kartenbestandteile.HQTitanNet = 1010
kartenbestandteile.Bunker2 = 1015
kartenbestandteile.Bunker3 = 1016
kartenbestandteile.SecretFactory = 1202
kartenbestandteile.SecretTown = 1203
kartenbestandteile.Wreck = 1299
kartenbestandteile.Aussenposten = 12031
kartenbestandteile.Fabrik = 12032
kartenbestandteile.Treibstoffbunker = 12033
--
-- -------------------------------------------------------------------------------------------------------
--
-- Funktionen:
--
-- Ermittle Gebäude ID
function GetGebaeudeID ( feldGebaeude )
local gebaeudetyp = feldGebaeude:getType()
local gebaeudeid = gebaeudetyp:getID()
return gebaeudeid
end
--
--
-- Prüfe ob aktuelle GebäudeID Kartenbestandteil ist
function CheckGebaeudeID ( _index )
if gebaeudeID == kartenbestandteile [ _index ] then
neutral = true
return neutral
end
end
--
--
--
-- Dialog zur Auswahl der Slotnummer ---------------------------------------------------------------------
--
-- Dialog vorbereiten
dlg = asc.PropertyDialog ( 'Auswahl des Spielers' )
dlg:addInteger ( 'Geben Sie die Slotnummer ein' , slotnr )
--
-- Dialog starten
result = dlg:run()
--
-- Skript Abbruch mit "Cancel"
if result == false then
asc.warningMessage ( " Skript abgebrochen!" )
return
end
--
-- Ergebnis des Dialogs in Variable slotnr speichern
slotnr = dlg:getInteger ( 'Geben Sie die Slotnummer ein' )
--
-- ungueltigen Spieler abfangen
if slotnr < 1 or slotnr > 7 then
asc.warningMessage ( "Ungueltiger Spieler - (1-7 ist moeglich) - Skript abgebrochen!")
return
end
--
-- Dialog Ende -------------------------------------------------------------------------------------------
--
-- Karte laden
map = asc.getActiveMap()
--
-- Absuchen der Karte Feld für Feld
for y = 0,map:height()-1 do
for x = 0,map:width()-1 do
--Zeiger auf Feld setzen
feld = map:getField(x,y)
-- Prüfe ob ein Gebäudeeingang auf dem Feld ist
if feld:getBuildingEntrance() then
-- Prüfe ob das Gebäude dem ausgewählten Spieler gehört
if feld:getBuildingEntrance():getOwner() == slotnr then
-- Zeiger auf Gebäude setzen
gebaeude = feld:getBuildingEntrance()
-- Ermittle ID des Gebäudes per Funktion
gebaeudeID = GetGebaeudeID( gebaeude )
-- Prüfe ob Gebäude Kartenbestandteil ist per Funktion
table.foreach ( kartenbestandteile , CheckGebaeudeID )
-- Gebäude ist Kartenbestandteil
if neutral then
-- Gebäude neutral stellen
gebaeude:convert ( 8 )
-- Erhöhe Zähler
counter = counter + 1
-- Stelle Zeiger "Gebäude ist Kartenbestandteil" zurück
neutral = false
end
end
end
end
end
asc.infoMessage( counter .. ' Gebaeude neutral gestellt' )
Gruß
motsch
motsch