Construction Set Der Scriptthread

ich bin mir nicht sicher, ob man das gewicht des spielers abfragen kann, aberdu könntest alle rassen abfragen, die schwerer als dein maximum sind (if ( player-> race orc ) ??) :huh:
der script wär dann halt etwas umfangreicher...

du kannst mit "getsatandingPC" abfragen ob er auf dem brett steht, und dann mit
"MoveWorld, Z, -50"
dafür sorgen, dass es sich absenkt.

den kompletten script zu schreiben hab ich leider grad keine zeit, aber teempereor oder wulfgar stehen dir bestimmt zur verfügung :D

Natürlich hab ich Zeit:-D
Nun, dass Mit den Rassen Funktioniert nciht da man zwar Nachschauen kann welche Rasse der Spieler ist, dies aber erstens nur mit den Standart-Klassen
funktioniert und zweitens Bezieht sich der Befehl nicht auf das Geschlecht(Und ein mänlicher Ork wiegt ja nicht so viel wie eine Orkfrau:oops:))
PS: Außerdem heist der Befehl "PCRace"

Deswegen kann ich dir höchstens einen Script geben dass sich das Brett nachgibt wenn der SPIELER sich daraufbewegt wenn es nachgeben soll wenn irgendjemand daraufsteht dann musste du GetStandingPC durch GetstandingActor ersetzen
Also:

Begin nachgebendesbrett

short Nachgeben

If (Nachgeben = 0)
If (GetStandingPC = 1)
MoveWorld, Z, 10
set nachgeben to 1
endif
Endif

end
 
  • Like
Reaktionen: 1 Person
Hat jemand Zeit und Lust mir einen Script zuschreiben, der beim betreten eines Dungeons oder Gebäude eine Music-Data abspielt?

Würde mich sehr freuen, so könnte ich meinen teil von ankaroth sehr viel Atmosphärischer machen!
 
Ich hab auch noch ne Frage:

Kann man per Script bei aktivierung eines bestimmten Objektes einen sound abspielen?
Danke im voraus, MorroFan.
mfg

Antwort von Killfetzer:

begin my_script

if ( OnActivate == 1 )
PlaySound "Soundname"
endif

end

müsste gehen denk ich^^ wenn man als sound ne musik reinmacht --> korrigiert mich bitte hab sinnlos gepostet^^
 
ok probier ich gleich mal

Ok ich habe das jetzt mal ausprobiert eine Musikdatei in Sound reingetann, den Script genau so geschrieben doch beim abspeichern des Script kommt ne meldung:

Sound test was not found on line 4.
übersetzt ganz einfach: sound test wurde nicht gefunden in der Linie 4.
aber leider wede ich nicht ganz schlau daraus, ich bitte erneut um rat!
 
Zuletzt bearbeitet:
Hi!

Ich brauche ein Script, wer hätte es anders erwartet:)

Das Script soll bewirken, dass sich zwei Plattformen, F1 und F2, abwechselnd jeweils wenn F1 nach unten geht F2 nach oben geht und umgekehrt (gelbe Pfeile). Das ganze soll passieren wenn man einen von den Pilzen aktiviert. Der Z-Wert am Boden ist 97, der Z-Wert oben ist 700.


Freue mich über antworten:)
 
OK, nochmal zum Verständnis... bevor ich was loscode und es nachher umstossen muß:

Die beiden Pilze sollen miteinander gekoppelt sein und jeweils gegensätzlich eine abwechselnde aufwärts/abwärts Bewegung durchführen, wenn man sie aktiviert - heißt, es ist egal welchen Pilz man aktiviert, der jeweils andere wird immer mitbewegt?

1. Wie schnell sollen sie sich hoch und runter bewegen?
(gemächlich, mittel oder sehr schnell)

2. willst du später weitere Plattformen wie diese einbauen oder sollen besagte Pilzplatformen von ihrer Position noch im Editor noach anders platziert werden?

3. Soll eine laufende Bewegung durch ein abermaliges betätigen des Pilzes gleich unterbrochen werden und umgedreht werden, oder soll es wieder möglich sein, den Pilz zu aktivieren, wenn er ganz hoch bzw. runter gefahren wurde?
 
