Construction Set Fragen zu Worldspace

Friedolin2

Ehrbarer Bürger
Servus,

ich habe auch ein paar Fragen bezüglich Eigener Worldspace.

1. Wie benenne ich gewisse teile einer Worldspace, damit InGame der Name angezeigt wird, z.b. Stadt XXX

2. Kann man gewisse Regionen in der Worldspace ein anderes Wetter zuordnen, z.b. Schneefall im Gebirge

3. Wie kann ich Musik im Spiel einfügen, dass aber nur in bestimmten Regionen abgespielt wird.
 
1.

(Sofern du schon weißt wie man Regionen erstellt, geh einfach zu Punkt 1.1)
World -> Regions:
Dort suchst du in der Liste das entsprechende Worldspace aus in dem der Spaß stattfinden soll.
Du machst einen Rechtsklick in der Liste RegionName Links und gehst auf NewRegion, du gibst der Region noch eine entsprechende ID und gut ist. Du wählst die Region aus und Rechts bei den ganzen Kästchen (Links unten am Rand des Regions Editors kannst du dann sehen in welcher Zelle du bist) musst du dann per Linksklicks eine Region erstellen, das Ende der Makierungen muss auch den Anfang berühren, sobald du alle Makierungen gesetzt hast geh innerhalb die Fläche und mache einen Rechtsklick, dort gehst du dann auf Generate Canopy Shadow Mask for this Cell.
Jetzt ist die Region vom Grund her fertig und du kannst sie wieder auswählen.

1.1
Dann gehst du von General zu Map im Regionsfenster und dort kannst du unter Map Name den Namen angeben, der Ingame dann angezeigt wird.


2.

Wenn du dann im selben Fenster auf Weather wechselst kannst du dort verschiedene Wettertypen eintragen und die Chance ihres auftretens.


3.

Man kann jedenfalls den Music Typ verändern, also Default, Public oder eben Dungeon. Dies und einfache Sounds kannst du dann im selben Fenster unter Sounds einfügen/bearbeiten.

Wie man dann aber eigene Musik einfügt und abspielen lässt weiß ich nicht.

MfG Master of Worlds
 
Kennt jemand vllt eine Lösung, wie man eigene Musik einfügen kann, dass in bestimmten Regionen der Worldspace abgespielt wird? Kann man das irgendwie durch ein Script lösen??
 
Servus,
ja kann man, indem man den Worldspace mit Triggerboxen versieht. (Welche entsprechendes Script besitzen) Mit dem Problem schlagen wir uns auch gerade um die Ohren... Eine alternative wäre, dem Music Ordner neue Stücke hinzu zu fügen, aber das geht nur begrenzt und es wird immer noch die Standart Musik zusätzlich abgespielt...

mfg
Raven
 
Das mit der Triggerboxen hört sich interessant an. Könntest du mir ein wenig mehr darüber erzählen?

Mach man da eine riesen große triggerbox in das gebiet, in das die musik abgespielt werden soll?
 
Die Triggerbox klappt ja, indem der Spieler die "Außenwände" der Box berührt, nun muss noch folgendes Script auf den Trigger und die Musik im richtigen Ordner:

Code:
Scriptname ...

short doonce

begin ontrigger player

if doonce == 0

    playsound Beispiel
    set doonce to 1

endif

end
So müsste das richtig sein, wenn mich nicht alles täuscht, k.a. bin kein Scripter :-D

mfg
Raven
 
  • Like
Reaktionen: Friedolin2
Kennt jemand vllt eine Lösung, wie man eigene Musik einfügen kann, dass in bestimmten Regionen der Worldspace abgespielt wird? Kann man das irgendwie durch ein Script lösen??

Sehr Komplieziert!

PHP:
scn MusikSystem
 
float songtimer
float fQuestDelayTime
 
short songNR
short ZellWechsel
short Drinnen
short Kampf
short FakeFightDone
  
 
Begin Gamemode
 
