Zeige Ergebnis 1 bis 10 von 10

Thema: [CS3] Kurzes Script funktioniert nicht...

  1. #1
    Mitspieler
    Im Spiele-Forum seit
    Aug 05
    Beiträge
    3

    Unhappy [CS3] Kurzes Script funktioniert nicht...

    Hallo :-)

    Nachdem ich 2 Tage lange basics gelesen und Tutorials durchgearbeitet habe, wollte ich nun auch selbst einige Scripte in mein Plug-In Haus einfliessen lassen. Aber irgendwie scheint das nicht zu funktionieren, egal was ich mache.

    Ich hoffe, einer sieht den Fehler, ich habe alles Mögliche versucht *g*

    begin Hafentext
    short doonce

    if ( doonce == 0 )
    if ( GetDistance, Player < 50 )
    MessageBox, "Willkommen in der Gartenstadt!", "Okay"
    Set doonce to 1
    endif
    endif

    end Hafentext

    Der Gegenstand, dem ich das Script aufgedrückt habe ist ein Banner:

    Ex_V_ban_speak_01.nif

    Ich habe ein neues Objekt damit gemacht, heisst jetzt "Gartenbanner".

    Ziel ist es, jedes Mal, wenn ich in der Nähe vorbeilaufe, diesen Text für eine kurze Zeit auf den Schirm zu bekommen. Aber wie gesagt, vergebens.

    Kann jemand helfen?

    Gruß,Trevize

  2. #2
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Hallo...

    Hast du eine ungefähre Ahnung wie weit "Distance 50" ist... du müßtest nämlich schon SEHR dicht ran gehen, um da überhaupt was zu bekommen. Außerdem würde die Meldung in deinem Script nur einmal auftauchen und dann nie wieder. Mach es so:

    Code:
    begin LX_WelcomeBanner_SC
    Short doonce
    Float TestDistance
    
    IF ( menumode == 0 )
     Return
    EndIF
    
    set TestDistance to ( GetDistance, Player )
    
    IF ( TestDistance >= 500 )
     IF ( TestDistance >= 2500 )
      set doonce to 0
     EndIF
     Return
    ElseIF ( doonce == 1 )
     Return
    EndIF
    
    MessageBox "Willkommen in der Gartenstadt!"
    set doonce to 1
    
    end LX_WelcomeBanner_SC
    Entfernst du dich weiter als 2500 Einheiten vom Banner, und gehst dann zurück, kommt die Meldung erneut. Man könnte es auch mit vertrichenen Tagen oder mit CellChanged verknüpfen. Und um das ganze sophistischer zu machen, könnte man noch die Richtung erfragen, in die der Player geht, um festzustellen, ob er die Stadt betritt oder verläßt...

    Aber das führt zu weit fürs erste, ich hoffe das hilft dir weiter.

    £exa
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

  3. #3
    Mitspieler
    Im Spiele-Forum seit
    Aug 05
    Beiträge
    3

    Hmmm *g*

    Guten Morgen

    Zitat Zitat von £exa
    Hast du eine ungefähre Ahnung wie weit "Distance 50" ist
    Bei 50 muss man schon auf dem Schild stehen. 200 sind etwa 2 Schritte, aber eine genaue Vorstellung habe ich nicht. Gibt es da feste Werte? Oder grobe Schätzungen? Oder irgendetwas?

    Weiterhin - vielen Dank für Deine schnelle Antwort und das schöne Script, ist natürlich um einiges eleganter - klar...

    Mittlerweile habe ich aber etwas anderes festgestellt. Mein Script funktioniert doch. Nur leider nicht mit dem angegebenem Banner. Deines geht mit dem o.g. Banner übrigens auch nicht. Nach einigen Prüfungen ist mir aufgefallen, dass das Banner sich trotz fehlendem "Outside Banner" Scriptes im Wind wiegt. Kann es sein, dass sich, aus irgendwelchen Gründen auch immer, ein "Outside Banner" Script über den betreffenden Lappen legt? Das würde nämlich auch erklären, warum Deines nicht geht. Ich habe mal einfach ein beliebiges Wappenschild genommen, ein neues Objekt gemacht und siehe da: Beide Scripte funktionieren nun zuverlässig. Äußerst merkwürdig, aber was soll's ...

    Zitat Zitat von £exa
    Aber das führt zu weit fürs erste, ich hoffe das hilft dir weiter.
    Ja, auf jeden Fall. Dankeschön. Man lernt ja nie aus :-D

  4. #4
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Mhhh...

    Ich hab ja nicht behauptet, dass dein Script nicht funktioniert, ich schrieb nur, dass man bei den Werten dicht (!) ran muß und das die Meldung nur einmal erscheint. Aber zu dem anderen Problem... eigentlich sollte das Script immer funktionieren, wenn man es richtig verknüpft hat. Es kann nur sein, dass ein normales Outside-Banner den gleichen Raum einnimmt und dein Banner überlagert. Normalerweise sollte es dann aber auch eine Fehlermeldung geben. Mit dem Wappenschild ist es natürlich auch schön

    btw. man kann auch einen explodeSpell in das Script einbauen, Soultrap etwa. Das gibt dann einen schönen Farbeffekt, das Schild wird dann illuminiert beim Erscheinen der Meldung.
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

  5. #5
    Mitspieler
    Im Spiele-Forum seit
    Aug 05
    Beiträge
    3

    Noch etwas :)

    Das ist eine schöne Idee mit dem Effekt. Denn müsste ich aber einen eigenen Zauber erstellen - ohne Schadenswerte, oder? So ungefähr jedenfalls.

    Ich habe mir heute noch zahlreiche Tutorials durchgelesen und bin auf einige Sachen gestossen, z.B. in Deinem Script: menumode == 0 -> muss das nicht eine 1 sein? Oder meine ich etwas zu wissen, was denn doch nicht stimmt? *g*

    Und wenn ich schon herum'noobe', dann gleich mal eine weitere Frage.
    Was ist denn hier dran falsch?

    HTML-Code:
    begin MEINwelcome
    
    short doonce 
    
    if ( GetDistance, Player >= 600 )
    	if ( GetDistance, Player >= 1350 )
    		set doonce to 0
    		return
    	endif
    elseif ( doonce == 1 )
    	return
    endif
    
    MessageBox "Willkommen in der Gartenstadt! Händler werden zum Hafenmeister gebeten, Besucher melden sich bitte bei der Wache!"
    set doonce to 1
    
    end MEINwelcome

    Irgendwie schnalle ich das noch nicht so ganz. Kann leider keine Programmiersprachen, bin als Kind immer 'bolzen' gewesen. *fg*
    Geändert von Trevize (5.8.05 um 14:49 Uhr) Grund: vertippt

  6. #6
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Ups... stimmt... es muß 1 sein, kommt davon, wenn man blind ohne CS coded...

    Sonst funzt das Script ja nur mit offenem Menu

    Nein, du brauchst keinen neuen Zauber erstellen, wenn du Soultrap nimmst hat das außer Licht und Ton gar keinen Effekt auf die Umgebung. Und was die Zeile mit GetDistance angeht. Eigentlich ist die korrekt, nur gibt es manchmal mit den Scripts Probleme, wenn man bei Befehlen keine Klammer setzt. Schreib es also lieber so:

    IF ( ( GetDistance, Player ) >= 800 )

    Außerdem frißt der getDistance-Befehl CPU-Zeit und wenn du mehrere Abstände vergleichen willst, ist es sinnvoller, eine Variable zu deklarieren und einmal diese Abfrage zu machen und dann nur mit der Float zu vergleichen - geht schneller. Das ( menumode == 1 ) verhindert, dass das Script ausgeführt wird, sofern der Spieler das Inventar offen hat oder ein Requester geöffnet ist. Spart auch Zeit und verhindert unerwünschte Effekte.

    So... und der Fehler in deinem Script ist einfach der, dass du das erste Return an der falschen Stelle platziert hast. So würde das Script im Radius zwischen 600 und 1350 immer (!) ausgeführt werden, weil der Rücksprung fehlt die Meldung kommt immer und immer wieder. Folglich sähe der korrekte Aufbau so aus:

    Code:
    begin MEINwelcome
    
    short doonce 
    
    if ( ( GetDistance, Player ) >= 600 )
    	if ( ( GetDistance, Player ) >= 1350 )
    		set doonce to 0
    	endif
    	return
    elseif ( doonce == 1 )
    	return
    endif
    
    MessageBox "BlaBla..."
    set doonce to 1
    
    end MEINwelcome
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

  7. #7
    Mitspieler Benutzerbild von furby-R
    Im Spiele-Forum seit
    Sep 05
    Ort
    Boizenburg
    Beiträge
    3

    Hilfe noch ne Frage

    Öhm ja ich wollte auch nochmal zu nem Skript was fragen und keinen neuen Threat machen .....



    Begin BookNotitzdesDiebes

    if ( GetJournalIndex HG_Diebesweg = 10 )
    Return
    endif

    if ( OnActivate == 1 )
    Journal HG_Diebesweg 25
    Activate
    endif

    End


    Ich bin nu vollniete dabei aber ich hoffe da sieht einer den fehler
    (ich nix können) soll halt ein jornal kommen wenn man das ding aufhebt aber man kann das nicht aufheben (auch nicht wenn man

    "if ( GetJournalIndex HG_Diebesweg = 10 )"

    das erfüllt hat fals ich das richtig verstehe das man das haben muss um das aufzuheben ...)

    Ich bedank mich mal schon ok ^^

  8. #8
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Ein typischer Denkfehler...

    Du möchtest, dass man das Buch nur aufheben kann, wenn man den Journaleintrag hat und dass wenn man es tut, man einen neuen, zweiten Eintrag bekommt? Dann mach es so:

    Code:
    Begin BookNotitzdesDiebes_SC
    short State
    
    IF ( OnActivate == 0 )
     Return
    EndIF
    
    set State to ( GetJournalIndex, HG_Diebesweg )
    
    IF ( State < 10 )
     MessageBox "Ich sollte es besser liegen lassen..."
     Return
    ElseIF ( State == 10 )
     Journal HG_Diebesweg 25
    endif
    
    Activate
    
    End BookNotitzdesDiebes_SC
    Das müßte deine Anforderungen erfüllen.
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

  9. #9
    Mitspieler Benutzerbild von furby-R
    Im Spiele-Forum seit
    Sep 05
    Ort
    Boizenburg
    Beiträge
    3

    Hilfe Aw

    öhm ja komisch ich kann das immernoch nicht öffnen ...


    Also ich hab das im spiel getestet da kommt vor der mission halt der text

    "ich sollte das lieber liegen lassen"

    aber wenn ich die mission hab und auf nehmen klicke (wenn der text zu lesen ist) verschwindet das nehmen einfach und der text bleibt da und die rolle geht nicht ins inventar ....

    das problem hatte ich ja vorher schon leider ...

  10. #10
    Heavenly Wind
    霧の艦隊
    Benutzerbild von £exa
    Im Spiele-Forum seit
    Dec 02
    Beiträge
    8.111
    Zitat Zitat von furby-R
    das problem hatte ich ja vorher schon leider ...
    Dann hättest du mir das vielleicht sagen können

    Code:
    Begin BookNotitzdesDiebes_SC
    short State
    short doonce
    short OnPCEquip 
    
    IF ( DoOnce == 1 )
     Return
    EndIF
    
    set State to ( GetJournalIndex, HG_Diebesweg )
    
    IF ( OnActivate == 1 )
     IF ( State < 10 )
      MessageBox "Ich sollte es besser liegen lassen..."
      Return
     ElseIF ( State == 10 )
      Journal HG_Diebesweg 25
      Set DoOnce to 1
      Activate
     EndIF
    EndIF
    
    IF ( OnPCEquip == 1 )
     IF ( State < 10 )
      MessageBox "Ich sollte es besser liegen lassen..."
      Return
     ElseIF ( State == 10 )
      Journal HG_Diebesweg 25
      Set DoOnce to 1
     EndIF
    EndIF
    
    End BookNotitzdesDiebes_SC
    Versuchs mal damit... wenn nicht, muß ich das selbst ausprobieren, ich hab aber leider im Moment kein CS -.-"
    *meow*

    Das Niveau mancher Leute kann tiefer sinken als die Titanic

Ähnliche Themen

  1. [CS3] Suche ein Script
    Von dark_soul518 im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 2
    Letzter Beitrag: 23.2.07, 17:44
  2. [CS3] mein Ebenherz-PI funktioniert nicht...
    Von Necro Crusader im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 6
    Letzter Beitrag: 1.10.06, 11:07
  3. [CS3] Script das tötet
    Von ByStones im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 3
    Letzter Beitrag: 17.4.06, 15:27
  4. [CS3] Script für Türe verschliessen nach hinausgehen
    Von Tha Hoodlum im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 4
    Letzter Beitrag: 22.11.05, 17:51
  5. [CS3] Script für Teleport gesucht
    Von Glubschie im Forum TES Construction Set / Elder Scrolls Modding
    Antworten: 10
    Letzter Beitrag: 4.7.05, 17:54

Lesezeichen

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •