Allgemein
News
News-Archiv
Partner
Netzwerk
Banner
Header
Media
Downloads
Impressum

The Elder Scrolls
Arena
Daggerfall
Spin-offs
Romane
Jubiläum
Reviews
Welt von TES
Lore-Bibliothek
Namens-
generator

FRPGs

Elder Scrolls Online
Allgemein
Fraktionen
Charakter
Kargstein
Technik
Tamriel-
Manuskript

Media

Skyrim
Allgemein
Lösungen
Tipps & Tricks
Steam-Kniffe
Review
Media
Plugins & Mods

Oblivion
Allgemein
Lösungen
Tipps & Tricks
Technik
Charakter
Media
Plugins & Mods
Kompendium

Morrowind
Allgemein
Lösungen
Tipps & Tricks
Media
Plugins & Mods

Foren
The Elder Scrolls Online
Hilfe & Diskussion

Skyrim
Hilfe & Diskussion
Plugins & Mods

Ältere TES-Spiele
TES-Diskussion
Oblivion-Plugins
Morrowind-Plugins

Community
Taverne zum Shalk
Adventures of Vvardenfell
Tales of Tamriel
Ergebnis 1 bis 20 von 21

Thema: Skripten: Zaubereffekte und Wasseranstieg

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Derzeitiger Zustand des Skripts:

    Code:
    Scriptname 1TestUnsichtbartest
    
    ref target
    short doonce
    ref myself
    
    begin onTriggerActor
    
    if doonce == 0
    		MessageBox "Test - Tür aktiviert!"
    		if player.HasMagicEffect INVI != 1
    			set target to getParentRef
    			set myself to getself
    			target.activate myself 1
    	                set doonce to 1
    			set myself to 0
    		endif
    	endif
    
    end
    Code:
    scn 1DoonceRuecksetzen
    
    short doonce
    ref parent
    
    begin OnTrigger Player
    Set Parent to GetParentRef
    Set Parent.doonce to 0
    end
    (Wenn ich versuche im Rücksetzskript "short doonce" zu entfernen wirft er mir Skript Errors entgegen)

    Funktioniert nur leider nicht wie es sollte -> Hauptskript wird einmal ausgelöst, danach nie wieder. -> doonce wird nicht zurückgesetzt!

    Edit: Hier noch das vorgefertigte Skript des Activator-Doors, falls dieses irgendwie reinpfuschen könnte:

    Code:
    scn RuinsGATEopenSCRIPT
    
    ; activated by linked child
    ; activates optionally linked parent after 1 sec delay
    
    short init
    short closed
    short next
    short busy
    float timer
    
    ref mySelf
    ref myParent
    
    begin onActivate
    
    	set mySelf to getSelf
    	set myParent to getParentRef
    
    	if isActionRef player == 1
    
    		if closed == 1
    			message "Dieses Tor wird anderswo geöffnet."
    		endif
    
    	elseif isActionRef mySelf == 0 && busy == 0
    
    		if closed == 0
    			playgroup forward 0
    			set closed to 1
    			disableLinkedPathPoints
    		else
    			playgroup backward 0
    			set closed to 0
    			enableLinkedPathPoints
    		endif
    
    		set next to 1
    		set timer to 1
    		set busy to 1
    
    	endif
    
    end
    
    begin gameMode
    
    	if init == 0
    		; set up ref vars
    		set mySelf to getSelf
    		set myParent to getParentRef
    		; prepare linked pathsgrid points
    		enableLinkedPathPoints
    		set init to 1
    	endif
    
    	; daisy-chain activation
    	if next == 1 && timer <=0
    		set next to 0
    		myParent.activate mySelf 1
    	endif
    
    	if timer > 0
    		set timer to timer - getSecondsPassed
    	endif
    	
    	if isAnimPlaying == 0 && busy == 1
    		set busy to 0
    	endif
    
    end
    
    begin onReset
    
    	reset3DState
    	set closed to 0
    	set next to 0
    	set busy to 0
    	enableLinkedPathPoints
    
    end
    Geändert von Indy (20.12.2007 um 18:10 Uhr)

  2. #2
    Problem gelöst. Ich habe das Skript auf nun anders geschrieben, sodass doonce automatisch zurückgesetzt wird, wenn sich der Spieler davon entfernt.

    Nun ein neues Problem:

    Code:
    scn 1FalscherSchrittTeleport2
    
    short triggered
    float timer
    ref me
    
    begin onTriggerActor
    
    	if triggered == 0
    		set me to getself
    		cast  1Eiseffekt me
    		Player.MovetoMarker 1MarkerBack
    		set triggered to 1
    		set timer to 5
    	endif
    
    end
    
    begin gameMode
    
    	if triggered == 1 && timer <= 0
    		set triggered to 0
    	endif
    
    	if timer >= 0
    		set timer to timer - getSecondsPassed
    	endif
    
    end
    Dieses Skript soll beim Betreten eines Triggers den Spieler einfach zum Marker teleportieren. Dummerweise wird dies zu einer Endlosschleife. Was habe ich hier vergessen?

  3. #3
    So, ich habe nun ein neues Problem.

    Ich möchte in einem Skript nach ein if-Abfrage ganz einfach einen bestimmten NPC töten.
    Versucht habe ich dies mit

    Code:
    kill NameRef
    doch der NPC stirbt nicht wie geplant.

  4. #4
    Wiki hilf


    kill bewirkt, dass der "Calling Actor" stirbt. Der Paramteter danach bestimmt den Verursacher.

    Richtig wäre also:
    Code:
    NameRef.kill
    Falls du dem Spiel noch sagen willst, der Spieler ist verantwortlich:
    Code:
    NameRef.kill Player

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •