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
GUI
- Mark
- Verpackungs-Wegwerfer
- Beiträge: 59
- Registriert: 08.05.2003, 22:38
- Wohnort: C:\DOTT
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.
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;
}
}