Monkey Island Template für AGS 2.7

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Patrick_LNB
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 14.05.2006, 21:59
Kontaktdaten:

Monkey Island Template für AGS 2.7

Beitrag von Patrick_LNB »

Hi,

ich suche ein deutsches Monkey Island (1/2) Template für AGS. Ich habe schon die SuFu und google benutzt aber nicht ist herausgekommen. Könnt ihr mir helfen?

Patrick_LNB
Nachts ist es kälter als draußen.
Über'n Berg ist's weiter als zu Fuß.

(Auszug LESERBRIEFE VGA 04/06)
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Übersetz es doch einfach.
Use gopher repellent on funny little man
Patrick_LNB
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 14.05.2006, 21:59
Kontaktdaten:

Beitrag von Patrick_LNB »

Werde ich wohl machen.
Nachts ist es kälter als draußen.
Über'n Berg ist's weiter als zu Fuß.

(Auszug LESERBRIEFE VGA 04/06)
Patrick_LNB
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 14.05.2006, 21:59
Kontaktdaten:

Beitrag von Patrick_LNB »

Jetzt sehe ich noch ein Problem dieses Template wurde mithilfe einer alten AGS-Version erstellt, wie heißt der GUI-Script denn jetzt:
z.B. SetCursorMode(x,y),....
Nachts ist es kälter als draußen.
Über'n Berg ist's weiter als zu Fuß.

(Auszug LESERBRIEFE VGA 04/06)
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Es gibt einen einfachen Trick den aktuellen Code rauszufinden: Klick im Script auf den Befehl, von dem du weißt, dass er nicht mehr stimmt und geh dann auf Help - Context-Sensitive Help (oder einfach F1). AGS sucht dann automatisch den aktuellen Befehl in der Hilfe.

Ein Doppenpost war hier übrigens nicht nötig, du kannst deine Posts editieren.
http://www.sinitrena.de.vu Meine Spiele: "A very special dog", "A magic stone", "James Bond - Who wants to live again?", "Lonely Night", "Death of an Angel", "The Witch, the Wizard and the Blue Cup", "Emerald Eyes"
Patrick_LNB
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 14.05.2006, 21:59
Kontaktdaten:

Beitrag von Patrick_LNB »

Gut, danke!

Was ich jetzt nicht verstehe ist, dass ich in der 2ten Zeile im Global Script erst die Klammer } dann diese { setzen soll trotzdem zeigt er an: line 2 unexpected '{' oder global script unexpected '{' function still open; ich finde aber keine noch offene Funktion.
Nachts ist es kälter als draußen.
Über'n Berg ist's weiter als zu Fuß.

(Auszug LESERBRIEFE VGA 04/06)
Philmaster
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 59
Registriert: 28.11.2006, 11:40
Wohnort: Österreich

Beitrag von Philmaster »

Vermutlich hast du in line 1 ein ";" vergessen. Solche Meldungen hatte ich auch schon^^

Kann aber sein, dass das hier wieder was gänzlich anderes ist, schau halt einfach mal nach, vielleicht ist es ja das. ;)
Ich bin weder, was ich sein werde, noch was ich war.
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Grundsätzlich empfiehlt es sich bei allen Fehlermeldungen immer das Script dazu zu posten (und das meint natürlich nicht nur die Zeile, in der der Fehler auftritt).
Es kann ein vergessenes ; sein, es kann sein, dass du irgendwo eine } zuviel oder zu wenig gesetzt hast. Poste dein Script oder such selber nochmal, mehr kann niemand dazu sagen.
Was ich jetzt nicht verstehe ist, dass ich in der 2ten Zeile im Global Script erst die Klammer } dann diese { setzen soll
Ich wüsste nicht, dass man irgendo erst eine schließende und dann eine öffnende Klammer setzen sollte. Das ist Unsinn. Woher hast du das, bzw. wie kommst du darauf?
http://www.sinitrena.de.vu Meine Spiele: "A very special dog", "A magic stone", "James Bond - Who wants to live again?", "Lonely Night", "Death of an Angel", "The Witch, the Wizard and the Blue Cup", "Emerald Eyes"
Patrick_LNB
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 14.05.2006, 21:59
Kontaktdaten:

Beitrag von Patrick_LNB »

Mein ganzer Skript habe ich jetzt wiederhergestellt, die Fehler korrigiere ich später aber ihr müsst mein Problem lösen

// main global script file

#sectionstart game_start // DO NOT EDIT OR REMOVE THIS LINE
function game_start() // called when the game starts, before the first room is loaded
{
}
#sectionend game_start // DO NOT EDIT OR REMOVE THIS LINE


#sectionstart repeatedly_execute // DO NOT EDIT OR REMOVE THIS LINE
function repeatedly_execute()
{
// put anything you want to happen every game cycle here
}
#sectionend repeatedly_execute // DO NOT EDIT OR REMOVE THIS LINE


#sectionstart on_key_press // DO NOT EDIT OR REMOVE THIS LINE
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.pcx"); // 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
}
#sectionend on_key_press // DO NOT EDIT OR REMOVE THIS LINE


