GUI

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
BigDaniel15

GUI

Beitrag von BigDaniel15 »

ICh habe den mitgelieferten Day of the Tentacle GUI von Ags importiert diesen habe ich nach meinen vorstellungen verändert
allerdings habe ich noch eine Frage wie kann ich es schaffen das
wenn ich z.B. auf "Schauen" klicke das an der obersten stelle des GUI`s wo immer (veränderbar) WALK steht das dort SCHAUEN z.B.
steht und das geliche auch bei den anderen GUI optionen!

????????????????????????????????????????????????????????

HELP
Benutzeravatar
Mark
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 59
Registriert: 08.05.2003, 22:38
Wohnort: C:\DOTT

Beitrag von Mark »

Bei meiner bisherigen Demo funktioniert das ganz gut. Hier mal der Code meiner gesamten GUI. Sie beeinhaltet auch Standardantworten für nicht definierte Aktionen, das "Gib xxx an xxx" und das "Benutze xxx mit xxx"- System.
Den Code musst du evtl. anpassen, das dürfte aber nicht zu schwierig sein.

Danke an LucasFan, er hat diesen hier (bis auf kleine Änderungen von mir) fabriziert.

Code: Alles auswählen

// main global script file
  string name,invent,idont;
function unhandled_event (int what, int type) {
  GetLocationName(mouse.x,mouse.y,name);
  
if ((what==1) && (type==1)) // Look at hotspot
      DisplaySpeech(EGO, "Ich sehe nichts Besonderes."); 
   else if ((what==1) && (type==2)) // Interact with hotspot
      DisplaySpeech(EGO, "Das wird nicht funktionieren."); 
   else if ((what==1) && (type==3)) // Use inventory on hotspot
      DisplaySpeech(EGO, "Das klappt so nicht.");       
   else if ((what==1) && (type==4)) // Talk to hotspot
      DisplaySpeech(EGO, "Das klappt so nicht.");
   else if ((what==1) && (type==7)) // Pick up hotspot
      DisplaySpeech(EGO, "Das kann ich nicht nehmen.");
   else if ((what==2) && (type==0)) // Look at object
      DisplaySpeech(EGO, "Ich sehe nichts Besonderes."); 
   else if ((what==2) && (type==1)) // Interact with object
      DisplaySpeech(EGO, "Das wird nicht funktionieren.");
   else if ((what==2) && (type==2)) // Talk to object
      DisplaySpeech(EGO, "Das klappt so nicht.");
   else if ((what==2) && (type==3)) // Use inventory on object
      DisplaySpeech(EGO, "Das klappt so nicht.");
   else if ((what==2) && (type==5)) // Pick up object
      DisplaySpeech(EGO, "Das kann ich nicht nehmen.");
   else if ((what==3) && (type==0)) // Look at character
      DisplaySpeech(EGO, "Ich sehe nichts Besonderes."); 
   else if ((what==3) && (type==1)) // Interact with character
      DisplaySpeech(EGO, "Nicht mein Typ.");
   else if ((what==3) && (type==2)) // Speak to character
      DisplaySpeech(EGO, "Sieht nicht sehr gesprächig aus.");
   else if ((what==3) && (type==3)) // Use inventory on character
      DisplaySpeech(EGO, "Besser nicht.");
   else if ((what==5) && (type==0)) // Look at inventory
      DisplaySpeech(EGO, "Das ist ein nicht authorisierter Gegenstand den ich hier bei mir trage.");
   else if ((what==5) && (type==1)) // Interact with inventory (currently not possible) 
      DisplaySpeech(EGO, "Das wird nicht funktionieren.");
   else if ((what==5) && (type==2)) // Speak to inventory
      DisplaySpeech(EGO, "Das klappt so nicht.");
   else if ((what==5) && (type==3))  // Use an inventory item on another
      DisplaySpeech(EGO, "Das wird nicht funktionieren.");           
   else if ((what==5) && (type==4)) // Other click on inventory
      DisplaySpeech(EGO, "Das klappt so nicht.");             
}


function game_start() {
  // called when the game starts, before the first room is loaded
  game.items_per_line=4;
  game.num_inv_displayed=8;
  }

function repeatedly_execute() {
  string buffer;
  string madetext;
  int cur_mode;
  int useorgive;
  StrCopy (madetext, "");
  cur_mode = GetCursorMode();
  if (cur_mode == MODE_WALK)
    StrCat(madetext,"Gehe zu ");
  else if (cur_mode == MODE_LOOK)
    StrCat (madetext,"Schau an ");
  else if ((cur_mode == MODE_USE) && (GetGlobalInt(1)==1))
    StrCat(madetext,"Benutze ");
  else if ((cur_mode == MODE_USE) && (GetGlobalInt(1)==0))
    StrCat(madetext,"Gib ");
  else if (cur_mode == MODE_TALK)
    StrCat(madetext,"Rede mit ");
  else if (cur_mode == 5)
    StrCat(madetext,"Nimm ");
  else if ((cur_mode == 4) && (GetGlobalInt(1)==1))
    {
    StrCat(madetext,"Benutze ");
    GetInvName (player.activeinv, buffer);
    StrCat(madetext,buffer);
    StrCat(madetext," mit ");
    }
  else if ((cur_mode == 4) && (GetGlobalInt(1)==0))
    {
    StrCat(madetext,"Gib ");
    GetInvName (player.activeinv, buffer);
    StrCat(madetext,buffer);
    StrCat(madetext," an ");
    }

  else if (cur_mode == 8) {
    if (GetGlobalInt(80) == 1) StrCat(madetext,"Schließe ");
    if (GetGlobalInt(80) == 2) StrCat(madetext,"Gib ");
    if (GetGlobalInt(80) == 3) StrCat(madetext,"Öffne ");
    if (GetGlobalInt(80) == 4) StrCat(madetext,"Drücke ");
    if (GetGlobalInt(80) == 5) StrCat(madetext,"Ziehe ");
    }

  // Find out what's under the cursor, and add it to the status line
  GetLocationName(mouse.x,mouse.y,buffer);
  StrCat(madetext,buffer);
  SetLabelText ( 0, 12, madetext);
  }

function on_key_press(int keycode) {
  // called when a key is pressed. keycode holds the key's ASCII code
  if (IsGamePaused() == 1) keycode=0;  // game paused, so don't react to keypresses
  if (keycode==17)  QuitGame(1);   // Ctrl-Q
  if (keycode==363) SaveGameDialog();   // F5
  if (keycode==365) RestoreGameDialog();  // F7
  if (keycode==367) RestartGame();  // F9
  if (keycode==434) SaveScreenShot("scrnshot.bmp");  // F12
  if (keycode==9)   InventoryScreen();  // Tab, show inventory
  if (keycode==19)  Debug(0,0);  // Ctrl-S, give all inventory
  if (keycode==22)  Debug(1,0);  // Ctrl-V, version
  if (keycode==1)   Debug(2,0);  // Ctrl-A, show walkable areas
  if (keycode==24)  Debug(3,0);  // Ctrl-X, teleport to room
  }

function on_mouse_click(int button) {
  // called when a mouse button is clicked. button is either LEFT or RIGHT
  if (IsGamePaused() == 1) {
    // Game is paused, so do nothing (ie. don't allow mouse click)
    }
  else if (button==LEFT) {
    ProcessClick(mouse.x, mouse.y, GetCursorMode() );
    SetCursorMode(MODE_WALK);
   
    }
   else if (button==RIGHT) {
    if (GetLocationType(mouse.x, mouse.y)==2)
	{ SetGlobalInt(80,9);
        string buffer;
         string madetext;
         StrCopy (madetext, "");
         GetLocationName(mouse.x,mouse.y,buffer);
         StrCat(madetext,"Rede mit ");
         StrCat(madetext,buffer);
         SetLabelText ( 0, 12, madetext);
          ProcessClick(mouse.x, mouse.y, MODE_TALK);
          SetGlobalInt(80,0); }
    else
         { FaceLocation(GetPlayerCharacter(), mouse.x, mouse.y );
           ProcessClick(mouse.x, mouse.y, MODE_LOOK);
           SetCursorMode(MODE_WALK);
           }
    }
  }

function interface_click(int interface, int button) {
  // this GUI system uses GlobalInt 80 to store which of the extended
  // modes is in use (close, give, push, pull, etc)


  if (interface == 0) {
    if (button == 0) {   // Gib
      SetCursorMode(2);
      SetGlobalInt(1,0);
      SetGlobalInt(80,2);      
      }
    if (button == 1) {   // Öffne
      SetCursorMode(8);
      SetGlobalInt(80,3);
      }
    if (button == 2) {   // Schau
      SetCursorMode(1);
      SetGlobalInt(80,8);
      }
    if (button == 3) {   // Benutze
      SetCursorMode(2);
      SetGlobalInt(1,1);
      SetGlobalInt(80,7);      
      }
    if (button == 4) {   // schliesse
      SetCursorMode(8);
      SetGlobalInt(80,1);
      }   
    if (button == 5) {   // druecke
      SetCursorMode(8);
      SetGlobalInt(80,4);
      }
    if (button == 6) {   // nimm
      SetCursorMode(5);
      SetGlobalInt(80,6);
      }
    if (button == 7) {   // rede
      SetCursorMode(3);
      SetGlobalInt(80,9);
      }
    if (button == 8) {   // ziehe
      SetCursorMode(8);
      SetGlobalInt(80,5);
      }

    if ((button == 10) & (game.top_inv_item < game.num_inv_items - 7))
      game.top_inv_item = game.top_inv_item + 4;
    if ((button == 9) & (game.top_inv_item > 0))
      game.top_inv_item = game.top_inv_item - 4;
    }
}
Gast

Beitrag von Gast »

THX nachdem ich es an mein Spiel angepasst hatte funktionierte dein script 100% DANKE!
Gast

Beitrag von Gast »

Gern geschehen... :)
Antworten