Banner left   Banner center   Banner right

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

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

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› Spieler helfen Spielern —› Probleme mit verschiedenen Skripten

Autor Mitteilung
verfasst am: 24.04.2013, 22:27
Registrierdatum: 21.11.2011, 10:49

 Beiträge: 21
So mein problem seht ihr ja oben darum will ich mehr ins detail gehen:
1. Ich habe Probleme mit den Skripten util_food_calculation und util_food_consumption aus TWW(ich nutze die gelegen heit gleich um zu fragen ob ich sie nutzen darf) und dem skript 00_Prolog aus general smirkovich (gleiches wie obere klammer)

Ich habe bei allen Skripten probleme mit der anpassung an andere spielsätze
Vieleich könnt ihr mir ja heften

MfG OberKnirps
verfasst am: 25.04.2013, 18:31
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Hmm, also meine Skripte (general smirkovich) darfst du verwenden. Wenn du Hilfe brauchst, müsstest du allerdings konkreter werden.
verfasst am: 25.04.2013, 19:26 · Edited by: OberKnirps
Registrierdatum: 21.11.2011, 10:49

 Beiträge: 21
ja wollte ich habs bloß gestern im wahrsen sinne des wortes: verpennt^^

Also bei bei dem prolog skript von GS wolltee ich die music, bild und text andern. Ich hab es auch schon geschafft musik und text zu ändern aber ich komm noch nicht soganz dahinter wie man das bild ändert.

Und bei den beiden anderen Skripten würde ich gern wissen wie man die zu erzeugenden/verbrauchende produkte ändert, die gebäude dafür ändert und ob es geht das gebäude gegenstände verbrauchen.

Falls ich noch weiter ins detail gehen soll sag einfach bescheit

MfG OberKnirps
verfasst am: 29.04.2013, 06:58
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Du wirst wohl ein paar Informationen mehr geben müssen, z.B. poste mal das veränderte GS-Skript hier.

TWW war kein echter offizieller Spielsatz, und ich weiß auch nicht wie man den Spielsatzersteller kontaktieren könnte, wenn er sich nicht hier im Forum meldet und auch keine email im Forum hinterlegt hat.
Vielleicht können wir da helfen, wenn Du die Skripte hier postets und beschreibst, was genau Du willst - ich habe X-Force momentan nicht vernünftig installiert und könnte mir deshalb die Skripte gar nicht lokal anschauen, deshalb die bitte um posts hier.
verfasst am: 29.04.2013, 10:09
Registrierdatum: 21.11.2011, 10:49

 Beiträge: 21
{
+********************************************************************* **********
*    Version 1.0 created by:                                                   *
*    - Nathanael Jöhrmann                                                      *
*    for:                                                                      *
*    - X-Force Version 0.910                                                   *
*    Gameset:                                                                  *
*    - Smirkovich                                                              *
********************************************************************** **********
*    edited by:                                                                *
*    -                                                                         *
*    for:                                                                      *
*    -                                                                         *
********************************************************************** **********
* Beschreibung:                                                                +
* Prolog zum Spiel                                                             *
*                                                                              *
*                                                                              *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++
}
program Prolog;

uses MSG_Story, ID_Konstanten;


procedure TryToClosePage(Sender: TOBJECT; var CanClose: Boolean);
begin
  game_api_MessageBox(Frage01_1);
  game_api_MessageBox(Frage01_2);
end;

procedure EnterStoryPage;
var
  Page : TDXPage;
  TextViewer : TDXTextViewer;
begin
  Page:=gui_api_GetPage(StroyPageID);
  TextViewer:=TDXTextViewer(Page.FindComponent('TextViewer'));
  TextViewer.Text:=Prolog;
  Page.OnCanClose:=@TryToClosePage;
  gui_api_ShowPage(StroyPageID);
  Page.OnCanClose:=nil;
  
//    game_api_messageBox(Prolog);

//    gui_api_ClosePage;
end;

