Banner left   Banner center   Banner right

Germanenglish Home · News · Diary · Screenshots · Documentation (Wiki) · Downloads · Guestbook · Forum

Home · Benutzer registrieren · Suchen · Statistik · FAQ · Benutzerliste

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› X-Skript / Developer-Pack —› Aliens im laufenden Bodeneinsatz manuel killen

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
You were cool way before hipsters were cool. https://doulasanantonio.com
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] >>




Du musst dich registrieren um auf dieses Thema zu antworten.
Login :: » Name » Passwort

Ladezeit (sec.): 0.026 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003