Construction Set Skriptthread zum Construction Set

Nein, das ist einfach nur ein Schockschild-Effekt, der bewirkt gar nichts. Natürlich kann ich ihn per Timer langsam durchsichtig werden lassen, aber das reicht mir noch nicht. Am besten wäre es, wenn ich dichten Rauch von unten aufsteigen lassen könnte. Wie ein Zauberer in einer schelchten Zirkus-Vorstellung: "Hahahahahaaaa!", Rauch steigt auf, der Rauch ist wieder weg und der Zauberer auch. ;)

edit: Chamäleon-Effekt wäre mir zu viel Arbeit, ein "NPCRef.saa 0.9", "0.8", "0.7" usw. über die Zeit reicht mir völlig. Es sollte aber höchstens 5 bis 10 Sekunden dauern, in der Zeit soll der Rauch aufgezogen und auch wieder weg sein (mitsamt NPC natürlich).
 
Ich kenne jetzt den Script (mit saa, ist nicht so aufwendig ;)), doch leider habe ich keinen Rauch-Effect parat:

Edit:
Code:
scn VerschwindeScript

short x
short y

Begin GameMode

set y to x / 10

If x == 0 && (Hier die Condition, wann der verschwinden soll)
set x to 10
endif

If x > 0
[MagierID.]saa y
set x to x -getsecondspassed
endif

end

Ich bin mir jedoch nicht sicher, ob er die short dann runterzählt, aber einen Versuch ist es doch wert. ;)
So sollte es doch sein, oder? ;)

Edit:
Ps.: Kennst du den Befehl, dass der so einfach verschwindet und dann woanders wieder auftaucht? Also sich teleportiert?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Fellan
Nein, ein Timer-Script geht anders und ist auch etwas komplizierter. Es geht mir auch mehr um einen Rauch-Effekt, denn ich finde keinen. ;) Am Besten wären die Gas-Emitter, die als Ayleiden-Ruinen-Falle dienen. Der Rauch-Effekt gefällt mir sehr gut, nur soll das ganze dann keinen Schaden zufügen...wie entferne ich denn den Schaden von den Gas-Emittern?

Hier der reine SAA-Script ohne dichten Rauch (müsste nur aktiviert werden). Der Script liegt auf einem Dummy-Objekt, dass über einen anderen Script den NPC aktiviert. NPC-ID ist in diesem Falle "WGTWEAssassine03QRef", bevor der NPC "disabled" wird wird er noch wegteleportiert. Und nicht von meinen undurchsichtigen Reference-Namen erschrecken lassen. ;)

Code:
scn WGTNoteToTeleportNPCToLeyawiinScript

short done
short done2
short init
float timer

begin OnActivate WGTWEAssassine03QRef

if done2 == 0
    set init to 1 ;hier im Activate-Block wird ausschließlich der Timer aktiviert, der Rest passiert unten, im GameMode-Block
    set done2 to 1
endif

end



begin GameMode

if init == 1
    set init to 2
    set timer to 10 ;8 Sekunden Zeit
    WGTWEAssassine03QRef.pms effectshockshield ;das passiert am Anfang der 8 Sekunden. Bringt nichts, alles nur Show!
    WGTPosOfWGTWEAssassine03QRefAfterTeleportRef.Enable
    DisablePlayerControls ;der Spieler soll den NPC ja nicht hauen, beklauen oder noch mit ihm reden, bevor er verschwindet
elseif init == 2
        if timer > 0 ;solange der timer noch läuft...
            set timer to timer - GetSecondsPassed
            if timer == 9
                WGTWEAssassine03QRef.saa 0.9
                ;Rauch1Ref.Enable ;der Rauch kommt langsam hoch
            elseif timer == 8
                WGTWEAssassine03QRef.saa 0.8
                ;Rauch2Ref.Enable
            elseif timer == 7
                ;Rauch3Ref.Enable ;das wird ja immer mehr Rauch!
                WGTWEAssassine03QRef.saa 0.7
            elseif timer == 6
                WGTWEAssassine03QRef.saa 0.6
            elseif timer == 5
                WGTWEAssassine03QRef.saa 0.5
            elseif timer == 4
                WGTWEAssassine03QRef.saa 0.4
            elseif timer == 3
                WGTWEAssassine03QRef.saa 0.3
            elseif timer == 2
                WGTWEAssassine03QRef.saa 0.2
            elseif timer == 1
                WGTWEAssassine03QRef.saa 0.1 ;NPC verraucht, kaum bis gar nicht mehr sichtbar
                WGTWEAssassine03QRef.MoveToMarker WGTPosOfWGTWEAssassine03QRefAfterTeleportRef
            endif ;kaum noch Zeit übrig!
        else ;oh, schon vorbei! der NPC ist wie geplant langsam durchsichtig geworden und schon längst ganz wo anders
            WGTWEAssassine03QRef.Disable ;und tschüss
            ;Rauch1Ref.Disable
            ;Rauch2Ref.Disable
            ;Rauch3Ref.Disable ;weg mit dem Rauch!
            EnablePlayerControls ;jetzt, da der NPC weg ist, kann der Spieler ruhig wieder frei herumlaufen
        endif