hmm...mal überlegen:)

Die beiden Pilze sollen miteinander gekoppelt sein und jeweils gegensätzlich eine abwechselnde aufwärts/abwärts Bewegung durchführen, wenn man sie aktiviert - heißt, es ist egal welchen Pilz man aktiviert, der jeweils andere wird immer mitbewegt?
Völlig richtig:)

zu 1.: Mittel reicht, ganz schnell nicht, aber zügig^^ man soll ja nicht ewig fahren:lol:

zu 2.:Ich wollte schon mehrere machen, aber da kann ich ja einfach die IDs wechseln, oder?

zu 3.:wenns denn möglich wäre sollte man ihn erst wieder umdrehen können wenn die Bewegung ausgeführt wurde.
 
So - es gäbe diverse Möglichkeiten das zu regeln. Entweder über ein Background Script, dass von jedem der Pilze angestossen werden kann und das dann beide bewegt oder du machst es mit einem lokalen Script, das auf beiden Pilzen liegt.

In jedem Fall mußt du für jedes Pilz-Pärchen das du einbaust ein eigenes Script haben, sonst würde es sehr kompliziert. Ginge zwar auch, aber ehrlich gesagt - das ist mir zu umständlich ^^

So, leg erstmal zwei dieser Pilze an... ich nehme mal diese IDs:

MushroomLift01
MushroomLift02

Beide Objekte müssen schon mal "Persistant" sein.

Du stellst sie in die Zelle. einen in der Oberen Position, den anderen dann logischerweise in der unteren. Platziere sie exakt auf die von dir genannte Grenzhöhe, ich nebm aber mal 100 für unten und oben 700, das ist schön einfach zum moven, das Höhen-DELTA ist somit genau 600, damit kann man besser rechnen. Passe das also am besten entsprechend an. Aber beginnen wir. Du legst als erstes proforma ein MiniScript auf zwei Pilz-Aktivatoren, das sieht dann so aus:
Code:
begin bxMushroomLifScript
 short ismoving
end
So. Erscheint ziemlich sinnlos, aber wir brauchen es gleich:

Wenn du das gemacht hast, speichere das Script und den Activator. Das mag jetzt im ersten Schritt nutzlos erscheinen, ist aber dennoch ein sehr wichtiges Manöver. Hast du das getan, wird dem CS mitgeteilt, dass auf dem Activator ein Script mit einer definierten Variable (ismoving) liegt. Das mußt du machen, denn das echte Script greift nicht direkt, sondern indirekt auf diese Variable zu - dazu muß sie aber vorher schon deklariert worden sein, sonst hustet der Compiler nur Fehler zurück. Warum mache ich das so... tja, erstens, weil das recht cool ist, da man die beiden Plattformen dadurch vernetzt hat, ohne ein Background Script zu benutzen, um sie wechselseitig zu blockieren, und zum zweiten müßte ich sonst eventuell eine Status Global definieren, aber das un wieder mach ich ungern, da die dann immer geladen sein würde, ansonsten keinen Nutzen hat und so nur sinnlos Speicher frißt. Also, öffne mein kleines Proforma-Script wieder und ersetze es dann komplett durch dieses hier:

Code:
begin bxMushroomLifScript
DontSaveObject; will force backset to CS values after reload

short ismoving
float ZPos
float Timer

if ( menumode )
 return
EndIF

IF ( MushroomLift01.ismoving > 0 ) ;indirekt drauf zugreifen, das hat seinen Grund
 IF ( OnActivate == 1 ) ;kein Rumfingern während der Fahrt
  Return
 EndIF
Else
 IF ( OnActivate == 0 ) ;Pilz nicht angerührt? ok, dann nix machen...
  return
 EndIF
 set MushroomLift01.ismoving to 1 ;einen Pilz aktiviert? ok, dann los.
EndIF

