Autor Thema: Spezielles Türen-Script  (Gelesen 10834 mal)

NsMn

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Spezielles Türen-Script
« am: 23. Mai 2008, 16:12:55 »
Ich hätte mal eine Frage zu folgendem script(hab ich selbst ausgetüftelt):
Hotspot 2:
if(UsedAction(A_OPEN)){
player.Walk(271, 127,eBlock,eWalkableAreas);
ObjectOn(0);
PlaySound(2);
RestoreWalkableArea(3);
DisableHotspot(2);
}
else Unhandled(); 
Objekt 0:
...
else if(UsedAction(A_CLOSE)){
player.Walk(269, 131, eBlock, eWalkableAreas);
FaceDirection(player.ID, DIR_RIGHT);
PlaySound(3);
ObjectOff(0);
EnableHotspot(2);
RemoveWalkableArea(3);
}
...
Gibt es dafür keine einfachere Lösung?
« Letzte Änderung: 23. Mai 2008, 16:17:08 von edna_mausi »

LilaQ

  • kleiner Tentakel
  • ***
  • Beiträge: 227
  • Geschlecht: Männlich
  • Fork you! :(){ :|:& };:
    • Profil anzeigen
Re: Spezielles Türen-Script
« Antwort #1 am: 23. Mai 2008, 16:35:55 »
Was möchtest du daran denn noch einfacher haben? Ist doch schon relativ slim.
Entwicklungsstatus:

A Christmas Odyssey

- [ GAME ] 100% Done
- [ TRANSLATION ] 71% Done

Bernard on a Boattrip(WT)

- [ GAME ]    1% Done
  >> Story: 10%
  >> Graphics: 1%
  >> Code: 0%
- [ TRANSLATION ] 0%
---------
http://theadventurebl0g.wordpress.com/

NsMn

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Spezielles Türen-Script
« Antwort #2 am: 23. Mai 2008, 16:40:48 »
Okay.Aber wie müsste ich das schreiben,damit ich es als functionsbei AGS importieren könnte?
also das die functions lauten:
tuerHotspot(int object,int walkable Area,close string)
tuerObject(int hotspot,int walkable Area,open string,int new room)
PS:open string:was gesagt wird wenn die offene Tür geöffnet werden soll
close String:was gesagt wird wenn die geschlossene Tür geschlossen werden soll
Edit:Ach,das wäre wohl noch komplizierter ;)
« Letzte Änderung: 23. Mai 2008, 16:57:21 von edna_mausi »

LilaQ

  • kleiner Tentakel
  • ***
  • Beiträge: 227
  • Geschlecht: Männlich
  • Fork you! :(){ :|:& };:
    • Profil anzeigen
Re: Spezielles Türen-Script
« Antwort #3 am: 23. Mai 2008, 17:17:51 »
Entwicklungsstatus:

A Christmas Odyssey

- [ GAME ] 100% Done
- [ TRANSLATION ] 71% Done

Bernard on a Boattrip(WT)

- [ GAME ]    1% Done
  >> Story: 10%
  >> Graphics: 1%
  >> Code: 0%
- [ TRANSLATION ] 0%
---------
http://theadventurebl0g.wordpress.com/

Kaktus

  • volljähriger Tentakel
  • *****
  • Beiträge: 755
  • Geschlecht: Männlich
  • Waaaah!
    • Profil anzeigen
    • E-Mail
Re: Spezielles Türen-Script
« Antwort #4 am: 23. Mai 2008, 18:16:52 »
function tuerHotspot(int tuerObject, int tuerHotspot, int tuerWalkable, const string closeString){
     if(UsedAction(A_OPEN))
     {
          PlaySound(2);
          object[tuerObject].Visible=1;
          RestoreWalkableArea (tuerWalkable);
          hotspot[tuerHotspot].Enabled=0;

      }
     else if(UsedAction(A_CLOSE)) player.Say(closeString);
     else return 0;
}