#sectionstart on_mouse_click // DO NOT EDIT OR REMOVE THIS LINE
function on_mouse_click(MouseButton 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 == eMouseLeft)
{
ProcessClick(mouse.x,mouse.y, mouse.Mode);
}
else // right-click, so cycle cursor
{
mouse.SelectNextMode();
}
}
#sectionend on_mouse_click // DO NOT EDIT OR REMOVE THIS LINE


#sectionstart interface_click // DO NOT EDIT OR REMOVE THIS LINE
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
if (mouse.Mode == eModeInteract) {
SetGlobalInt(1,0);
SetGlobalInt(80,2);
}
if (button == 1) { // Öffne
if (mouse.Mode == eModeUsermode1) {
SetGlobalInt(80,3);
}
if (button == 2) { // Schau
if (mouse.Mode == eModeLookat) {
SetGlobalInt(80,8);
}
if (button == 3) { // Benutze
if (mouse.Mode == eModeUseinv) {
SetGlobalInt(1,1);
SetGlobalInt(80,7);
}
if (button == 4) { // schliesse
if (mouse.Mode == eModeUsermode1) {
SetGlobalInt(80,1);
}
if (button == 5) { // druecke
if (mouse.Mode == eModeUsermode2) {
SetGlobalInt(80,4);
}
if (button == 6) { // nimm
if (mouse.Mode == eModePickup) {
SetGlobalInt(80,6);
}
if (button == 7) { // rede
if (mouse.Mode == eModeTalkto) {
SetGlobalInt(80,9);
}
if (button == 8) { // ziehe
if (mouse.Mode == eModeUsermode2) {
SetGlobalInt(80,5);
}


}
}
#sectionend interface_click // DO NOT EDIT OR REMOVE THIS LINE


Wo ist die offene Funktion? Warum entstehen Smilies?
Nachts ist es kälter als draußen.
Über'n Berg ist's weiter als zu Fuß.

(Auszug LESERBRIEFE VGA 04/06)
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Beitrag von Rocco »

Patrick_LNB hat geschrieben:Mein ganzer Skript habe ich jetzt wiederhergestellt, die Fehler korrigiere ich später aber ihr müsst mein Problem lösen



#sectionstart interface_click // DO NOT EDIT OR REMOVE THIS LINE
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
if (mouse.Mode == eModeInteract) {
SetGlobalInt(1,0);
SetGlobalInt(80,2);
}
if (button == 1) { // Öffne
if (mouse.Mode == eModeUsermode1) {
SetGlobalInt(80,3);
}
if (button == 2) { // Schau
if (mouse.Mode == eModeLookat) {
SetGlobalInt(80,8);
}
if (button == 3) { // Benutze
if (mouse.Mode == eModeUseinv) {
SetGlobalInt(1,1);
SetGlobalInt(80,7);
}
if (button == 4) { // schliesse
if (mouse.Mode == eModeUsermode1) {
SetGlobalInt(80,1);
}
if (button == 5) { // druecke
if (mouse.Mode == eModeUsermode2) {
SetGlobalInt(80,4);
}
if (button == 6) { // nimm
if (mouse.Mode == eModePickup) {
SetGlobalInt(80,6);
}
if (button == 7) { // rede
if (mouse.Mode == eModeTalkto) {
SetGlobalInt(80,9);
}
if (button == 8) { // ziehe
if (mouse.Mode == eModeUsermode2) {
SetGlobalInt(80,5);
}


}
}
#sectionend interface_click // DO NOT EDIT OR REMOVE THIS LINE


Wo ist die offene Funktion? Warum entstehen Smilies?
also ohne jetzt genau nachgezählt zu haben, behaupte ich mal in diesem bereiche gibt es wesentlich mehr -> { als -> }

programmier naturgesetz nr. 1 (gilt auch in mathe soweit ich weiss)
jede geöffnete klammer muss auch wieder geschlossen werden.
bei dir gehen immer gleich 2-3 auf aber immer nur eine zu, da wirds dann unübersichtlich für den compiler ;-)
Patrick_LNB
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 14.05.2006, 21:59
Kontaktdaten:

Beitrag von Patrick_LNB »

Habe ich auch gerade gemerkt: if-satz angefangen; nicht geendet.

Wie kann ich denn die Textzeile (über den Knüpfen im GUI) programmieren?
Nachts ist es kälter als draußen.
Über'n Berg ist's weiter als zu Fuß.

(Auszug LESERBRIEFE VGA 04/06)
Patrick_LNB
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 14.05.2006, 21:59
Kontaktdaten:

Beitrag von Patrick_LNB »

Könnt ihr mir helfen diese Funktion ins heutige umzusetzen?

Code: Alles auswählen

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);
  }
EDIT: Habe vergessen den edit-Knopf zu drücken[/code]
Nachts ist es kälter als draußen.
Über'n Berg ist's weiter als zu Fuß.

(Auszug LESERBRIEFE VGA 04/06)
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Hm, hab ich nicht oben geschrieben, wie du den aktuellen Code rausfindest? Mit welchen Teilen hast du denn Probleme? Ob du es glaubst oder nicht, so schwer ist es nicht von alten auf neuen Code umzuschreiben, es ist nur ein wenig zeitaufwendig wenn man sich mit scripting noch nicht so gut auskennt.
was mir jetzt sofort auffällt (ich hab nicht vor das alles für dich neu zu schreiben):
string :arrow: String
StrCopy (madetext, ""); :arrow: madetext="";
GetCursorMode() :arrow: Mouse.Mode
StrCat(madetext,"Gehe zu "); :arrow: madetext=madetext.Append("Gehe zu");

Alles was ich gerade geschrieben habe kannst du in der Hilfe rausfinden. Das ist natürlich nicht exakt das, was du schreiben musst. Ich würde dringend dazu raten es einfach mal in der Hilfe nachzulesen.
Wenn du natürlich sagen würdest, wo genau du Probleme hast könnte ich auch eine genauere Anleitung geben, so wirkt es auf mich aber fast so, als wolltest du, dass jemand anderes die Arbeit für dich macht.
http://www.sinitrena.de.vu Meine Spiele: "A very special dog", "A magic stone", "James Bond - Who wants to live again?", "Lonely Night", "Death of an Angel", "The Witch, the Wizard and the Blue Cup", "Emerald Eyes"
Patrick_LNB
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 14.05.2006, 21:59
Kontaktdaten:

Beitrag von Patrick_LNB »

Nein Sinitrena, es geht mir nicht darum dass jemand anderes dir arbeit macht, bloß ich verstehe nicht gut Englisch und die Hilfe zeigt mir z.B. bei StrCopy | String.Append,usw. ich verstehe das nicht so recht, ich habe schon durch sämtliche Tutorials geprügelt (gibt es bei dir eigentlich noch diese Video-Tutorials?).
Ich habe damals mit AGS 2.62 angefangen und das ist fü mich jetzt irgendwie zu hoch geworden.
Nachts ist es kälter als draußen.
Über'n Berg ist's weiter als zu Fuß.

(Auszug LESERBRIEFE VGA 04/06)
Benutzeravatar
Problem
Logik-Lord
Logik-Lord
Beiträge: 1261
Registriert: 16.12.2004, 18:35
Wohnort: Kassel
Kontaktdaten:

Beitrag von Problem »

Du weißt aber, das fast alle alten Befehle noch funktionieren? Um das GUI zum laufen zu bekommen, musst du bei weitem nicht das ganze Skript umschreiben.
Antworten