IF ( MushroomLift01.ismoving == 1 ) ;erstmal feststellen, welcher Pilz wo ist.
 set Timer to 0 ;reset the Timer
 IF ( ( MushroomLift01->GetPos Z ) == 100 )
  set MushroomLift01.ismoving to 2 ;der is unten, dann muß er rauf
 Else
  set MushroomLift01.ismoving to 3 ;der is oben, also runter mit ihm
 EndIF
 ;maybe do something else her, play sound, cast spell, say something, etc.
EndIF

IF ( Timer < 1 ) ;wait a second so player can hop on the Plattform.
 set Timer to Timer + GetSecondsPassed
 return
EndIF

set ZPos to ( MushroomLift01->GetPos Z ) ;aktuelle Position holen

IF ( MushroomLift01.ismoving == 2 ) 
 IF      ( ZPos <= 110 )
  MushroomLift01->MoveWorld Z, 50
  MushroomLift02->MoveWorld Z, -50
 ElseIF ( ZPos <= 130 )
  MushroomLift01->MoveWorld Z, 75
  MushroomLift02->MoveWorld Z, -75
 ElseIF ( ZPos <= 160 )
  MushroomLift01->MoveWorld Z, 125
  MushroomLift02->MoveWorld Z, -125
 ElseIF ( ZPos <= 640 )
  MushroomLift01->MoveWorld Z, 200
  MushroomLift02->MoveWorld Z, -200
 ElseIF ( ZPos <= 670 )
  MushroomLift01->MoveWorld Z, 125
  MushroomLift02->MoveWorld Z, -125
 ElseIF ( ZPos <= 690 )
  MushroomLift01->MoveWorld Z, 75
  MushroomLift02->MoveWorld Z, -75
 ElseIF ( ZPos <= 700 )
  MushroomLift01->MoveWorld Z, 50
  MushroomLift02->MoveWorld Z, -50
 Else
  MushroomLift01->SetPos Z 700
  MushroomLift02->SetPos Z 100
  set MushroomLift01.ismoving to 0
 EndIF
 return
EndIF

IF      ( ZPos >= 690 )
 MushroomLift01->MoveWorld Z, -50
 MushroomLift02->MoveWorld Z, 50
ElseIF ( ZPos >= 670 )
 MushroomLift01->MoveWorld Z, -75
 MushroomLift02->MoveWorld Z, 75
ElseIF ( ZPos >= 640 )
 MushroomLift01->MoveWorld Z, -125
 MushroomLift02->MoveWorld Z, 125
ElseIF ( ZPos >= 160 )
 MushroomLift01->MoveWorld Z, -200
 MushroomLift02->MoveWorld Z, 200
ElseIF ( ZPos >= 130 )
 MushroomLift01->MoveWorld Z, -125
 MushroomLift02->MoveWorld Z, 125
ElseIF ( ZPos >= 110 )
 MushroomLift01->MoveWorld Z, -75
 MushroomLift02->MoveWorld Z, 75
ElseIF ( ZPos >= 100 )
 MushroomLift01->MoveWorld Z, -50
 MushroomLift02->MoveWorld Z, 50
Else
 MushroomLift01->SetPos Z 100
 MushroomLift02->SetPos Z 700
 set MushroomLift01.ismoving to 0
EndIF

end
Einfach das kleine Script komplett markieren und mit dem da oben per STRG+V (Paste) überschreiben. Abspeichern. Fertig. Probier es dann mal ingame aus. Es sollte wie gewünscht funktionieren.

Du mußt nun nur noch die beiden Activatoren wirklich auf Höhe 100 und Höhe 700 fixiert platziert haben und kannst sie Ingame wechselseitig aktivieren. Sie vollführen dann ein beschleunigtes Auf und Nieder... ggf. mußt du noch die Geschwindigkeit anpassen, wenn es dir etwas zu schnell ist.

Bei Problemen -> melden :)

Grüße,
£exa
 
  • Like
