Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [22] [23] >> |
Autor |
Mitteilung |
|
verfasst am: 15.01.2010, 16:41 · Edited by: Kamor
|
Registrierdatum: 20.07.2005, 00:01
Beiträge: 203
|
Ich will mir einen Superblastercheatkill basteln. Habe aber noch ein Problem an die entsprechenden Aliens zu kommen. Ich komme zwar an das TAlienModel der Aliens, aber das bringt mich nicht weiter.
Ich brauche das TGameFigure Objekt der entsprechenden Aliens, um die dann killen zu können. Stecke hier mit meinem Lösungsansatz erstmal fest.
program Superblastercheatkill;
procedure StartMission;
var
Einsatz:TGround;
Alien : TAlienModel;
Figure:TGameFigure;
i:integer;
begin
Einsatz:=groundAI_api_GetRunningGround;
// savegame_api_Message(inttostr(Einsatz.AlienCount),lmMissionMessage,Nil );
if (Einsatz.AlienCount) >0 then
begin
for i:=0 to Einsatz.AlienCount-1 do
begin
Alien := Einsatz.GetAlien(i);
// GetAlien liefert mit leider nicht den Wert, den ich brauche.
// ich brauche hier nicht das Alienmodel, sondern das tatsächliche Alien
// damit ich es dann im Bodensatz killen kann
// es fehlt mir ein Bezug zum einem TGameFigure-Objekt
// Figure:=TGameFigure(MissionObject);
// wäre nur die Bindung zum getroffenen Alien
// ich brauche aber die Bindungen zu allen Aliens aus dem aktiven Bodeneinsatz
// ist der Weg über groundAI_api_GetRunningGround der falsche Weg,
// weil hier nur auf den Bodeneinsatz vor Aktivierung des Bodeneinsatzes
// sinnvoll zugegriffen werden kann?
// Figure.KillUnit;
end;
end;
mission_win;
end;
begin
MissionName:='Superblastercheatkill';
MissionType:=mzUser;
end.
|
|
verfasst am: 15.01.2010, 17:22
|
Admin, Spielsatz GalWar
Registrierdatum: 31.08.2005, 21:51
Beiträge: 5596
|
Du must über die AI-Groups gehen, und zwar nach dem Motto "der Feind meines Feindes ist..."
Leider fehlen noch bessere Zugriffe.
Es gibt in den bestehenden Spielsätzen einige Rangeeffekt-Skripte die das brauchen, aber ich weiß nicht auswendig welche das sind. |
|
verfasst am: 15.01.2010, 17:22 · Edited by: Natter
|
Programmierer, allgemeines
Registrierdatum: 06.06.2004, 17:19
Beiträge: 3186
|
Dafür solltest du eine Vorlage im Cheatmanü-Skript finden. DieZugriffsbefehle sind noch etwas unvollständig. Wenn ich das richtig im Kopf habe, musst du dir die GroupAI des Spielers nehmen, und dort dann auf die Liste aller Feinde zugreifen.
edit:Da war DirkF wohl schneller ^^ |
|
verfasst am: 15.01.2010, 17:24 · Edited by: Kreks
|
Registrierdatum: 22.08.2008, 15:51
Beiträge: 403
|
Also wenn ich das richtig verstehe, willst du bei einem Treffer mit der Waffe das getroffene Alien töten? Du kannst bei einer Laserwaffe bzw Munition für die anderen Waffentypen ein Ranged Effect Script einstellen. Es gibt als default Skript Instant Kill, welches genau das macht.
Wenn du die Alienfiguren in einem Bodeneinsatz direkt ansprechen willst, erreichst du sie mit groundAI_api_GetPlayerAIGroup.GetEnemy(index)
edit: da waren zwei schneller... |
|
verfasst am: 15.01.2010, 20:16
|
Spielsatz Alliances
Registrierdatum: 14.07.2004, 14:47
Beiträge: 1185
|
|
|
verfasst am: 15.01.2010, 20:58 · Edited by: Kamor
|
Registrierdatum: 20.07.2005, 00:01
Beiträge: 203
|
Ja, cool danke für eure Antworten.
Zitat: Kreks Also wenn ich das richtig verstehe, willst du bei einem Treffer mit der Waffe das getroffene Alien töten? Du kannst bei einer Laserwaffe bzw Munition für die anderen Waffentypen ein Ranged Effect Script einstellen. Es gibt als default Skript Instant Kill, welches genau das macht.
Ne ich will bei einem Groundshot mit Shifttaste alle vorhandenen Aliens töten. Wenn es nur um den Alien geht, wo ich gerade treffe, habe ich schon das Tombaritoxidscript als Vorlage.
Aber der groundAI_api_GetPlayerAIGroup.GetEnemy(index) hilft mir schon mal super weiter. Mein Superblastercheatkill sieht jetzt so aus.
program Superblastercheatkill;
procedure StartMission;
var
Figure:TGameFigure;
i:integer;
begin
if (groundAI_api_GetPlayerAIGroup.EnemyCount>0) then
begin
for i:=0 to groundAI_api_GetPlayerAIGroup.EnemyCount-1 do
begin
Figure:=groundAI_api_GetPlayerAIGroup.GetEnemy(i);
if (Figure<>Nil) then
begin
Figure.KillUnit;
end;
end;
end;
mission_win;
end;
begin
MissionName:='Superblastercheatkill';
MissionType:=mzUser;
end.
Habe aber noch das Problem, das ich die Aliens nicht mit einen Schuss schaffe, da überlebt immer ein Alien, was ich dann erst später mit einem Schuss aufn Boden wegbekomme und stehe hier vor einem Rätsel. Die Indexschleife hate ich auch schonmal testweise von 1 bis *.EnemyCount laufen lassen. Das hat aber auch nicht geholfen, bzw. war der Versuch noch schlechter, weil ein Alien auch bei mehrmaligen Schüssen sich nicht killen lies, wahrscheinlich das Index=0 Alien. Verstehe dann aber nicht, wieso ich bei der Indexschleife von 0 bis *.EnemyCount-1 nicht alle Aliens beim ersten Shot erwische?
Edit: Hat sich erledigt, dank dem Post von sujin, also Schleife abwärtszählen. :-) |
|
verfasst am: 27.01.2022, 13:20
|
Registrierdatum: 27.01.2022, 13:07
Beiträge: 318
|
|
|
verfasst am: 01.12.2023, 12:01
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:44
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:45
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:46
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:47
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:48
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:49
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:50
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:51
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:52
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:53
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:54
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
|
verfasst am: 14.01.2024, 06:55
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69718
|
|
Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [22] [23] >> |