Seite 8 von 9

Verfasst: 13.06.2005, 17:10
von KhrisMUC
Mulle The Striker hat geschrieben:Bitte sag mir, wie ich das Problem beheben kann.
Zu einer der "Player enters screen"-Interactions von Raum 51 fügst Du hinzu:

Code: Alles auswählen

SetGlobalInt(x,1);
Dann änderst Du dein Skript wie folgt ab:

Code: Alles auswählen

if (HasPlayerBeenInRoom(51) && GetGlobalInt(x)==1) {
  SetGlobalInt(x)==0;
  DisplaySpeech(GetPlayerCharacter(),"Puh, dieses ständige Wasserholen und Ansprühen haben mir Zeit und Nerven gekostet."); 
  DisplaySpeech(GetPlayerCharacter(),"Das schlimmste war noch, Ratten als tägliche Mahlzeit zu verspeisen."); 
  DisplaySpeech(GetPlayerCharacter(),"Da bevorzuge ich doch lieber Hamster als Nahrung."); 
  PlayMusic(22); 
  GUIOn(0); 
  GUIOn(1);
}
-statt dem x verwendest Du natürlich die Nummer einer freien GlobalInt.
-...und Ansprühen hat mich Zeit...

Verfasst: 13.06.2005, 17:19
von Anonymous1
Danke für den Rechtschreibfehler, khrismuc (wie peinlich! :oops: ).
Ich versuch das nochmal.
Danke, auch wenn es nicht klappen sollte.

Verfasst: 13.06.2005, 17:23
von Killerseven
Ein Weltwunder ist geschehen!!
Es hat geklappt!!
Danke an alle die mir geholfen haben!!!
VIELEN VIELEN DANK!!

Verfasst: 13.06.2005, 17:48
von Anonymous1
Apropos GlobalInt, aber wie erstelle ich überhaupt einen?

Verfasst: 13.06.2005, 17:50
von KhrisMUC
Musst Du nicht, sobald Du SetGlobalInt(x, y) verwendet hast, existiert er.

Verfasst: 13.06.2005, 17:51
von Anonymous1
Achso, gut.
Nochmals danke!
Ich hatte bei meiner letzten Episode nie den GlobalInt genutzt.
Deswegen auch meine Frage.

...

Verfasst: 13.06.2005, 18:07
von Floyd
khrismuc hat geschrieben:Musst Du nicht, sobald Du SetGlobalInt(x, y) verwendet hast, existiert er.
Wieder was gelernt :) ! Ich dachte bis jetzt immer, man müsste die GlobalInts zunächst im global script definieren!
MfG Floyd

Verfasst: 13.06.2005, 18:24
von fireorange
Mulle The Striker hat geschrieben:Danke für den Rechtschreibfehler, khrismuc (wie peinlich! :oops: ).
Ich würde es eher als Grammatikfehler bezeichnen... :lol: :wink:

Verfasst: 13.06.2005, 18:59
von Anonymous1
Versucht und schon wieder nix geworden.

Ich hab SetGlobalInt bei Raum 51 eingesetzt.

Mein Ziel ist jedoch, dass er im Raum 25 den Text ausspricht und sich dann nicht wiederholen soll.

Ich hab nämlich folgenden Skript eingesetzt:

Code: Alles auswählen

if (HasPlayerBeenInRoom(51) && GetGlobalInt(0)==1)
{
 SetGlobalInt(0,1)==0;  
 DisplaySpeech(GetPlayerCharacter(),"Puh, dieses ständige Wasserholen und Ansprühen hat mich Zeit und Nerven gekostet.");
 DisplaySpeech(GetPlayerCharacter(),"Das schlimmste war noch, Ratten als tägliche Mahlzeit zu verspeisen.");
 DisplaySpeech(GetPlayerCharacter(),"Da bevorzuge ich doch lieber Hamster als Nahrung.");
 PlayMusic(22);
 GUIOn(0);
 GUIOn(1);  
}
Was habe ich falsch gemacht?

...

Verfasst: 13.06.2005, 19:28
von Floyd
Es muss

Code: Alles auswählen

SetGlobalInt (1,0);
heißen, und nicht, wie du schreibst,

Code: Alles auswählen

SetGlobalInt(0,1)==0;
!

Bei SetGlobalInt (x,y); ist x die Nummer der Variable und y der Wert.

MfG Floyd

Verfasst: 13.06.2005, 19:34
von [ZENSIERT]
Und abgefragt? Natürlich mit GetGlobalInt(), das eine gültige GlobalInt-ID als Argument entgegennimmt und den Wert dieses GlobalInts zurückgibt!

Verfasst: 13.06.2005, 22:17
von Anonymous1
Leute, langsam verliere ich die Nerven.
Da ich das erstmal mit den Variabeln arbeite, kann man mit Fehlern rechnen.
Obwohl ihr mir sehr viele Tipps gegeben habt, hat mir das nicht weitergeholfen.
Mein letzter Eintrag war folgender:

Code: Alles auswählen

SetGlobalInt(0,1);
if (HasPlayerBeenInRoom(51) && GetGlobalInt(0)==0)
{
 FaceDirection(GetPlayerCharacter(),DIR_DOWN);
}
else if (HasPlayerBeenInRoom(51) && GetGlobalInt(0)==1)
{
 SetGlobalInt(0,1)==0;  
 DisplaySpeech(GetPlayerCharacter(),"Puh, dieses ständige Wasserholen und Ansprühen hat mich Zeit und Nerven gekostet.");
 DisplaySpeech(GetPlayerCharacter(),"Das schlimmste war noch, Ratten als tägliche Mahlzeit zu verspeisen.");
 DisplaySpeech(GetPlayerCharacter(),"Da bevorzuge ich doch lieber Hamster als Nahrung.");
 PlayMusic(22);
 GUIOn(0);
 GUIOn(1); 
 SetGlobalInt(0,2); 
}


Ich bitte euch Leute, wenn ich das nicht richtig mache, dann geb mir bitte einen ausführlichen und detailreichen Beispiel, wie ich da vorgehen soll.
Ich wäre wirklich sehr, sehr glücklich darüber, wenn es mal klappen würde.

Verfasst: 13.06.2005, 22:34
von Rocco
Mulle The Striker hat geschrieben: Mein letzter Eintrag war folgender:

Code: Alles auswählen

SetGlobalInt(0,1);  < das gehört hier nicht hin, 
if (HasPlayerBeenInRoom(51) && GetGlobalInt(0)==0)
{
 FaceDirection(GetPlayerCharacter(),DIR_DOWN);
}
else if (HasPlayerBeenInRoom(51) && GetGlobalInt(0)==1)
{
 SetGlobalInt(0,1)==0;   < funktioniert so nicht
 DisplaySpeech(GetPlayerCharacter(),"Puh, dieses ständige Wasserholen und Ansprühen hat mich Zeit und Nerven gekostet.");
 DisplaySpeech(GetPlayerCharacter(),"Das schlimmste war noch, Ratten als tägliche Mahlzeit zu verspeisen.");
 DisplaySpeech(GetPlayerCharacter(),"Da bevorzuge ich doch lieber Hamster als Nahrung.");
 PlayMusic(22);
 GUIOn(0);
 GUIOn(1); 
 SetGlobalInt(0,2); 
}



if (HasPlayerBeenInRoom(51) && GetGlobalInt(0)==0)
{
DisplaySpeech(GetPlayerCharacter(),"Puh, dieses ständige Wasserholen und Ansprühen hat mich Zeit und Nerven gekostet.");
DisplaySpeech(GetPlayerCharacter(),"Das schlimmste war noch, Ratten als tägliche Mahlzeit zu verspeisen.");
DisplaySpeech(GetPlayerCharacter(),"Da bevorzuge ich doch lieber Hamster als Nahrung.");
PlayMusic(22);
GUIOn(0);
GUIOn(1);
SetGlobalInt(0,1);

}
else if (HasPlayerBeenInRoom(51) && GetGlobalInt(0) == 1)
{
FaceDirection(GetPlayerCharacter(),DIR_DOWN);
}

versuchs mal so,
zu deiner version, das erste setGlobalInt gehört hier nicht her,
sondern je nachdem was du vor hast in den If players enters screen bereich oder so.
so wie es bei dir steht setzt du jedesmal bevor du zu deiner funktion kommst den wert auf 1 und es wird immer der if else
zweig ausgeführt.
SetGlobalInt(0,1)==0; das macht nicht das gewünschte auch hier setzt den wert der variablen 0 auf 1. und nicht auf 0 was du vor hast, da müsstest du folgendes schreiben SetGlobalInt(0,0);

...

Verfasst: 13.06.2005, 23:18
von Floyd
Sollte es immer noch nicht funktionieren, lösch am besten das ganze script. Es neu zu schreiben, erscheint mir sehr viel einfacher, als dauernd Änderungen daran vorzunehmen, da hierbei irgendwann die Übersicht verloren geht. Wenn du willst, kannst du mir das Spiel auch zuschicken, die Mailadresse hab ich dir jedenfalls mal geschickt. MfG Floyd

Verfasst: 14.06.2005, 01:28
von Anonymous1
HALLELUJA, HALLELUJA!!!
ENDLICH, ICH WURDE GEHEILT!!! :D

ummm..., ach schwachsinn.

Vielen Dank Rocco, dass du dir die Mühe gemacht hast, den Skript für mich umzustellen.
Und wie du anhand meines erlösenden Schreies erkennen konntest, hat es endlich geklappt.
Hoffentlich passiert mir das nicht nochmal.
Ich werde mir den Skript gut merken.
Vielen Dank nochmal und auch an Floyd und khrismuc, ihr habt es wirklich verdient in den Credits erwähnt zu werden.

@Floyd: Wenn du mein Spiel gerne testen möchtest, muss du noch einige Zeit Geduld haben. Ich arbeite gerade noch an den ersten Teil meiner Episode. Wenns soweit ist, schicke ich dir die Daten zu dir rüber.

Okay Jungs, ich werde erstmal die verlorene Zeit für meine Episode nachholen.
Ich werde mich erst am Wochenende im Forum wiedermelden.
Machs gut!
Euer Mulle The Striker! 8) 8) 8)