function tuerObject(int tuerObject, int tuerHotspot, int tuerWalkable, const string openString, int newRoom){
     if(UsedAction(A_CLOSE))
     {
          PlaySound(3);
          object[tuerObject].Visible=0;
          RemoveWalkableArea (tuerWalkable);
          hotspot[tuerHotspot].Enabled=1;
      }
     else if(UsedAction(A_OPEN)) player.Say(openString);
     else if(UsedAction(A_WALK_TO)) player.ChangeRoom(newRoom);
     else return 0;
}

So könnte es dann beispielsweise im Script vom Hotspot aussehen:
if(MovePlayer(271,127){
     if(tuerHotspot(0, 2,3, "Die ist schon geschlossen.")){}
     else if (UsedAction(A_LOOK_AT)) player.Say("Das ist eine schöne, geschlossene Tür.");
     else Unhandled();
}
und vom Objekt:
if(any_click_move(271,127, DIR_RIGHT){
     if(tuerObject(0, 2,3, "Die ist schon geöffnet.",1)){}
     else if (UsedAction(A_LOOK_AT)) player.Say("Das ist eine schöne, geöffnete Tür.");
     else Unhandled();
}

Nicht getestet, aber sollte funktionieren. (Vielleicht ist irgendwo noch ein Tippfehler drin ;) )
« Letzte Änderung: 23. Mai 2008, 18:19:03 von Kaktus »

NsMn

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Spezielles Türen-Script
« Antwort #5 am: 23. Mai 2008, 18:19:25 »
Super!Wenn ich jetzt noch die anderen Ints(Koordinaten etc)dazunehme spart das mir vie Arbeit!Danke!
Edit:Es werden die ganze Zeit Fehler angezeigt, dass ich kein "FaceDirection" benutzen darf  ???
Hier wäre mein Script:
function DoorO( int GI, int doorobject, int dir,int doorhotspot, int walkableArea, const string open,const string lookat, int x, int y){
    if(UsedAction(A_CLOSE)){
    player.Walk(x, y, eBlock, eWalkableAreas);
    FaceDirection(player.ID, dir);
    PlaySound(3);
    ObjectOff(doorobject);
    EnableHotspot(doorhotspot);
    RemoveWalkableArea(walkableArea);
    SetGlobalInt(GI, 0);
    }
    else if(UsedAction(A_LOOK_AT)){
      player.Walk(x, y, eBlock, eWalkableAreas);
      FaceDirection(player.ID, dir);
      Display(lookat);
    }
    else if(UsedAction(A_OPEN)){
      player.Walk(x, y, eBlock, eWalkableAreas);
      FaceDirection(player.ID, dir);
      Display(open);
    }
      else Unhandled();
}
« Letzte Änderung: 23. Mai 2008, 19:39:04 von edna_mausi »

Kaktus

  • volljähriger Tentakel
  • *****
  • Beiträge: 755
  • Geschlecht: Männlich
  • Waaaah!
    • Profil anzeigen
    • E-Mail
Re: Spezielles Türen-Script
« Antwort #6 am: 23. Mai 2008, 20:22:02 »
Also für mich sieht es richtig aus. Wie lautet denn die genaue Fehlermeldung?


Nebenbei bemerkt solltest du den Charakter niemals mit Block zu einem Hotspot laufen lassen.

NsMn

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Spezielles Türen-Script
« Antwort #7 am: 24. Mai 2008, 07:53:32 »
"already referenced name as import;you must define it before using it"
EdiT:das script wäre jetzt so:
function DoorO( int GI, int doorobject, int dir,int doorhotspot, int walkableArea, const string open,const string lookat, int x, int y){
    if(UsedAction(A_CLOSE)){
    MovePlayer(x, y);
    FaceDirection (GetPlayerCharacter (), dir);
    PlaySound(3);
    ObjectOff(doorobject);
    EnableHotspot(doorhotspot);
    RemoveWalkableArea(walkableArea);
    SetGlobalInt(GI, 0);
  }
  else if(UsedAction(A_OPEN)){
    MovePlayer(x, y);
    FaceDirection (GetPlayerCharacter (), dir);
      Display(open);
}
    else if(UsedAction(A_LOOK_AT)){
      MovePlayer(x, y);
      FaceDirection (GetPlayerCharacter (), dir);
      Display(lookat);
    }
    else return 0;
     
}
« Letzte Änderung: 24. Mai 2008, 08:16:10 von edna_mausi »

Kaktus

  • volljähriger Tentakel
  • *****
  • Beiträge: 755
  • Geschlecht: Männlich
  • Waaaah!
    • Profil anzeigen
    • E-Mail
Re: Spezielles Türen-Script
« Antwort #8 am: 24. Mai 2008, 11:38:35 »
Man muss eine Funtion erst deklarieren bevor man sie aufrufen kann.
Beispiel:
Das würde funtionieren
function blabla()
{
// mach irgendwas
}

blabla();

Andersrum aber nicht:

blabla();

function blabla()
{
// mach irgendwas
}


Also suche mal im Script nach "function FaceDirection()" und stell sicher, dass deine eigene Funktion darunter steht

NsMn

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Spezielles Türen-Script
« Antwort #9 am: 24. Mai 2008, 14:01:24 »
Ach so!Gut,danke,funktioniert einwandfrei.Schade nur,dass man nur begrenzt vile Ints einfügen kann.

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1271
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: Spezielles Türen-Script
« Antwort #10 am: 24. Mai 2008, 19:42:04 »
Ach so!Gut,danke,funktioniert einwandfrei.Schade nur,dass man nur begrenzt vile Ints einfügen kann.

Wie viele Ints sind denn offiziell zulässig? Das kann ja durchaus wichtig sein, falls man mal ne größere Epi plant.
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

Kaktus

  • volljähriger Tentakel
  • *****
  • Beiträge: 755
  • Geschlecht: Männlich
  • Waaaah!
    • Profil anzeigen
    • E-Mail
Re: Spezielles Türen-Script
« Antwort #11 am: 24. Mai 2008, 20:30:09 »
@edna_mausi Ja, das Limit liegt afaik bei 14 Parametern für Funktionen. Wenn du mehr brauchst, musst du wohl oder übel zwei Funktionen verwenden.

@1mal_volltanken Soweit ich weiß gibt es da bei den normalen Ints keine Beschränkung.
Nur bei den Get/SetGlobalInts gibt es eine Beschränkung auf 500, aber soviele würde kein Mensch verwenden, das würde das Script beinahe unlesbar machen.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2682
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: Spezielles Türen-Script
« Antwort #12 am: 24. Mai 2008, 22:24:11 »
hab vor langer zeit mal ein plugin gesehen das die max GI anzahl stark erhöht
also falls die 500 nicht reichen sollten, gäbe es eine lösung  ;)
könnte ja sein, dass jemand die grashalme vor bernards haus animieren will und jedem einzelnen einen GI zuweist...  ;D
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

Link2005

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1777
  • Geschlecht: Männlich
  • Guck mal Mami - Ohne Blog!
    • Profil anzeigen
Re: Spezielles Türen-Script
« Antwort #13 am: 24. Mai 2008, 22:35:54 »
Dafür Bräuchte man aber bestimmt ca. 500x10³² GIs. ;)
Aber wie viele GIs hat man mit dem PlugIn? ???

MMM Epi 63: B-DUN DX
10% - AGS-Rohdateien von B-DuN finden
25% - Story
60% - Scripten, Grafiken
85% - Betatest
100%

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2682
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: Spezielles Türen-Script
« Antwort #14 am: 25. Mai 2008, 00:46:40 »
phu keine ahnung mehr
ich glaube 1.000.000 oder so  ;)
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<