if player.GetInWorldspace xxx == 1 || player.GetInCell xxx == 1
; Wenn der Spieler in einer Zelle oder einem Worldspace von dir ist. 
 
    if fQuestDelayTime != 0.1  ; Durchlauf Häufigkeit
        set fQuestDelayTime to 0.1
    endif
 
 
;Zellwechsel
 
    if player.IsInInterior == 1 && drinnen == 0
        set drinnen to 1
    elseif player.IsInInterior == 0 && drinnen == 1
        set drinnen to 0;                                                                    
    endif
 
 
    if player.GetInSameCell ZellWechselFlyRef == 0 && drinnen == 1
        set ZellWechsel to 1
        set songtimer to 0    
        ZellWechselFlyRef.moveto player    
    elseif player.GetInSameCell ZellWechselFlyRef == 0 && drinnen == 0 
        if ZellWechselFlyRef.IsInInterior == 1
            ZellWechselFlyRef.moveto player
            set ZellWechsel to 1
            set songtimer to 0
        Elseif ZellWechselFlyRef.IsInInterior == 0
            ZellWechselFlyRef.moveto player    
        endif
    endif
 
 
;Kampf-Erkennung
 
    if  Kampf == 0 && player.IsInCombat == 1
        set Kampf to 1; Spieler ist grade in einem Kampf
    elseif Kampf == 1 && player.IsInCombat == 0
        set Kampf to 0; Spieler ist nicht mehr im Kampf
        set Songtimer to 0 ; Lied kann von vorne anfangen
    endif
 
 
 
 
 
    if songtimer <= 0  
 
;Kampf erzeugen
        if FakeFightDone < 3 ; 3 Frames lang den Kampf laufen lassen
            if FakeFightDone == 0
                MusikKampfDummyREF.moveto player ;Ratte zum Spieler
                MusikKampfDummyREF.StartCombat player ;Ratte greift an
                set FakeFightDone to 1
                return
            endif
            set FakeFightDone to FakeFightDone + 1 ; wird bis 3 zählen
            return
        elseif FakeFightDone == 3 ; nach 3 Frames Kampf
            MusikKampfDummyREF.poscell  0,0,0, 0, 00MusicCell ;Ratte kommt weg
            MusikKampfDummyREF.StopCombat player;Kampf beenden
            set FakeFightDone to 4; Kampferzeugen schließen
            return
        endif
 
 
    if Kampf == 0 ; Wenn der Spieler nicht im Kampf ist
 
;Zufälliges Lied spielen
        if drinnen == 1  ; Für Interior 
            set SongNR to 1 + 0.05 * GetRandompercent; 5 für Interior
        else  ; Für Exterior
            set SongNR to 5 + 0.05 * GetRandomPercent; 5 für Exterior
        endif
 
    set FakeFightDone to 0; Kampferzeugung wieder möglich machen
 
        if SongNR == 1  ;Alle Lieder mit Dauer,songtimer ist Lied-Dauer
            set songtimer to 104
            streammusic "Data\Music\xxx"
        elseif SongNR == 2
            set songtimer to 207
            streammusic "Data\Music\xxx" 
        elseif SongNR == 3
            set songtimer to 81
            streammusic "Data\Music\xxx"
        elseif SongNR == 4
            set songtimer to 177
            streammusic "Data\Music\xxx"
        elseif SongNR == 5
            set songtimer to 104
            streammusic "Data\Music\xxx"
        elseif SongNR == 6
            set songtimer to 207
            streammusic "Data\Music\xxx"
        elseif SongNR == 7
            set songtimer to 81
            streammusic "Data\Music\xxx" 
        elseif SongNR == 8
            set songtimer to 177
            streammusic "Data\Music\xxx" 
        endif
        endif
    elseif Songtimer > 0 
        set songtimer to songtimer - getsecondspassed;
    endif
endif
 
End
 
Begin Menumode  ;das Gleiche ohne Kampf & Zellwechsel
 
 
if player.GetInWorldspace xxx == 1 || player.GetInCell xx == 1
 
    if songtimer <= 0 
 
