Aktuelle Zeit: 06.09.2010, 16:26

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Eigene GUI: "Inventaritem auf Inventaritem benutzen"
BeitragVerfasst: 29.04.2010, 22:44 
Frischling
Frischling
Benutzeravatar
Offline

Registriert: 29.04.2010, 22:22
Beiträge: 2
Hallo.

Ich habe vor ein paar Tagen wieder angefangen mit AGS zu arbeiten und ein altes Projekt ausgebuddelt.

Dazu habe ich die GUI überbrückt und ein Coin-Interface implementiert.
Nach und nach hab ich auch alles zum Laufen bekommen, außer der Funktion, ein Inventaritem auf ein Inventaritem zu benutzen.

Das Scribt ruft die Funktion einfach nicht auf...

Ich bin mit meinem Latein am Ende und bitte um Hilfe.

AGS-Version: 3.1.2.82

Scriptauszuüge:
Code:
function iBrosche_UseInv()
{
  if (player.ActiveInventory == iKristall){
    player.LoseInventory (iKristall);
    player.LoseInventory (iBrosche);
    player.AddInventory (iKristallbrosche);
  }
}

Dieses Scipt wird nicht aufgerufen, obwohl ich keinen Grund finde, warum es nicht aufgerufen wird.

Code:
function InvProcess(int X,  int Y) {
  //Ermöglicht das Verarbeiten von Inventar-Clicks
 
  //Inventar wird clickable gemacht
  gui[gInv.ID].Clickable = true;
 
  //Ausführung der Aktion
  //----- Coin Aktionen werden im jeweiligen button-Click abgehandelt
 
  // geclicktes Guiteil ermitteln
  // 1. InventoryItem geklickt
  InventoryItem *item = InventoryItem.GetAtScreenXY (CoinX, CoinY);
  if (item != null)
  {
    if (player.ActiveInventory != null) {
      // - Click mit item auf Item --> Item mit Item benutzen
      Display ("Mode: %d[Inv: %s[CoinPos: %d,%d[clicked: %s",mouse.Mode, player.ActiveInventory.Name, CoinX, CoinY, item.Name);

ProcessClick (CoinX, CoinY, eModeUseinv);
Code:
    }
    else {
      // - Click auf Item --> Item aufnehemen
      player.ActiveInventory = item;
      mouse.Mode = eModeUseinv;
    }

  }
  //2. Button clicked
  GUIControl *theControl = GUIControl.GetAtScreenXY(CoinX, CoinY);
  if (theControl != null) {
    if (theControl == invScrollLeft) {
      //inventar nach links blättern
    }
    if (theControl == invScrollRight) {
      //inventar nach rechts blättern
    }
  }
  //Inventar wird wieder unclickable
  gui[gInv.ID].Clickable = false;
}

Aus dieser Funktion wird die Funktion oben aufgerufen. Die betreffende Zeile ist hervorgehoben (nicht im Codeblock).
Die Variblenwerte habe ich überprüft. Da sollte es keine Fehler geben.
Bei einer Schritt-für-Schritt-Überprüfung des Codes habe ich keine Fehler im Ablauf gefunden. Die Funktion wird einfach nicht aufgerufen.


Ich hoffe, dass ihr mir helfen könnt. Vielleicht findet ihr einen Fehler, den ich übersehen habe.

Gruß Gabriel


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Eigene GUI: "Inventaritem aufolve
BeitragVerfasst: 30.04.2010, 21:41 
Frischling
Frischling
Benutzeravatar
Offline

Registriert: 29.04.2010, 22:22
Beiträge: 2
Solved.

Zeile ersetzt durch:

item.RunInteraction (eModeUseinv);


Nach oben
 Profil  
 
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de