procedure StartMission;
begin
{$IFNDEF SKRIPTEDIT}
  music_api_PlayMusic('user\Music:Xilent_-_Boss_Wave_(Original_Mix)',tru e);
{$ENDIF}
  EnterStoryPage;
  mission_api_StartScript('01_Spielstart');
  mission_win;
end;

begin

  MissionName := 'Prolog';
  MissionType := mzUser;
end.
als musik test hatte ich xilent gennomen hat auch alles gut funktionirt. text kann ich über MSG_story änder, weiss ich auch, aber wie ändere ich das bild? hab gesehen das es in den ressourcen gesehen hab aber keine ahnung wie ich es ändere
unit util_food_calculation;

uses Konstanten;

const
  FOODROOMS = 3; //Feld, Hydrokulturfeld, appletree

function FoodProduction : LongInt;
  var
    base : TBase;
    foodRoomIDs : array of LongInt;
    b_rooms : TRoomArray;
    units : LongInt;
    i,j,k : LongInt;
  begin
    //Initialisation
    setarraylength(foodRoomIDs,FOODROOMS);
    foodRoomIDs[0] := FELD;
    foodRoomIDs[1] := HYDROFELD;
    foodRoomIDs[2] := APPLETREE;

    {  if there is more to come
    case game_api_GetInteger('Schwierigkeit') of
      EINFACH : ;
      MITTEL : ;
      SCHWER : ;
    end;
    }
    units := 0;
    //calculate food in each base
    for i := 0 to base_api_GetBaseCount - 1 do begin
      base := base_api_GetBaseByIndex(i);
      b_rooms := base.RoomArray;
      //Get each room
      for j := 0 to getarraylength(b_rooms) - 1 do begin
        //Food generation, dependig on if it can produce
        for k := 0 to FOODROOMS - 1 do begin
          if (b_rooms[j].ID = foodRoomIDs[k]) then begin //foodroom found
            if (b_rooms[j].days = 0) then //rooms in production don not produce food
              units := units + b_rooms[j].Frequenz;
          end;
        end;
      end;
    end;
    //Adding Food from technologies
    if (science_api_getStatusByID(SAUCEPANS) = TRSComplete) then units := units + 2;
    result := units;
end;
  
function PeopleToFeed : LongInt;
  var
    base : TBase;
    people : LongInt;
    i : LongInt;
  begin
    people := 0;
    //calculate people in each base
    for i := 0 to base_api_GetBaseCount - 1 do begin
      base := base_api_GetBaseByIndex(i);
      people := people + base.LivingSpaceUsed;
    end;
  result := people;
end;
  
function FoodReserve : LongInt;
var
    base : TBase;
    amount : LongInt;
    i : LongInt;
  begin
    amount := 0;
    //count food in each base
    for i := 0 to base_api_GetBaseCount - 1 do begin
      base := base_api_GetBaseByIndex(i);
      amount := amount + storage_api_GetItemCountInBase(base.ID, NAHRUNG);
    end;
    result := amount;
  end;
end.
program util_food_consumption;

uses Konstanten, util_food_calculation;

procedure AddFoodToBases(amount : LongInt);
var
  spaceneeded, freestorage : double;
  base : TBase;
  i, parse : LongInt;
begin
  for i := 0 to base_api_GetBaseCount - 1 do begin
    base := base_api_GetBaseByIndex(i);
    spaceneeded := storage_api_GetItemByID(NAHRUNG).LagerV * amount;
    freestorage := base.StorageSpace - base.StorageSpaceUsed - spaceneeded;//calculating if there is enough space in this base
    if (freestorage > 0) then begin
      storage_api_PutItems(base.ID, NAHRUNG, amount);
      i := base_api_GetBaseCount; //End of loop because everything fited in
    end else begin
      parse := StrToInt(FloatToStr(freestorage/storage_api_GetItemByID(NAHRUNG).Lager V));//Casting  double to int
      storage_api_PutItems(base.ID, NAHRUNG, parse);
      amount := amount - parse;
    end;
  end;
end;