;Kampf-erzeugen
        if FakeFightDone < 3 ; 3 Frames lang den Kampf laufen lassen
            if FakeFightDone == 0
                MusikKampfDummyREF.moveto player ;Ratte zum Spieler
                MusikKampfDummyREF.StartCombat player ;Ratte greift an
                set FakeFightDone to 1
                return
            endif
            set FakeFightDone to FakeFightDone + 1 ; wird bis 3 zählen
            return
        elseif FakeFightDone == 3 ; nach 3 Frames Kampf
            MusikKampfDummyREF.poscell  0,0,0, 0, 00MusicCell ;Ratte kommt weg
            MusikKampfDummyREF.StopCombat player;Kampf beenden
            set FakeFightDone to 4; Kampferzeugen schließen
            return
        endif
 
 
    if Kampf == 0
 
;zufälliges lied
        if drinnen == 1
            set SongNR to 1 + 0.05 * GetRandompercent
        else
            set SongNR to 5 + 0.05 * GetRandomPercent
        endif
 
 
 
            set FakeFightDone to 0
            if SongNR == 1  ;Alle Lieder mit Dauer,songtimer ist Lied-Dauer
            set songtimer to 104
            streammusic "Data\xxx"
        elseif SongNR == 2
            set songtimer to 207
            streammusic "Data\Music\xxx" 
        elseif SongNR == 3
            set songtimer to 81
            streammusic "Data\Music\xxx"
        elseif SongNR == 4
            set songtimer to 177
            streammusic "Data\Music\xxx"
        elseif SongNR == 5
            set songtimer to 104
            streammusic "Data\Music\xxx"
        elseif SongNR == 6
            set songtimer to 207
            streammusic "Data\Music\xxx"
        elseif SongNR == 7
            set songtimer to 81
            streammusic "Data\Music\xxx " 
        elseif SongNR == 8
            set songtimer to 177
            streammusic "Data\Music\xxx"
        endif
        endif
    elseif Songtimer > 0
        set songtimer to songtimer - getsecondspassed
    endif
endif
End

So ungefähr sieht das aus. Du musst dir dannoch eine Kreatur und ein Item in eine Zelle legen. Die Referenzen dort einbauen, und den Script auf ein neues Quest legen.
 
  • Like
Reaktionen: Friedolin2
Worldspace generieren

Hey Leute,

Ich will eine Insel machen, auf der ein dichter Wald stehen soll. Ich habe gehört, dass man mit dem CS eine Region generieren lassen kann (glaube der größte Teil der Spielwelt ist generiert...?). Jetzt wollte ich wissen ob es möglich ist, und wenn ja, was ich machen muss. Bis jetzt habe ich nur die rohe Landmasse. Danke schonmal im Vorraus.:)

Drachenauge
 
Hey Leute,

Ich will eine Insel machen, auf der ein dichter Wald stehen soll. Ich habe gehört, dass man mit dem CS eine Region generieren lassen kann (glaube der größte Teil der Spielwelt ist generiert...?). Jetzt wollte ich wissen ob es möglich ist, und wenn ja, was ich machen muss. Bis jetzt habe ich nur die rohe Landmasse. Danke schonmal im Vorraus.:)

Drachenauge
Schau dir das an http://www.scharesoft.de/joomla/forum/showthread.php?t=33112&highlight=Landschaft
 
  • Like
Reaktionen: Drachenauge
Sehr Komplieziert!

PHP:
scn MusikSystem
 
float songtimer
float fQuestDelayTime
 
short songNR
short ZellWechsel
short Drinnen
short Kampf
short FakeFightDone
  
 
Begin Gamemode
 
if player.GetInWorldspace xxx == 1 || player.GetInCell xxx == 1
; Wenn der Spieler in einer Zelle oder einem Worldspace von dir ist. 
 
    if fQuestDelayTime != 0.1  ; Durchlauf Häufigkeit
        set fQuestDelayTime to 0.1
    endif
 
 
;Zellwechsel
 
    if player.IsInInterior == 1 && drinnen == 0
        set drinnen to 1
    elseif player.IsInInterior == 0 && drinnen == 1
        set drinnen to 0;                                                                    
    endif
 
 
    if player.GetInSameCell ZellWechselFlyRef == 0 && drinnen == 1
        set ZellWechsel to 1
        set songtimer to 0    
        ZellWechselFlyRef.moveto player    
    elseif player.GetInSameCell ZellWechselFlyRef == 0 && drinnen == 0 
        if ZellWechselFlyRef.IsInInterior == 1
            ZellWechselFlyRef.moveto player
            set ZellWechsel to 1
            set songtimer to 0
        Elseif ZellWechselFlyRef.IsInInterior == 0
            ZellWechselFlyRef.moveto player    
        endif
    endif
 
 
;Kampf-Erkennung
 
    if  Kampf == 0 && player.IsInCombat == 1
        set Kampf to 1; Spieler ist grade in einem Kampf
    elseif Kampf == 1 && player.IsInCombat == 0
        set Kampf to 0; Spieler ist nicht mehr im Kampf
        set Songtimer to 0 ; Lied kann von vorne anfangen
    endif
 
 
 
 
 
    if songtimer <= 0  
 
;Kampf erzeugen
        if FakeFightDone < 3 ; 3 Frames lang den Kampf laufen lassen
            if FakeFightDone == 0
                MusikKampfDummyREF.moveto player ;Ratte zum Spieler
                MusikKampfDummyREF.StartCombat player ;Ratte greift an
                set FakeFightDone to 1
                return
            endif
            set FakeFightDone to FakeFightDone + 1 ; wird bis 3 zählen
            return
        elseif FakeFightDone == 3 ; nach 3 Frames Kampf
            MusikKampfDummyREF.poscell  0,0,0, 0, 00MusicCell ;Ratte kommt weg
            MusikKampfDummyREF.StopCombat player;Kampf beenden
            set FakeFightDone to 4; Kampferzeugen schließen
            return
        endif
 
 
    if Kampf == 0 ; Wenn der Spieler nicht im Kampf ist
 
;Zufälliges Lied spielen
        if drinnen == 1  ; Für Interior 
            set SongNR to 1 + 0.05 * GetRandompercent; 5 für Interior
        else  ; Für Exterior
            set SongNR to 5 + 0.05 * GetRandomPercent; 5 für Exterior
        endif
 
    set FakeFightDone to 0; Kampferzeugung wieder möglich machen
 
        if SongNR == 1  ;Alle Lieder mit Dauer,songtimer ist Lied-Dauer
            set songtimer to 104
            streammusic "Data\Music\xxx"
        elseif SongNR == 2
            set songtimer to 207
            streammusic "Data\Music\xxx" 
        elseif SongNR == 3
            set songtimer to 81
            streammusic "Data\Music\xxx"
        elseif SongNR == 4
            set songtimer to 177
            streammusic "Data\Music\xxx"
        elseif SongNR == 5
            set songtimer to 104
            streammusic "Data\Music\xxx"
        elseif SongNR == 6
            set songtimer to 207
            streammusic "Data\Music\xxx"
        elseif SongNR == 7
            set songtimer to 81
            streammusic "Data\Music\xxx" 
        elseif SongNR == 8
            set songtimer to 177
            streammusic "Data\Music\xxx" 
        endif
        endif
    elseif Songtimer > 0 
        set songtimer to songtimer - getsecondspassed;
    endif
endif
 
End
 
Begin Menumode  ;das Gleiche ohne Kampf & Zellwechsel
 
 
if player.GetInWorldspace xxx == 1 || player.GetInCell xx == 1
 
    if songtimer <= 0 
 
;Kampf-erzeugen
        if FakeFightDone < 3 ; 3 Frames lang den Kampf laufen lassen
            if FakeFightDone == 0
                MusikKampfDummyREF.moveto player ;Ratte zum Spieler
                MusikKampfDummyREF.StartCombat player ;Ratte greift an
                set FakeFightDone to 1
                return
            endif
            set FakeFightDone to FakeFightDone + 1 ; wird bis 3 zählen
            return
        elseif FakeFightDone == 3 ; nach 3 Frames Kampf
            MusikKampfDummyREF.poscell  0,0,0, 0, 00MusicCell ;Ratte kommt weg
            MusikKampfDummyREF.StopCombat player;Kampf beenden
            set FakeFightDone to 4; Kampferzeugen schließen
            return
        endif
 
 
    if Kampf == 0
 
