Also sowas wie dieses?
AnnosiedlerCode:MakeInvulnerable("AllWallPartsOfPlayer3")
Blogs
Also sowas wie dieses?
AnnosiedlerCode:MakeInvulnerable("AllWallPartsOfPlayer3")
Ich ... könnte mir höchstens vorstellen ...
eine Verknüpfung ...
zwichen AI Build Order ...
und MapScriptFunktion ...
--------------------------
Da ich aber zZ wirklich nicht am Edi Interessiert bin,
werde ich das auch nicht Probieren oder Testen !
trabbi
Was ist Theorie, - Wenns klappen soll und es klappt nie
Was ist Praxis, - Frag nicht so dumm, wenns klappt und Du weißt nicht warum
So, da die Scriptecke ja eigentlich zum Austausch und Lösungshilfe bei Scriptproblemen dient, werde ich dir ab jetzt keinen fertigen Code mehr liefern sondern bloss den Ansatz dazu.
Mauern, Tore etc. findest du in diversen EntityCategories, steht alles in der berühmten _G-S6+RdO.xls Datei.Code:Also willst die Mauern unverwundbar == Scripten lernen oder aus anderen Maps klauen Will nicht lernen, weil mir zuviel Aufwand == Wolfi per PN fragen
Einfach mit Logic.GetPlayerEntitiesInCategory() die nötigen Categories abfragen und auf unverwundbar setzten.
function schutz()
Logic.GetPlayerEntitiesInCategory()
B_PalisadeGate, B_FenceGate, B_WallGate_AS, B_WallSegment_AS then
MakeInvulnerable("???")
end
![]()
Geändert von Annosiedler (25.07.2010 um 10:06 Uhr)
...das zu deinem Pseudoversuch...
einfach mal die Suchfunktion benutzen oder Scripte von anderen Maps anschauen.Code:Logic.GetPlayerEntitiesInCategory(_PlayerID, _Categorie)
Ein dir wohl bekannter Mapper hat eine meiner Funktionen dafür schon erfolgreich kopiert und angewendet...
hmm...
welcher bloß?
- - - - - - - -
ok, dann zweiter versuch
besser oder schlechter?Code:Logic.GetPlayerEntitiesInCategory( 3, Entities.B_PalisadeGate, Entities.FenceGate, Entities.B_WallGate_AS, Entities.WallSegment_AS) then MakeInvulnerable
...noch sehr lauwarm...
hier ist das problem das die Mauern zwar unverwundbar sind, aber die Palisade (Längstück + Tor) davon leider unbeeindrugt waren. (PalisadeGate und PalisadeSegment sind die korrekten begriffe)Code:function Nurmengrad_Unverwundbar() local cityWalls = {} local categories = { EntityCategories.CityWallGate, EntityCategories.CityWallSegment, EntityCategories.PalisadeGate, EntityCategories.PalisadeSegment, } for _, Cat in ipairs(categories) do for _, ID in ipairs{Logic.GetPlayerEntitiesInCategory(3, Cat)} do --Spieler_ID table.insert(cityWalls, ID) end end for i = 1, #cityWalls do MakeInvulnerable(cityWalls[i]); end end
und tut mir leid wenn ich hier ab und zu nerve, ich kann da nichts für
Also, ich hab auch schon Palisaden unverwundbar gemacht!!
Geht alles, musst nur probieren!!
Ich merke, Du hast schon Bedeutend mehr Ahnung vom Scripten, wie ich!Code:local cityWalls = {} local categories = { EntityCategories.CityWallGate, EntityCategories.CityWallSegment, EntityCategories.PalisadeGate, EntityCategories.PalisadeSegment,
Trotzdem kommt mir das so nicht logisch vor ??
trabbi
Was ist Theorie, - Wenns klappen soll und es klappt nie
Was ist Praxis, - Frag nicht so dumm, wenns klappt und Du weißt nicht warum
Für Palisaden musst du eine extra Funktion machen:
Schau mal in meiner Map: Die Insel!!Code:local Palisade = {Logic.GetEntitiesOfCategoryInTerritory(2, 2, EntityCategories.PalisadeSegment, 0)} --TerrID, PlayerID, Entity, 0 for i = 1, #Palisade do MakeInvulnerable(Palisade[i]);
Bei BB ist auch nicht immer alles logisch.
EntityCategotries.PalisadeGate gibt es gar nicht, schau mal in der G_Liste nach!! Komisch, aber wahr.
Probieren könnte man: Entities.B_PalisadeGate , dann aber; Logic.GetEntitiesOfTypeInTerritory(_TerrID, _PlayerID, Entities.B_PalisadeGate, 0)
hab ich aber nicht probiert!!
Geändert von Fidelio1958 (13.01.2011 um 19:14 Uhr)
oh, immerhin war diesmal BB schuld, ok, das ganze werde ich die tage testen...
danke
na ja, schuld oder nicht??
Die haben sicher nicht damit gerechnet, was viele Mapper hier aus dem Spiel und vor allem mit dem Script gemacht haben!!!
Da gibts noch sehr viele Ungereimtheiten, manches kann man verbessern, mit manchen Sachen muss man sich halt einfach abfinden.
Es gibt ja noch immer einige, die sich bemühen, immer neue Lösungen zu finden.
Warum soll BB schuld sein wenn du falsch abfragst?
Im table PalisadeSegment gibt es die Entities B_PalisadeSegment und B_PalisadeGate.
Und was Wolfi hier zum Besten gibt habe ich vor langer langer Zeit eingesetzt(BonDardum) und damit alle Palisaden und Tore eines Territoriums unverwundbar gemacht.
Code:local nemdramirWall = {Logic.GetEntitiesOfCategoryInTerritory(16, 2, EntityCategories.PalisadeSegment, 0)} for i = 1, #nemdramirWall do MakeInvulnerable(nemdramirWall[i]); end
Cinemachus, entschuldige bitte, hab ich nicht dazugesagt, dass der Code von dir ist!!
Ich hab ja auch sonst sehr viel von dir gelernt!!!..... Danke dafür!!
es funktioniert jetzt einwandfrei, vielen dank dafür!
Code:function Nurmengrad_Unverwundbar() local cityWalls = {} local categories = { EntityCategories.CityWallGate, EntityCategories.CityWallSegment, } for _, Cat in ipairs(categories) do for _, ID in ipairs{Logic.GetPlayerEntitiesInCategory(3, Cat)} do --Spieler_ID table.insert(cityWalls, ID) end end for i = 1, #cityWalls do MakeInvulnerable(cityWalls[i]); end local Palisade = {Logic.GetEntitiesOfCategoryInTerritory(4, 3, EntityCategories.PalisadeSegment, 0)} --TerrID, PlayerID, Entity, 0 for i = 1, #Palisade do MakeInvulnerable(Palisade[i]); end end
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen