Seite 14 von 16

Verfasst: 13.09.2006, 15:14
von Anonymous1
Bin gerne breit, ähh, ich meine bereit! :wink:

Verfasst: 13.09.2006, 15:21
von [ZENSIERT]
Melde mich dazu, SIR!

Verfasst: 13.09.2006, 16:11
von hansa_export
Danke, dann haben wir ja 3! ;)

Tribble / Mulle The Striker / [ZENSIERT]

Danke schoneinmal!

mfg hansa :)

Verfasst: 14.09.2006, 12:56
von hansa_export
Ich habe ein Problem mit dem Türenskript.

Es funktioniert alles, ausser das bei einer offenen Tür nicht das Schliessen im GUI aufleuchtet (für die rechte Maustaste)! Habe es genauso gemacht wie in dem Bernhard Startpaket!

Und noch eine Frage, müssen die Nummern der Türen gleich sein wenn sie auch in 2 versch. Räumen sind. Z.B. Nummer 1 für Die Haustür außen und innen?!

mfg hansa :)

Verfasst: 14.09.2006, 13:16
von Mister L
Der Global-Int für die Tür muss der gleiche sein.

Hast du dem Hotspot auch die Bezeichnung Tür>v gegeben?

Verfasst: 14.09.2006, 13:18
von hansa_export
Ja!

Habe beim Hotspot der Tür unter any click on hotspot folgendes reingeschrieben >> if (any_click_on_door (1, 5, 402, 98, DIR_UP, 3, 69, 133, DIR_RIGHT) == 0) Unhandled ();

Die 5 ist das Objekt der offenen Tür und die 3 ist der Eingangsflur. Das Objekt der offenen Tür wird ja nicht weiter gescripted?! Unb beim Hotspot habe ich auch >v hinter. Schliessen kann ich sie ja, nur es leuchtet nicht im GUI auf, bzw. die rechte Maustaste funzt so nicht.

mfg hansa :)

Verfasst: 14.09.2006, 13:21
von Mister L
Dann steckt der Fehler woanders.

Am Besten postet du mal das Skript aus dem Raum und den Eintrag im Global-Script dazu.

Verfasst: 14.09.2006, 13:27
von hansa_export
OK

Room Script >>>

Code: Alles auswählen

// room script file


#sectionstart hotspot7_a  // DO NOT EDIT OR REMOVE THIS LINE
function hotspot7_a() {
  // script for Hotspot 7 (Hotspot 7): Any click on hotspot
if (any_click_on_door (19, 0, 402, 98, DIR_UP, 34, 69, 133, DIR_RIGHT) == 0) Unhandled ();       
}
#sectionend hotspot7_a  // DO NOT EDIT OR REMOVE THIS LINE



#sectionstart hotspot4_a  // DO NOT EDIT OR REMOVE THIS LINE

#sectionend hotspot4_a  // DO NOT EDIT OR REMOVE THIS LINE


#sectionstart hotspot5_a  // DO NOT EDIT OR REMOVE THIS LINE

#sectionend hotspot5_a  // DO NOT EDIT OR REMOVE THIS LINE





#sectionstart hotspot2_a  // DO NOT EDIT OR REMOVE THIS LINE
function hotspot2_a() {
  // script for Hotspot 2 (Gitter>v): Any click on hotspot
if (any_click_on_door (21, 2, 270, 132, DIR_UP, 44, 34, 123, DIR_DOWN) == 0) Unhandled ();     
}
#sectionend hotspot2_a  // DO NOT EDIT OR REMOVE THIS LINE

#sectionstart hotspot4_b  // DO NOT EDIT OR REMOVE THIS LINE
function hotspot4_b() {
  // script for Hotspot 4 (Schild): Look at hotspot
character[GetPlayerCharacter()].FaceLocation(466, 65);  
}
#sectionend hotspot4_b  // DO NOT EDIT OR REMOVE THIS LINE

#sectionstart hotspot1_a  // DO NOT EDIT OR REMOVE THIS LINE
function hotspot1_a() {
  // script for Hotspot 1 (Haustür>v): Any click on hotspot
if (any_click_on_door (1, 5, 402, 98, DIR_UP, 3, 69, 133, DIR_RIGHT) == 0) Unhandled ();       
}
#sectionend hotspot1_a  // DO NOT EDIT OR REMOVE THIS LINE

#sectionstart room_a  // DO NOT EDIT OR REMOVE THIS LINE
function room_a() {
  // script for Room: Player enters room (before fadein)
SetObjectClickable (5, 0);   
}
#sectionend room_a  // DO NOT EDIT OR REMOVE THIS LINE
Ist noch etwas durcheinander die anderen Hotspots fliegen da noch raus...wichtig ist hier der hotspot 1! ;)

Welchen Teil aus dem globalen?

mfg hansa :)

Nachtrag: Die Grundlage bildete das Bernard Startpaket für 2.71! Habe die Räume geändert, bzw. ergänzt, also müsste im globalen Script/Script Header/GUI/Cursor/Einstellungen alles richtig sein!

Verfasst: 14.09.2006, 13:51
von Mister L
Im Globalen-Script gibt es einige Zeilen, die man für neue Türen ergänzen muss.

such mal nach "OpenCloseExtension", da müssen noch neue Zeilen dahinter.

Verfasst: 14.09.2006, 14:02
von hansa_export
Das steht da bei mir >>>

Code: Alles auswählen

function OpenCloseExtension (int gi, string location){
  if ((GetGlobalInt (gi) == 0) || (GetGlobalInt (gi) == 2)) AddExtension ('o', location);
  else                                                      AddExtension ('c', location);
}

function VariableExtensions (string location){
  // put here wich extension will show the things with variable extension (>v)
  int r = character [GetPlayerCharacter ()].room;
  int o = GetObjectAt (mouse.x, mouse.y);
  int h = GetHotspotAt (mouse.x, mouse.y);
  
       if ((r == 1) && (h == 4)) OpenCloseExtension (3, location);
  else if ((r == 2) && (h == 2)) OpenCloseExtension (3, location);
  else if ((r == 2) && (h == 1)) OpenCloseExtension (4, location);
  else if ((r == 3) && (h == 1)) OpenCloseExtension (4, location);
  else if ((r == 2) && (h == 4)) OpenCloseExtension (5, location);  
  else if ((r == 4) && (h == 2)) OpenCloseExtension (5, location);  
  else if ((r == 2) && (h == 3)) OpenCloseExtension (6, location);
  else if ((r == 5) && (h == 2)) OpenCloseExtension (6, location);
  else if ((r == 6) && (h == 1)) OpenCloseExtension (7, location);
  else if ((r == 7) && (h == 1)) OpenCloseExtension (7, location);
  else if ((r == 6) && (h == 2)) OpenCloseExtension (8, location);
  else if ((r == 9) && (h == 1)) OpenCloseExtension (8, location);
  else if ((r == 9) && (h == 2)) OpenCloseExtension (9, location);
  else if ((r == 10) && (h == 1)) OpenCloseExtension (9, location);
  else if ((r == 10) && (h == 2)) OpenCloseExtension (10, location);
  else if ((r == 11) && (h == 1)) OpenCloseExtension (10, location);
  else if ((r == 8) && (h == 3)) OpenCloseExtension (11, location);
  else if ((r == 12) && (h == 1)) OpenCloseExtension (11, location);
Wie ist das zu verstehen? Habe schon lange nix mehr gescripted, aber das kann ich nicht ganz nachvollziehen!

mfg hansa :)

Ps.: Hbae z.B. mal folgendes ergänzt

Code: Alles auswählen

else if ((r == 1) && (h == 1)) OpenCloseExtension (1, location);
R als Raumnummer? H als Hotspotnummer und die 1 hinten für die Tür Nr. 1 (GI) aber das funzte auch net!

Verfasst: 14.09.2006, 14:22
von hansa_export
Nachtrag: Es geht! ;)

Danke!

mfg hansa :)

Ps.:

Fortschritt (15.09. 14:00):
  • Räume "verbinden": 83 %
    Animationen/Objekte: 7 %
    Gimmicks/Extras: 0 %

Verfasst: 15.09.2006, 21:01
von hansa_export
Habe fast alle Räume verbunden, habe noch zwei kleine Probleme:
  • Mit any_click.... behandle ich ja die Türen, das funktioniert soweit rebungslos wenn ich sie zuerst öffne und dann schließe. Wie mache ich das andersrum, d.h. eine Tür soll bereits offen sein. Das läuft so ab, das ich eine Leiter hinauf gehe und in den nächsten Raum wechsle (mit Region). Nun soll dort die Luke offen sein. Sie ist aber noch verschlossen und er zeigt das offene Bild an... Wie löse ich das?
  • Und noch was zu der Option das man einzelne Räume sperrt, wie setze ich die GI's der Türen fest. Wollte da einen festen Platz für im Script integrieren wo man die GI's der Türen verändern kann. Ansonsten würde ich das selber über eigene Variablen regeln, aber du (MisterL) schriebst das es da ja eine Option gibt beim Türenscript!? Und was genau muss noch bei der funktion any_click... dafür geändert werden?
Hinzu kommt noch die Möglichkeit ganze Stockwerke zu sperren wenn sie nicht benötigt werden! ;) Aber da weiss cih schon wie ich das mache! ;)

mfg hansa :)

Verfasst: 15.09.2006, 21:10
von KhrisMUC
Setz die GI der Luke auf 1. Entweder in der game_start, oder in der "First time player enters screen" des Raumes.

Um einen Raum abzuschließen, nimmst Du any_click_on_door_special.

Beide Punkte sind hier gut erklärt:
http://www.adventure-treff.de/forum/vie ... php?t=7529 (2. Beitrag)

Verfasst: 15.09.2006, 21:13
von hansa_export
Ok vielen Dank, werde das mal nachher ausprobieren! ;)

mfg hansa :)

Verfasst: 15.09.2006, 21:37
von hansa_export
Muss ich jetzt bei jedem Hotspot einer Tür anstatt any_click_on_door any...special nehmen? Um sie verschliessen zu können?

mfg hansa :)

Ps.: Das mit der Luke funzt einwandfrei! ;)