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: kein Gast, xanbank

 X-Force - Fight For Destiny - Forum —› Verbesserungsvorschläge/Ideen —› Betäubungsmunition

Seite: 1 [2] [3] >>

Autor Mitteilung
verfasst am: 26.06.2009, 15:46
Registrierdatum: 27.06.2007, 12:16

 Beiträge: 658
Ich hätte mal eine Idee für alle Spielesatzersteller (von der ich selber wahrscheinlich nicht Gebrauch machen werde):

Wie wär's mit Betäubungsmunition? Trifft man ein Alien mit einer Waffe mit Betäubungsmuniton, so verliert es 10% seiner Zeiteineiten in der ersten Runde, 8% der ZE in der zweiten und 5% ZE in der dritten Runde (jedesmal ausgehend von maximale ZE d. Aliens), bis der Effekt erlischt.

Trifft man es mehr als ein mal, so wird der entsprechende Wert dem Prozentwert addiert.

Ich weiß momentan gar nicht, ob das mit den aktuellen Scriptbefehlen so funktionieren wird, wenn jemand also Interesse daran hat kann er das ruhig mal ausprobieren. ;)
verfasst am: 26.06.2009, 16:24
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Das ist lediglich eine Modifikation des bestehenden Stun-Effektes, bei dem man statt die ZE zu 0 zu setzen den Wert vorher berechnet.

Vorlagen findet man z.B. in der script.pak (Stun3r, relativ einfach) oder im Galwar (EMP-Effekt, ID-Bezogen und aufwendiger)
verfasst am: 26.06.2009, 16:26 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Klingt prinzipiell machbar. Wie ich ZE teile, weiß ich ja neuerdings dank Dirk und Natter ;-)
Ich glaube, ich versuch's einfach mal.

Ich werde es wohl auch nicht verwenden, aber Übung ist immer gut und vllt kann es ja wer anders gebrauchen.

Edit: Hab ne dumme Frage, bezüglich Arrays, ist nicht essentiell wäre aber sauberer: Ich find bei den Array-Typen keinen Integer-Array, nur einen für Strings... muss ich den im Verbund mit strtoint nehmen, oder gibt's da was eleganteres?
Edit2: Ok, hat sich erledigt... Array of Integer, korrekt?
verfasst am: 26.06.2009, 17:21
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Zitat: sujin
Edit2: Ok, hat sich erledigt... Array of Integer, korrekt?

ja
verfasst am: 26.06.2009, 17:26 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Ok, der Editor gibt sich zufrieden. Aber wenn ein Profi so freundlich wäre und das mal überprüfen würde...

program RangeEffect_fading_Anesthesia;
var
  Rounds: Integer;
  TUloss: Array[0..3] of Integer;

procedure NewPlayerRound(Sender: TOBJECT);
var
  Figure:TGameFigure;
  dummy:Extended;
begin
  if (TGameFigure(MissionObject).FigureStatus=fsFriendly) then
  begin
    Figure:= TGameFigure(MissionObject);
    dummy:= (Figure.MaxTimeUnits / 100) * TUloss[rounds];

    Figure.TimeUnits:= Round(dummy);
    
    Rounds:=Rounds+1;

    if (Rounds>=3) then
    begin
      mission_win;
    end;
  end;
end;

procedure NewAlienRound(Sender: TObject);
var
    Figure:TGameFigure;
    dummy:Extended;
begin
  if (TGameFigure(MissionObject).FigureStatus=fsEnemy) then
  begin
    Figure:=TGameFigure(MissionObject);
    dummy:= (Figure.MaxTimeUnits / 100) * TUloss[rounds];

    Figure.TimeUnits:= Round(dummy);
    
    Rounds:=Rounds+1;

    if (Rounds>=3) then
    begin
      mission_win;
    end;
  end;
end;

procedure NewRound(Sender: TOBJECT);
begin
  TGameFigure(MissionObject).TimeUnits:=0;
  inc(Rounds);
  if (Rounds>=3) then
    mission_win;
end;

procedure StartMission;
var
  Figure:TGameFigure;
  dummy:Extended;