endif

end
Jetzt muss ich nur noch rausfinden, wie ich den Rauch unschädlich mache. Da hätte ich zwar auch alleine drauf kommen können, aber trotzdem Danke. ;)


edit: @Oberscht: Resurrect heißt im Klartext:

Code:
[B]Reference[/B].Resurrect
Richtig?

edit²: mein Gas-Emitter-Script sieht jetzt so aus. Ich hoffe, dass da kein Schaden bei ensteht. Beide Scripts sind natürlich ungetestet!

Code:
scn WGTARTrapGasEmitter01SCRIPT

; spurt gas on activation

short init
float timer
short next
ref mySelf
ref myParent

float fTrapDamage
float fLevelledDamage
float fTrapPushBack
float fTrapMinVelocity
short bTrapContinuous

begin onActivate

    if init == 0
        set mySelf to getSelf
        set myParent to getParentRef
        set init to 1
    endif

    if isActionRef player == 0 && isActionRef mySelf == 0
        
        set init to 2
        set timer to 8
        set next to 1
        playgroup forward 1
        
    endif

end

begin gameMode

    ;daisy-chain
    if next == 1 && timer <= 7
        set next to 0
        myParent.activate mySelf 1
    endif

    if timer <= 0 && init == 2
        
        playgroup forward 1
        set timer to 10

    endif

    if timer > 0
        set timer to timer - getSecondsPassed
    endif

end
 
Zuletzt bearbeitet:
Hi,
wie ich oben schon ganz kurz erwähnt habe, suche ich einen Script (falls das überhaupt nötig ist), mit dem man NPCs, meinen player, Monster, etc teleportieren kann.

MfG Gildur
 
Also für den Spieler:

scn TeleportScript

Begin OnActivate
player.moveto MarkerRef

end
Setze einfach eine XMarkerHeading dahin wo er hinteleportiert werden soll.
Gib den Marker dann noch einfach eine Reference ID und die gibts du im Script bei MarkerRef ein.

Den Rest weiß ich jetzt nicht aus dem Kopf.
 
  • Like
Reaktionen: Gildur
Das geht mit "MoveTo"?
Ich dachte immer, dass der dann immer bis dahin latscht. ^^
Danke

MfG Gildur
 
Ne das wär schön ^^
edit: Also wenn er da hinlaufen würde.
Es geht mit moveto (der teleport)
 
Zuletzt bearbeitet:
Ich möchte, dass bei meinem Schnellreisepunkt das Pferd in den Stall der dazugehörigen Stadt gepackt wird und nicht "mitkommt". Wie erreiche ich das? Ich habe schon nach Scripts etc. gesucht, das hilft aber nichts. Die Map-Marker in der Kaiserstadt haben den "ChorrolMasterMapMarker" als Parent, die in den anderen Städten aber nicht, daran kann es also nicht liegen. Die "Horse-Marker" in den jeweiligen Städten sind aber auch nicht als Parent mit den einzelnen Map-Markern verbunden oder umgekehrt.

Weiß hier jemand, wie ich das Pferd in die dazugehörigen Ställe setzen lasse, anstatt dass es bei der Schnellreise mitkommt?
 
Hauskauf?

Kann mir jemand den Script für den Hauskauf sagen! Also eher eine Höhle wird dem Spieler angeboten und wie ich da einzelln vorgehen soll! Ich geh zum beispiel in ein Laden, die Höhle wird dort angeboten für ein bestimmten Preis! Wenn ich sie gekauft habe, wird sie automatisch eingerichtet und ein Marker wird hinzugefügt, damit man dorthin schellreisen kann!! Danke im Vorraus MFG aufspringer
 
Hi,
also zu deiner ersten Frage, wie man das kaufen kann, würde ich es so machen:
1.: Du erstellst eine Quest, die meinetwegen "AaMeineHoehle" heißt.
2.: du erstellst eine Stage im "Quest Stage"-Tab mit dem Wert 10. Dort musst du nichts in den Log-Entry reinschreiben, kannst es jedoch tun (zB. "Ich habe meine Höhle vom Händler gekauft und den Schlüssel bekommen. Nun kann ich meine eigene Höhle betreten")
3.: auf der rechten Seite ist ein weißes Feld, wo drüber steht "Result Script". Dort tippst du dann folgenden Text ein:
Code:
Player.RemoveItem Gold001 [BetragDesGoldes,WasDieHöhleGekostetHat]
Player.AddItem [SchlüsselIDfürDieHöhle] 1
SetCellOwnership [IDderHöhle]
SetCellFullName [IDderHöhle] "Meine eigene Höhle"
4.: Im Tab "Topics" würde ich 4 Topics einfügen. Zum einen das GREETING und drei weitere, selbst erstellte. Die nennst du zB. "AaHoehleKaufen", "AaHoehleKaufenYes" und "AaHoehleKaufenNo". Nun sind alle 4 Topics in der linken Leiste.
5.: bei dem Topic "AaHoehleKaufen" kannst du nun einen Text reinschreiben, wo er fragt, ob der Spieler interessiert ist, wie viel es kostet, wo es liegt und ob der Spieler es kaufen möchte. Auf der rechten Seite dann, in der Liste "Choices" fügst du dann die Topics "AaHoehleKaufenYes" und "AaHoehleKaufenNo" hinzu.
6.: du klickst nun links auf diese beiden Topics und schreibst jeweils den Text rein, der geantwortet werden soll, wenn du das Haus kaufst/nicht kaufst. Bei dem Topic, wo du es kaufst, tippst du dann in das weiße Feld "ResultScript" in der Mitte folgendes ein:
Code:
SetStage AaMeineHoelhe 10

Das war's. ;)
Wie man es machen kann, dass die Möbel erst erscheinen, wenn man das Haus gekauft hat, weiß ich leider nicht.

MfG Gildur
 
  • Like
Reaktionen: aufspringer
Dazu muss man die Möbelkaufscripte beim Händler deponieren. Das schaut man sich am besten mal bei den entsprechenden Quests/Scripten im CS an und baut etwas Vergleichbares.

Gut, das habe ich schon mal gemacht, aber nichts gefunden.;)
Doch dieses mal habe ich es endlich raus. *Das hilft mir endlich auch mal bei meinen eigenen Mods, wo ich das auch brauche*.
Also, ich habe mir jetzt mal alles einzeln angeguckt und dann musst du es so machen:
1.: Du setzt alle deine Objekte in die Höhle, die du willst.
2.: Bei allen Objekten machst du nun ein Häckchen bei "Initialy Disabled".
3.: Du suchst dir ein(en) Möbel/Gegenstand aus, der frei in der Cell rumliegt (ich nehme erst ein mal an, dass es eine ist - Wenn es mehr sind, ist es auch kein Problem^^). Diesem einen Objekt gibst du nun eine "Reference Editor ID" am oberen Rand. Am besten eine, die du dir gut merken kannst. Ich nenne sie mal in meinem Beispiel "AaHoehlenAktivierer". Dann musst du noch bei deisem einzigen Objekt "Persistent Reference" anklicken.
4.: Bei allen Objekten in der Höhle/im Cell, außer dem "AaHoehlenAktivierer", gibtst du nun im Tab "Enable Parent" die Cell ein, in der der Gegenstand steht, und dann wählst du den Gegenstand "AaHoehlenAktivierer" selber aus (andersherum geht es sowieso nicht :-D)
5.: In der Quest, die du erstellt hast (oben), hast du ja auch eine Stage erstellt, wo schon einiges im "Result Script" drinne steht/stehen sollte:D. Dort musst du nun unten drunter folgendes reinschreiben:
Code:
AaHoehlenAktivierer.Enable
So dass dann der "Result Script" der Stage so aussehen sollte:
Player.RemoveItem Gold001 [BetragDesGoldes,WasDieHöhleGekostetHat]
Player.AddItem [SchlüsselIDfürDieHöhle] 1
SetCellOwnership [IDderHöhle]
SetCellFullName [IDderHöhle] "Meine eigene Höhle"
AaHoehlenAktivierer.Enable

Das war's mal wieder. :D
Ich hoffe die Erklärung war ausführlich genug.:p

Edit: Übrigens, das mit dem Marker kannst du genau so machen. Unter WorldObjects > Statics suchst du einfach nach "MapMarker". Den ziehst du einfach in die Welt vor das Haus(geht nur bei Exteriors^^). Nun klickst du doppelt auf den MapMarker und gibst bei "Enable Parent" wieder das selbe ein, wie bei den anderen Objekten/Möbeln. Genau so würde ich dann auch noch "Initialy Disabled" anklicken. Und im Tab "Marker Data" gibst du dann einfach den namen des Markers ein, zB. "Meine Höhle", dann noch beim Type am besten City und unten bei "Visible" und "Can Travel to" machst du auch noch jeweils ein Häckchen. Fertisch.^^

MfG Gildur
 
Zuletzt bearbeitet:
  • Like
Reaktionen: aufspringer
Höhlenscript!

Ich danke euch es funktioniert sehr gut!! Und wieder habe ich etwas dazu gelernt!! Wenn ihr lust habt könnt ihr ja mal Thread besuchen, wo es um eine Wohnungsmod geht!! Klick mich
 
Ich lerne gerade Skripten und wollte mir mal zum Anfangen ein Amulett bauen, das einiges kann ^^

Code:
scn Cheat

short Aktion

Begin ScriptEffectStart 

MessageBox "Was würdet Ihr gerne tun?","Geld kriegen","Im Level aufsteigen"

End


Begin GameMode

Set Aktion to GetButtonPressed

    If Aktion == 1
player.additem 00000f 10000

    Elseif Aktion == 2
advlevel

    endif

End

Funktioniert das so? Dass wenn ich den Gegenstand im Inventar anklicke die Messagebox kommt und dann die Effekte kommen?
 
Also dieses Adlevel ist mir unbekannt sonst sieht alles richtig aus ;) Allerdings ist begin Scripteffectstart ein Zauberbegin comand von daher würde ich einen neuen Zauber erstellen der z.B. Die ID Meinzauber hat und auf das >Amulett< folgendes script legen.

Code:
SCN Meinamulettscript
Begin OnEquip
Player.Addspell [Die Zauberid die in diesem fall Meinzauber ist]
end

Begin OnunEquip
Player.Removespell [Die Zauberid die in diesem fall Meinzauber ist]
end

:)
 
Zuletzt bearbeitet:
:huh: Was genau bewirkt denn BeginOnEquip bzw BeginOnUnequip? Und wo ist der Unterschied zu Begin GameMode und Begin ScriptEffect?
 
Naja, Begin OnEquip wird einmal durchlaufen, sobald der Spieler das Objekt anzieht. OnUnEquip wenn ers auszieht.

Begin Gamemode wird durchgehend durchlaufen,Begin OnScriptEffectStart wird einmal durchlaufen, sobald der Zauber jemanden trifft
 
  • Like
Reaktionen: Phoenix-Ch
Hi,
also zu deiner ersten Frage, wie man das kaufen kann, würde ich es so machen:
1.: Du erstellst eine Quest, die meinetwegen "AaMeineHoehle" heißt.
2.: du erstellst eine Stage im "Quest Stage"-Tab mit dem Wert 10. Dort musst du nichts in den Log-Entry reinschreiben, kannst es jedoch tun (zB. "Ich habe meine Höhle vom Händler gekauft und den Schlüssel bekommen. Nun kann ich meine eigene Höhle betreten")
3.: auf der rechten Seite ist ein weißes Feld, wo drüber steht "Result Script". Dort tippst du dann folgenden Text ein:
Code:
Player.RemoveItem Gold001 [BetragDesGoldes,WasDieHöhleGekostetHat]
Player.AddItem [SchlüsselIDfürDieHöhle] 1
SetCellOwnership [IDderHöhle]
SetCellFullName [IDderHöhle] "Meine eigene Höhle"
4.: Im Tab "Topics" würde ich 4 Topics einfügen. Zum einen das GREETING und drei weitere, selbst erstellte. Die nennst du zB. "AaHoehleKaufen", "AaHoehleKaufenYes" und "AaHoehleKaufenNo". Nun sind alle 4 Topics in der linken Leiste.
5.: bei dem Topic "AaHoehleKaufen" kannst du nun einen Text reinschreiben, wo er fragt, ob der Spieler interessiert ist, wie viel es kostet, wo es liegt und ob der Spieler es kaufen möchte. Auf der rechten Seite dann, in der Liste "Choices" fügst du dann die Topics "AaHoehleKaufenYes" und "AaHoehleKaufenNo" hinzu.
6.: du klickst nun links auf diese beiden Topics und schreibst jeweils den Text rein, der geantwortet werden soll, wenn du das Haus kaufst/nicht kaufst. Bei dem Topic, wo du es kaufst, tippst du dann in das weiße Feld "ResultScript" in der Mitte folgendes ein:
Code:
SetStage AaMeineHoelhe 10
Das war's. ;)
Wie man es machen kann, dass die Möbel erst erscheinen, wenn man das Haus gekauft hat, weiß ich leider nicht.

MfG Gildur

Ok, ich bedanke mich nochmal aber nun folgendes:

Ich habe ein Greeting erstellt die heißt: Hallo, ich habe eine Wohnungshöhle im Verkauf, möchtest du sie haben? (oder so ähnlich^^) ---> jetzt will ich dass er mich nur so begrüßt wenn er mich zu 50 protzent oder höher leiden kann! Und außerdem soll nach der Begrüßung den Topic haben: Höhlekaufen!! Wie macht man dass??