Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Aber wenn beide eh etwas unterschiedliches tun, würde ich das Script splitten. Das ist dann um einiges weniger fehleranfällig.
Falls das allein das Problem nicht löst, probliers doch mit einer doonce-Abfrage. (Ja ich weiß, eigentlich sollte "player.moveto" das Script abbrechen, aber ich sehe keinen anderen Grund für eine Schleife.
Schmelz, ich habe dein Skript nachträglich geändert, weil es nicht funktionierte. Ich sage doch die ganze Zeit schon, alles erscheint zum richtigen Zeitpunkt, nur der Sound nicht.
Eine Messagebox brauche ich nicht mehr, da die Message durch die Stage schon erscheint.
Nun gut, ich habe dann MoW's Skript verwendet, das ging natürlich auch nicht. Dann habe ich, wie schon angekündigt, den GameMode-Block nach oben versetzt und den Begin-On-Trigger-Block darunter. Ich habe aber den "if (timer >==5)" weggelassen.
PHP:
scn 00InselMagicDoorTriggerSkript
short index
float timer
begin GameMode
if (index == 1)
set Timer to Timer + GetSecondsPassed
PlaySound AWDMagicDoorKnall
set index to 2
endif
end
begin ontrigger player
if index == 0
SetStage 00AriellesWeyeDorfVergessenerSchrein 165
set index to 1
endif
end
Endlich war der Sound zu hören, aber eine Sekunde zu spät. Aber immerhin, er war zu hören. Ich hab die ganze Zeit geahnt, dass es der Timer war.
Jungs, wir kommen dem Ziel immer näher. Dieses Skript hier muss nur noch ein wenig verfeinert werden. Wie bringe ich den Sound dazu, vor der Stage zu ertönen?
Den Timer würde ich dann übrigens ganz entfernen, wenn du ihn ja sowieso nicht brauchst. In dem oberen Skript ist der Timer z.B. ungenutzt.
Du könntest es dann mal so probieren:
PHP:
scn 00InselMagicDoorTriggerSkript
short index
begin OnTrigger player
if (index == 0)
PlaySound AWDMagicDoorKnall
set index to 1
endif
end
begin GameMode
if (index == 1)
SetStage 00AriellesWeyeDorfVergessenerSchrein 165
set index to 2
endif
end
Ob dein wechseln der Blöcke von unten nach oben und umgekehrt so klappt wie du willst, denke ich nicht. Immerhin wurde trotzdem noch vorher abgefragt ob der Index auf 0 ist und somit wurde auch die Stage vorher erhöht. Versuche es also mal ich wie es gerade geschrieben habe, dabei wird beziehungsweise sollte erst der Sound abgespielt werden und danach wird erst die Stage erhöht. Den Timer habe ich mal ganz entfernt.
@MoW: Der Timer wird ja gebraucht, weil der Sound eine gewisse Länge hat...
Code:
scn name
short init
float timer
Begin onTrigger player
if init == 0
set init to 1
playSound <Sound-ID> [COLOR="Red"];alternativ: playSound3D -> würde ich sogar empfehlen, da realistischer[/COLOR]
set timer to <Länge-des-Sounds>
endif
end
Begin GameMode
if init == 1
set timer to ( timer - getSecondsPassed )
if timer < 0
set init to 2
setStage <Quest-ID> <Stage>
endif
endif
end
@DarkRuler:
Ich würde auf jeden Fall empfehlen, eine Variable einzufügen. Laut CS-Wiki stoppt "playBink" jedes laufende Skript während des Videos. Das ist ein bisschen schwammig formuliert... Es kann also wie "return" wirken, den Rest des Skripts ohne Funktion "durchlaufen lassen" oder die Befehle einfach aufschieben.
Außerdem gibt es Probleme bezüglich "player.moveTo" in einem "onTrigger"-Block. Beispielsweise resultiert aus
Code:
scn name
Begin onTrigger player
player.moveTo <Ref>
end
ein endloses portieren des Spielers, obwohl er eigentlich schon nach dem ersten Mal nicht mehr im Trigger steht (eine Lösung dafür habe ich schon mal hier gepostet (ganz unten) ).
Mit einer zusätzlichen Variable kannst du das also womöglich umgehen:
Code:
scn name
short init
Begin onTrigger player
if init == 2
set init to 0
endif
if player.getInCell <Zelle1>
if init == 0
set init to 1
playBink <Video1>
elseif init == 1
set init to 2
player.moveTo <Ziel1-Ref>
endif
elseif player.getInCell <Zelle2>
if init == 0
set init to 1
playBink <Video2>
elseif init == 1
set init to 2
player.moveTo <Ziel2-Ref>
endif
endif
end
Kann man per Script NPC's/Kreaturen, welche man vorher tot eingebaut hat indem man ihnen 0 hp gegeben hat durch irgentetwas wie das Aktivieren oder Aufnehmen eines Gegenstandes wieder zum Leben erwecken mit der HP Zahl X?
Deine Kreaturen, NPCs, whatever gibts die bei den Eigenschaften eine Refernenz (jedem eine eigene) und machst einen Hake bei "Persistant Referenz". Im Script ersetzt du "Ref durch eine Referenz. Für jede weitere eine neue Zeile. Die Zahl sollte mindestens 1, und maximal ~ 32.000 (genauen Wert vergessen) sein.