Reaktionen: Saryna
wollt mal fragen ob es nen befehl gibt mit dem man den scale werd eines charas wieder auf den standart wert zurückstellt also wenn der chara z.B. durch nen gegenstand schrumpft und wenn er ihn auszieht wieder normalgroß ist doch da ja nicht jeder chara gleichgroß ist könnt ich das gut gebrauchen, sonst muss ich für jeden chara nen extra script mit gegenstand machen schonma danke im voraus ;)
 
wollt mal fragen ob es nen befehl gibt mit dem man den scale werd eines charas wieder auf den standart wert zurückstellt also wenn der chara z.B. durch nen gegenstand schrumpft und wenn er ihn auszieht wieder normalgroß ist doch da ja nicht jeder chara gleichgroß ist könnt ich das gut gebrauchen, sonst muss ich für jeden chara nen extra script mit gegenstand machen schonma danke im voraus ;)

Der Resurrect-Befehl

:(
Ne, geht nicht da bei den Kreaturen/Personen die Scale meist 1.10 oder so etwas ist.
1.0 ist nur der Standdart-wert
 
Der Resurrect-Befehl


:(
Ne, geht nicht da bei den Kreaturen/Personen die Scale meist 1.10 oder so etwas ist.
1.0 ist nur der Standdart-wert

Nein, die Größe ist 1.10 z.b. bei argoniern. Wenn man die wieder auf 1 "cheatet", dann geht ja der editor von 1.10 aus, also 1 ist die normale größe.. Bei Kreaturen ist das was anderes, wenn sie auf 0.5 verkleinert wurden z.b. babytier oder was weiß ich, und dann setscale 1 benutzt wird, werden sie vergrößert auf 1.0^^
 
Ich wäre echt froh um eine music script.

Bitte ich denke mal das wäre nicht nur für mich von vorteilen!:?
 
Bitte ich denke mal das wäre nicht nur für mich von vorteilen!:?
Hab doch bitte die Güte, uns zunächst einmal zu erklären, was genau besagtes Script denn machen soll. Unter dem Begriff "Music Script" allein kann ich mir nämlich nicht allzu viel vorstellen - so geht es anderen sicher auch und darum kommt hier wohl auch keine Antwort ;)
 
Hab doch bitte die Güte, uns zunächst einmal zu erklären, was genau besagtes Script denn machen soll. Unter dem Begriff "Music Script" allein kann ich mir nämlich nicht allzu viel vorstellen - so geht es anderen sicher auch und darum kommt hier wohl auch keine Antwort ;)

Auf Seite 50 habe ich mein anliegen schonmal presentiert doch der script den ich bekommen habe hat nicht funktionirt.

Mein Anliegen:
Man geht in eine Türe hinein und Im Indoor spielt es die Musik ab!

Im Moment habe ich eine Music Datei die ich gerne einsetzen möchte und eine unvollständige Mod.

Ich bitte um Hilfe.
 
portal, und spwan bolzen

ich will jetzt nirgendwo reinplatzen aber ich brauche ein skript (was man sich ja denken kann).

das skript soll auf einen bolzen anwendbar sein, der die ID SoU_dwrv_summonbolt_1
hat.
an der stelle, wo der bolzen(der aus einer armbrust abgeschoßen wurde)auf landschaft oder static trifft, wird eine kreatur mit der ID SoU_dwrv_summoncenturion_spider
beschworen werden, und nach 120 sekunden wieder verschwinden.

dann bräuchte ich noch ein skript für einen anderen bolzen mit der ID
Sou_dwrv_portalbolt_door
der an der stelle, wo er auf landschaft oder statics trifft, eine tür mit dem modell beispielmodell setzt.
und ein skript für den dritten bolzen mit der ID
SoU_dwrv_portalbolt_marker der an der stelle, an der auf landschaft usw. trifft, den dazugehörigen doormarker setzt.


und wie bringt man die creatures dazu, gegen die feinde des players zu kämpfen, wie eine beschworene kreatur?

wer hilft, wird auf jedenfall in der readme erwähnt.;)
 
Du kannst doch für den ersten Bolzen einen neuen Beschwörungszauber machen der deine Kreauter beschwört, und dann den Zauer auf den Bolzen legen und bei treffer aktivieren einstellen ;) so würde ich es machen