;zufälliges lied
        if drinnen == 1
            set SongNR to 1 + 0.05 * GetRandompercent
        else
            set SongNR to 5 + 0.05 * GetRandomPercent
        endif
 
 
 
            set FakeFightDone to 0
            if SongNR == 1  ;Alle Lieder mit Dauer,songtimer ist Lied-Dauer
            set songtimer to 104
            streammusic "Data\xxx"
        elseif SongNR == 2
            set songtimer to 207
            streammusic "Data\Music\xxx" 
        elseif SongNR == 3
            set songtimer to 81
            streammusic "Data\Music\xxx"
        elseif SongNR == 4
            set songtimer to 177
            streammusic "Data\Music\xxx"
        elseif SongNR == 5
            set songtimer to 104
            streammusic "Data\Music\xxx"
        elseif SongNR == 6
            set songtimer to 207
            streammusic "Data\Music\xxx"
        elseif SongNR == 7
            set songtimer to 81
            streammusic "Data\Music\xxx " 
        elseif SongNR == 8
            set songtimer to 177
            streammusic "Data\Music\xxx"
        endif
        endif
    elseif Songtimer > 0
        set songtimer to songtimer - getsecondspassed
    endif
endif
End

So ungefähr sieht das aus. Du musst dir dannoch eine Kreatur und ein Item in eine Zelle legen. Die Referenzen dort einbauen, und den Script auf ein neues Quest legen.


Danke. Muss ich nachher mal unbedingt ausprobieren.
Das ist ja jetzt ein Script für die ganze Worldspace. Wie mache ich das, wenn der Spieler jetzt in einer Stadt geht.
Dann könnte man das ja durch eine Triggerbox auslösen lassen. Was müsste dann an das script verändert werden?
 
Nun ja...
Wenn die Stadt in einem eigenen Worldspace liegt, wie es in Oblivion gemacht wurde, kannst du natürlich auf dieses Skript zurückgreifen. Ich würde ansonsten aufjeden Fall mit "getInCell" arbeiten und mir einen Haufen Trigger ersparen. Dafür könntest du die Zellen, die zur Stadt gehören alle "MeineStadt01", "MeineStadt02" usw. nennen. Dann erstellst du eine leere Interior-Zelle mit der ID "MeineStadt" und kannst dann mit "player.getInCell MeineStadt" abfragen, ob sich der Spieler in einer zur Stadt gehörenden Zelle befindet.
 
Hey Leute,

Ich hab eine Frage: Ich will einen neuen Worldspace machen, mit einer Ingame-Karte und allem drum und dran. Jetzt habe ich eine Karte für meine Insel gemacht und will eine entsprechende Landmasse dazu erstellen. Weiß jemand, wie ich das am bessten anstelle? Außerdem wollte ich dann noch wissen, wie ich die Karte gleich ins Spiel einbinden kann. Wäre schön, wenn ihr mir dabei helfen könntet.
Schonmal danke im Vorraus. :)

Drachenauge
 
Also generell kann man sagen du hast von Hinten nach Vorne gearbeitet. Man fängt zuerst mit der Insel an. Dann, wenn man sie fertig hat, generiert man das LOD. Durch das generieren wird eine Textur generiert (4 Teile ergeben das gesamtbild deiner Insel) die man perfekt für Karten hernehmen kann...
Tutorial für Selbsterstellte Karten

mfg
Raven
 
  • Like
Reaktionen: Drachenauge
Hey Raven 666
Vielen Dank für die Info. Ich werds dann so rum machen, wie du gesagt hast. Ich hab noch nicht so viel Erfahrung im generieren von Karten und so. :oops:
Nochmal vielen Dank an dich.

Drachenauge