begin

  // no Figure hit
  if (MissionObject=Nil) then
  begin
    mission_abort;
  end;
  
  if not (IsObject(MissionObject)) then
  begin
    mission_abort;
  end;

  rounds:=0;
  Figure:=TGameFigure(MissionObject);
  // ZE-Verlust nach [X] Runden
  TUloss[0]:=10;
  TUloss[1]:=8;
  TUloss[2]:=5;
  TUloss[3]:=3;


  dummy:= (Figure.MaxTimeUnits / 100) * TUloss[rounds];

  Figure.TimeUnits:= Round(dummy);
  
  register_special_event(@NewAlienRound,EVENT_SPECIAL_ONNEWALIENROUND);
  register_special_event(@NewPlayerRound,EVENT_SPECIAL_ONNEWPLAYERROUND) ;
end;

begin
  MissionName:='RangeEffect_fading_Anesthesia';
  MissionType:=mzUser;
end.
Wichtig ist der folgende Teil, den richtigen Typ zu finden trau ich mir grad noch zu und sonst hab ich nichts gemacht.
// ZE-Verlust nach [X] Runden
  TUloss[0]:=10;
  TUloss[1]:=8;
  TUloss[2]:=5;
  TUloss[3]:=3;


  dummy:= (Figure.MaxTimeUnits / 100) * TUloss[rounds];

  Figure.TimeUnits:= Round(dummy);
PS: Falls mir jemand verraten kann, ob und wie ich Array-Werte auch in einer Zeile festlegen kann, also ähnlich wie bei PHP, was etwa so aussähe:
$TUloss = array (10, 8, 5, 3);

Dann wäre ich sehr dankbar. Die Methode ist so schön platzsparend ^^
verfasst am: 26.06.2009, 17:49
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Schau mal bei 2230. Du solltest noch auf EVENT_ONGROUNDFINISHED reagieren.
verfasst am: 26.06.2009, 17:52
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Ist jetzt drin.

Was das etwa alles? Falls ja, bin ich enttäuscht von mir, dass ich nicht wenigstens einen dicken Logikfehler drin habe :D
verfasst am: 26.06.2009, 18:05 · Edited by: Natter
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Naja - logisch ist das skript nicht unbedingt - je nachdem, was du machen willst. Momentan setzt du die ZE bei Treffer auf 10 Prozent, danach zu Beginn jeder Runde auf 8,5, bzw. 3 Prozent des Maximalwertes (der Effekt wird also immer stärker).
verfasst am: 26.06.2009, 18:14
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Ich wusste doch, dass ich Mist gebaut habe ^^

So sollte es den ursprünglich geplanten Effekt haben:
dummy:= Figure.TimeUnits - ((Figure.MaxTimeUnits / 100) * TUloss[rounds]);

Die äußere Klammer ist evtl überflüssig, je nachdem wie strikt sich der Interpreter an good ol' "Punkt vor Strich" hält. Aber lieber auf Nummer sicher gehen.
verfasst am: 26.06.2009, 18:16
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Auf "Punkt vor Strich" kannst du dich ruhig verlassen ;)
verfasst am: 26.06.2009, 18:19 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Schön zu hören. Ich lass es trotzdem mal drin, schadet ja nicht und hilft vielleicht der Übersicht, wenn man sich den Code mal übermüdet oder neben der Spur anguckt.

Also hier nochmal der komplette Code:

program RangeEffect_fading_Anesthesia;
var
  Rounds: Integer;
  TUloss: Array[0..3] of Integer;

procedure NewPlayerRound(Sender: TOBJECT);
var
  Figure:TGameFigure;
  dummy:Extended;
begin
  if (TGameFigure(MissionObject).FigureStatus=fsFriendly) then
  begin
    Figure:= TGameFigure(MissionObject);
    dummy:= Figure.TimeUnits - ( (Figure.MaxTimeUnits/100) * TUloss[rounds] );

    Figure.TimeUnits:= Round(dummy);
    
    Rounds:=Rounds+1;

    if (Rounds>=3) then
    begin
      mission_win;
    end;
  end;
end;

procedure NewAlienRound(Sender: TObject);
var
    Figure:TGameFigure;
    dummy:Extended;
begin
  if (TGameFigure(MissionObject).FigureStatus=fsEnemy) then
  begin
    Figure:=TGameFigure(MissionObject);
    dummy:= Figure.TimeUnits - ( (Figure.MaxTimeUnits/100) * TUloss[rounds] );

    Figure.TimeUnits:= Round(dummy);
    
    Rounds:=Rounds+1;

    if (Rounds>=3) then
    begin
      mission_win;
    end;
  end;
end;

procedure NewRound(Sender: TOBJECT);
begin
  TGameFigure(MissionObject).TimeUnits:=0;
  inc(Rounds);
  if (Rounds>=3) then
    mission_win;
end;

procedure GroundFinished(Sender: TOBJECT);
begin
  mission_win;
end;

procedure StartMission;
var
  Figure:TGameFigure;
  dummy:Extended;
begin

  // no Figure hit
  if (MissionObject=Nil) then
  begin
    mission_abort;
  end;
  
  if not (IsObject(MissionObject)) then
  begin
    mission_abort;
  end;

  rounds:=0;
  Figure:=TGameFigure(MissionObject);
  // ZE-Verlust nach [X] Runden
  TUloss[0]:=10;
  TUloss[1]:=8;
  TUloss[2]:=5;
  TUloss[3]:=3;


  dummy:= Figure.TimeUnits - ( (Figure.MaxTimeUnits/100) * TUloss[rounds] );

  Figure.TimeUnits:= Round(dummy);
  
  register_special_event(@NewAlienRound,EVENT_SPECIAL_ONNEWALIENROUND);
  register_special_event(@NewPlayerRound,EVENT_SPECIAL_ONNEWPLAYERROUND) ;
  register_event(@GroundFinished,groundAI_api_GetRunningGround,EVENT_ONG ROUNDFINISHED);
end;

begin
  MissionName:='RangeEffect_fading_Anesthesia';
  MissionType:=mzUser;
end.
verfasst am: 27.06.2009, 09:21
Registrierdatum: 12.06.2005, 11:08

 Beiträge: 465
Sieht interessant aus... Das ist also eher eine... "Lähmung" als eine richtige Betäubung.

Was es inzwischen alles für Möglichkeiten gibt... Ich erinnere mich noch an damals, wo es nicht mal möglich war, für ein Gewehr explodierende Munition zu benutzen.
verfasst am: 27.06.2009, 14:23
Registrierdatum: 27.06.2007, 12:16

 Beiträge: 658
@sujin
Wird dir wohl hoffentlich nichts ausmachen, wenn ich das script eventuell ganz böse klaue? ;)
verfasst am: 27.06.2009, 15:40
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Ich hab's extra für Andere gemacht, ich brauch's nämlich nicht ^^ Also: Macht mir nix aus.
verfasst am: 22.08.2021, 12:48
Registrierdatum: 22.08.2021, 12:32

 Beiträge: 34
Thanks for sharing what you know

https://fencinggreenbay.com
verfasst am: 22.08.2021, 12:49
Registrierdatum: 22.08.2021, 12:32

 Beiträge: 34
Interesting topics!

https://fencingmissoulamt.com
verfasst am: 28.10.2021, 09:10
Registrierdatum: 28.10.2021, 08:53

 Beiträge: 304
Great site thanks admin. More power.
read more here
verfasst am: 08.11.2021, 12:32
Registrierdatum: 28.10.2021, 08:53

 Beiträge: 304
Awesome! Learned alot thanks so much keep posting more. sandblasting baton rouge
verfasst am: 13.06.2022, 17:32
Registrierdatum: 29.10.2021, 14:57

 Beiträge: 763
will start doing this now.. thanks for helping me! coloradospringssmallbusinessloans.com
verfasst am: 23.11.2023, 18:38
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 582490
авто360делаBettСтоÑMelaWierпрозоднаAlleBurnDISCDorm0758ЛитеOrieBeauYestLosiÐртиЗвердругRyan
DeliИванAldoучилDermAhavJardВаÑиБьерCaudкандИÑпооÑвоReacÑертEmilGiusCharЛогвLamaМоÑкRobeAnna
BlueKwapÑÑылМонеRobePushМироJacqПолиDomisilvотдеWaltруÑÑБороÑборHousОтечиллюAndrJohnLeonDefi
СеднÑерт1953HTMLСодеAlfrСушиÑпецAngeFIFABretNintWindÑереРазуMarkElmo(ДиÑXVIIЛуниИллюSworUniv
3000ÑзыккомпÑере01-2ТагаCamiMaurиллюBeatJonaБороКротVIIIHuggMiniChalTourAndyПолеGuaiÐрбеDell
BurnвекафамчTRASфарфEduaToshINTEDrivXyloBookFull00006400JardÐртиKitt9029VOLKпроб

Seite: 1 [2] [3] >>




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

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