procedure RemoveFoodFromBases(amount : LongInt);
var
  base : TBase;
  storage, i : LongInt;
begin
  //Counting down food
  for i := 0 to base_api_GetBaseCount - 1 do begin
    base := base_api_GetBaseByIndex(i);
    storage := storage_api_GetItemCountInBase(base.ID,NAHRUNG);
    if (storage >= amount) then begin
      storage_api_DeleteItem(base.ID,NAHRUNG,amount);
      i := base_api_GetBaseCount; //End of loop because everyone is fed
      amount := -1; //otherwise the 'not fed people' loop will trigger
    end else begin
      storage_api_DeleteItem(base.ID,NAHRUNG,storage);
      amount := amount - storage;
    end;
  end;
  //Not fed people
  for amount := amount downto 0 do begin
    //in replacement for no manipulation of staff
    savegame_api_FreeCredits(-3000,kbSpK);
    //Message about problems
    game_api_MessageBox(Out_Of_Food);
  end;
  mission_win;
end;

procedure StartMission;
var
  personen, food : LongInt;
begin
  personen := PeopleToFeed;
  food := FoodProduction; //first remove the new produce food
  personen := personen - food;
  if (personen < 0) then AddFoodToBases(-personen)
  else if (personen > 0) then RemoveFoodFromBases(personen);
  mission_win;
end;

begin
  MissionName := 'util_food_consumption';
  MissionType := mzUser;
end.



an den beiden würde ich gerne als erstes die nahrungsproduktion und -verbrauch ändern. ich würde es gern in meine grundlegende ressource "Energie Zellen" umwandeln.
die produktionsgebäude bestehen bis jetzt nur aus einem kohlekraftwerk es soll aber noch Geothermische-, kern-, fusion-, und andere kraftwerke geben

falls ich irgentwas vergessen habe sagt mir bescheid
verfasst am: 29.04.2013, 10:54
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
GS:
Die Seie wird vermutlich in einer der units definiert, die über uses eingebunden wurden - zumal das TDXPage-Object StroyPageID, das diese Informationen enthält, nirgendwo sonst in dem Skript erwähnt wird.

TDXPage besitzt die Eigenschaft Backgroundname, darum geht es Dir wohl - Du musst die Stelle finden, wo die ganzen Bildschirme definiert werden. In dem Prolog-Script werden sie nur aufgerufen und modifiziert.


TWW:
Beachte jeweils die uses und berücksichtige die anderen eingebundenen units, in diesem Fall die Konstanten z.B. für die Rooms.

Bei der Food-Produktion werden einfach die Räume einer Basis mit den IDs für die Food-Räume verglichen, und wenn eine Übereinstimmung ist die entsprechende Produktion zum Lager addiert.
Das sind im wesentlichen alles reguläre und einfache Befehle, bei denen über die Konstanten die zum spielsatz gehörenden ID namentlich zugeordnet werden.
Hoier musst Du einfach Deine eigenen Räume definieren, die Konstanten und Namen entsprechend anpassen und es sollte funktionieren.

Was ist Dein Problem damit?
verfasst am: 29.04.2013, 18:45
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Der Background wird in init_game gesetzt

procedure InitMission;
var
  i                : Integer;
  CompExitButton   : TDXBitmapButton;
begin
  StoryPage := gui_api_GenerateNewPage;
  StoryPage.LoadFromXML('user\xml:Story');
  StoryPage.ResizePage(1024,768);
  StoryPage.ColorSheme:=icsGreen;
  StoryPage.BackGroundName := 'user\image:Sunset';
  StoryPage.PageIndex := StroyPageID;
...


Die Hintergründe für die Bodeneinsätze etc. sind in Init_Backgrounds ausgelagert, das ist aber z.T. etwas tricky.



:: Benutzer
» Name » Passwort
:: Deine Antwort
User: Passwd:
Bold Style  Italic Style  Underlined Style  bug linking  Preformatted  Code  Image Link  Insert URL  Email Link  Abschalten * Hilfe
Hilfe
 

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