Construction Set Skriptthread zum Construction Set

Hmm, komisch, bei mir funktionirt das mit .enabel doch auch. (habs zwar noch nicht mit Türen versucht, aber mit Bilden und Feuern usw.)

Villeicht liegts am CS, schonmal CS neugestartet?
oder ne CS neuinstallation pobiert?

Ausserdem hast du bei If geschrieben

"If IstActionRef player == 1"

heist das aber nicht:

"If ISActionref player == 1
 
Zuletzt bearbeitet:
Villeicht liegts am CS, schonmal CS neugestartet?
Gerade eben ja. Tut sich immer noch nichts, nur die Fehlernachricht sieht anders aus und unten ist wieder das alte "Weiterspiele?" "Ja" "Nein" "Abbrechen". Bei Ja und Abbrechen speichert das CS es immer noch nicht ab.

Edit:
"If IstActionRef player == 1"

heist das aber nicht:

"If ISActionref player == 1
Hoppla^^ Wird schnell ausgebessert.

Edit2: Tut sich immer noch nichts.
 
gabs nicht irgendwie probleme mit scriptnamen, die mit zahlen beginnen? gilt das vielleicht auch für objekte?
benenn die dinger doch mal testweise um :)
 
gabs nicht irgendwie probleme mit scriptnamen, die mit zahlen beginnen?
Nicht das ich wüsste. Ich habe bei allem, was ich erstelle, also auch Scripts, eine 1-9 am Anfang gesetzt, damit ich schnell an den Eintrag komme (Wegen der alphabetischen Reihenfolge nach ID:D). Bei Scripts hats auch wunderbar geklappt;)

gilt das vielleicht auch für objekte?
Siehe oben.

benenn die dinger doch mal testweise um
Probieren kann ichs ja.
 
Tag :p
Mal eine Script Frage von mir, ich hoffe, dass ihr sie mir beantworten könnt (bin mir eigentlich sicher dass ihr das könnt =P)

Vorhanden sind
Variablen: Geldeinsatz (1, 2 oder 3)
ContainerID: Kiste
ObjectID: Geld

Ich möchte der Kiste zufällig viel Geld hinzufügen, folgend spezifiert: Bei Geldeinsatz 1: 25% 0, 75% zwischen 1 und 150
Geldeinsatz 2: 10% 0, 90% zwischen 50 und 300
Geldeinsatz 3: 100% zwischen 200 und 800

Nebenbei: Ich möchte natürlich, dass das Gold dann dem Besitzer der Truhe gehört ^^ (Ich hoffe ich hab euch jetz keinen allzu komplizierten Script aufgebrummt... befürchte es aber wegen den Prozentzahlen xD)

Mein Bedanken im Vorraus.
 
Nicht das ich wüsste. Ich habe bei allem, was ich erstelle, also auch Scripts, eine 1-9 am Anfang gesetzt, damit ich schnell an den Eintrag komme (Wegen der alphabetischen Reihenfolge nach ID:D). Bei Scripts hats auch wunderbar geklappt;)

ok, das hab ich nicht mehr so genau im kopf gehabt. gibt wohl nur probleme mit führenden nullen im scriptnamen, die abgeschnitten werden:
http://www.scharesoft.de/joomla/forum/showpost.php?p=495379&postcount=2915
 
Hiho,

@Chuck Norris: Die ID 1tuer ist aber die ReferenzID? Nicht dass Du versuchst über Skript die EditorID anzusteuern. Bei meinen Skriptversuchen war mit der EditorID kein Blumentopf zu gewinnen.

GreeZ,
Suchan
 
Um etwas klarheit zu schaffen, ReferenceId's die mit Zahlen anfangen sind generell ok, solange sie nicht mit "0" beginnen also z.B 01Door. Hier überließt das Cs nämlich einfach die 0 und hat im schlimmsten Falle ein ganz anderen Scriptziel als vorgesehen.

Wenn man nun doch eine 0 vorne hat, und das nicht alles ändern will, gibt es die Möglichkeit die RefId in Anführungszeichen zu setzen, was allerdings auf dauer recht lange braucht.

Außerdem ist es sowieso nicht zu empfehlen, solche ReferenceId's wie 1Door zu vergeben, da man bei der Fülle an Plugins sicher sein kann, dass es die schon irgendwo gibt. Ich würde in einer RedId immer einen Teil oder den kompletten Modnamen verwenden. Bei meinem Holländer sehen alle RedIds z.B so aus "AjDutchman*********".

Tag :p
Mal eine Script Frage von mir, ich hoffe, dass ihr sie mir beantworten könnt (bin mir eigentlich sicher dass ihr das könnt =P)

Vorhanden sind
Variablen: Geldeinsatz (1, 2 oder 3)
ContainerID: Kiste
ObjectID: Geld

Ich möchte der Kiste zufällig viel Geld hinzufügen, folgend spezifiert: Bei Geldeinsatz 1: 25% 0, 75% zwischen 1 und 150
Geldeinsatz 2: 10% 0, 90% zwischen 50 und 300
Geldeinsatz 3: 100% zwischen 200 und 800

Nebenbei: Ich möchte natürlich, dass das Gold dann dem Besitzer der Truhe gehört ^^ (Ich hoffe ich hab euch jetz keinen allzu komplizierten Script aufgebrummt... befürchte es aber wegen den Prozentzahlen xD)

Mein Bedanken im Vorraus.

Code:
scn blubb

short choice
short random
short Percent

Begin OnActivate
MessageBox "Macht euren Einsatz", "1", "2", "3"
end

Begin GameMode
Set choice to GetButtonPressed
If choice == 0
   Set random to 1
   Player.RemoveItem Gold001, Menge
elseif choice == 1
   Set random to 1
   Player.RemoveItem Gold001, Menge
elseif choice == 2
   AddItem ........       ; Je nach Geldmengenmethode verändern.
   Player.RemoveItem Gold001, Menge
endif

If Random == 1
    Set Percent to GetRandomPercent
        If Percent <= 10 && choice == 1
           Set choice to -1
           Set random to 0
           Set Percent to 0
        elseif Percent >= 10 && choice == 1
           AddItem ......
           Set random to 0
           Set Percent to 0
           Set choice to -1
        endif
        If Percent <= 25 && Choice == 0
           Set choice to -1
           Set random to 0
           Set Percent to 0
        elseif Percent >= 26 && choice == 0
           AddItem ........                             ; Hier musst du ein GoldItem hinzufügen, du wirst dich auf einen Wert festlegen müssen oder einen Wert unter 100 nehmen müssen, GetRandomPercent geht nicht höher. Allerdings könnte man den Wert von GetRandomPercent noch *2 nehmen. Such dir was auch... 
           Set choice to -1
           Set random to 0
           Set Percent to 0
         endif
endif
end
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Kappes
Mhh, wäre das auch in einem Resultscript möglich, also beim Greeting von 'nem NPC? Man spricht ihn an un da is dann der Result script
Wenn Geldbetrag 1 is, dann kütt 0 bis 150 Gold in die Truhe (die 25% kann man, wenns das ganze zu kompliziert macht, weglassen) usw. wie oben beschrieben. (die 10% ebenso wie die 25% ^^)

Gibt es keine Möglichkeit, in einem Script ne Zahl zwischen dem und dem Wert zufällig auszuwählen un als Variable zu speichern? :?
 
Zuletzt bearbeitet:
Gibt es, allerdings nur zwischen 1-99.

Ja, man kann das auch als Resultscript bei einem Npc machen, dann würde ich das aber den GameMode Teil auf den Npc legen, und zustätzlich noch die Werte aus dem Dialog abfragen lassen.
 
dann werd ichs anders machen =P

Wie müsste ich den Result Script machen, damit folgende Kriterien eingehalten werden?

Bei Geldwert 1: zu 50% kommt 100 Gold in die Truhe, bei den anderen 50% passiert nichts

Bei Geldwert 2: zu 50% kommt 250 Gold in die Truhe, sonst passiert nichts

Bei Geldwert 3: zu 50% kommt 750 Gold in die Truhe, sonst passiert nichts
 
@Chuck Norris: Die ID 1tuer ist aber die ReferenzID?
Natürlich. So blöd bin ich auch wieder nicht:lol:

@ Scriptmeister: Gäbe es denn nicht eine Alternative zum Script? Grundsätzlich müssten ja nur, wenn der Player einen Actvator betätigt, die Referenzen enablelt werden. Wenn man noch "außen rum" noch etwas machen muss, kann ich leicht versuchen, das improvisiert zu verdecken...

Edit:
Außerdem ist es sowieso nicht zu empfehlen, solche ReferenceId's wie 1Door zu vergeben, da man bei der Fülle an Plugins sicher sein kann, dass es die schon irgendwo gibt.
Darum bemühe ich mich ja, die ID möglichst unique zu halten. Ein Trick wäre es schon mal, deutsche IDs zu verwenden, da ich schon oft auch schon bei deutschen PIs auch mal englische IDs gesehen. Keine Ahnung, warum.
 
Zuletzt bearbeitet:
Hey Leute

Ich hab mir ne Insel gemacht in nem neuen Worldspace und brauchn Teleport dahin

dieses Skript hier

scn TeleportMarker01script
short once
begin gamemode
if once == 0
player.moveto TeleportMarker01
set once to 1
endif
if once == 1
stopquest NibelheimTeleport
endif
end

Da is irgendwas falsch oder? Denn jedesmal wenn ich es nutze, portet mich das alle 5 Sekunden wieder an die selbe Stelle

Wäre schön wenn ihr mir da helfen könntet

Gruss, Terry
 
Hey Leute

Ich hab mir ne Insel gemacht in nem neuen Worldspace und brauchn Teleport dahin

dieses Skript hier



Da is irgendwas falsch oder? Denn jedesmal wenn ich es nutze, portet mich das alle 5 Sekunden wieder an die selbe Stelle

Wäre schön wenn ihr mir da helfen könntet

Gruss, Terry

Player.MoveTo ist eine Return Function, setz das Set once to 1 davor und es sollte gehen.

dann werd ichs anders machen =P

Wie müsste ich den Result Script machen, damit folgende Kriterien eingehalten werden?

Bei Geldwert 1: zu 50% kommt 100 Gold in die Truhe, bei den anderen 50% passiert nichts

Bei Geldwert 2: zu 50% kommt 250 Gold in die Truhe, sonst passiert nichts

Bei Geldwert 3: zu 50% kommt 750 Gold in die Truhe, sonst passiert nichts

Genauso wie bei dem ersten teil, du änderst einfach nur die Percent Zahlen.

Code:
If Percent <= 49 
           Set choice to -1
           Set random to 0
           Set Percent to 0
        elseif Percent >= 50 
          if choice == 0
           RefContainerId.AddItem Gold001, 100
           Set random to 0
           Set Percent to 0
           Set choice to -1
          elseif choice == 1
           RefContainerId.AddItem Gold001, 250
           Set random to 0
           Set Percent to 0
           Set choice to -1         
          elseif choice == 2
           RefContainerId.AddItem Gold001, 750
           Set random to 0
           Set Percent to 0
           Set choice to -1
          endif
endif
Natürlich. So blöd bin ich auch wieder nicht:lol:

@ Scriptmeister: Gäbe es denn nicht eine Alternative zum Script? Grundsätzlich müssten ja nur, wenn der Player einen Actvator betätigt, die Referenzen enablelt werden. Wenn man noch "außen rum" noch etwas machen muss, kann ich leicht versuchen, das improvisiert zu verdecken...

Edit:

Darum bemühe ich mich ja, die ID möglichst unique zu halten. Ein Trick wäre es schon mal, deutsche IDs zu verwenden, da ich schon oft auch schon bei deutschen PIs auch mal englische IDs gesehen. Keine Ahnung, warum.
Mach ich auch, liegt bei mir wohl daran, dass ich ungerne ständig zwischen deutsch und dem englischen Cs umdenke. Außerdem hat es einfach auch den Vorteil, dass so gut wie jeder das PI nacher bearbeiten kann, da fast jeder Englisch kann im Gegensatz zu Deutsch.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: TerryDoneLLi
Hallo, ich brauch mal wieder hilfe für mein script. undzwar hab ich folgendes geschrieben:

Code:
scn 1Gemaldeschalter

short once

Begin onActivate
If isactionref Player == 1
if once == 0  && isAnimPlaying == 0
Shadowpicture.disable
set once to 1
endif
endif
		else
if isactionref player == 1
if once == 1  && isAnimPlaying == 0
Shadowpicture.enable
set once to 0
endif
endif
endif
end

Es soll bewirken, das wenn der Spieler den Aktivator aktivirt, (der Geheimtüraktivator aus Schloss Anvil, dieser Pfeiler)
soll das Gemälde disabelt werden, beim zweiten aktiviren, soll es wieder erscheinen.
Das mit dem isAnimPlaying == 0, hab ich aus dem GeheimtürenScript.

Das Problem ist, das Ingame überhauptnichts passirt. Die Pfeiler gehen nicht auseinander, und das Gemälde ist auch noch da.

Ps: Das dritte endif ist notwendig, da das Script sonst nicht speicherbar ist (zumindest bei mir)

Mfg
Sahdow-King
 
Code:
scn 1Gemaldeschalter

short once

Begin onActivate Player
if once == 0  && isAnimPlaying != 1
      Shadowpicture.disable
      [COLOR="Red"]PlayGroup Forward 1[/COLOR]
      set once to 1
elseif once == 1  && isAnimPlaying != 1
Shadowpicture.enable
      [COLOR="Red"]PlayGroup Backward 1[/COLOR]
set once to 0
endif
end

IsAnimPlaying gibt kein 0 aus.

Die Pfeiler werden sich auch nicht bewegen, da du den Teil im Script entfernt hast, der dafür verantwortlich wäre.

Returns 1 if the calling object is currently playing an animation.

Retrieved from "http://cs.elderscrolls.com/constwiki/index.php/IsAnimPlaying"
 
Ich habe jetzt auch mal angenommen, das du ein neues Script gemacht hast und mir schon gedacht, das irgendwas fehlt.
Ich würde einfach das ganze Script einmal kopieren, ne neues machen und ergänzen (also an der passenden Stelle ein enablen des Bildes und ein disablen des Bildes).
 
So jetzt gibt es wieder ein Problem, undzwar hab ich das ganzw verändert wie Folgt.

Code:
scn 1Gemaldeschalter

short once

Begin onActivate Player
if once == 0  && isAnimPlaying != 1
      Shadowpicture.disable
      Shdowpicture02.enable
Messagebox "Ein mechanische Geräusch erklingt"      
PlayGroup Forward 1
      set once to 1
elseif once == 1  && isAnimPlaying != 1
     Shadowpicture.enable
     Shdowpicture02disnable
Messagebox "Ein mechanische Geräusch erklingt"  
 PlayGroup Backward 1
set once to 0
endif
end

Das problem liegt jetzt daran, das das erste nicht mehr disablt wird.
Ohne zweites Bild funktionirt das ganze, aber mit zweien nicht mehr, kann mir einer sagen warum?

Ausserdem Habe ich nich ein script für eine Falle geschrieben, welche auch nicht geht. Undzwar habe ich 3 von diesen schwingenden Klingen genommen und einen Schalter (diesen Ayleiden-schalter (ARswitch01 oder so:-D))

Das script, ich wusste nicht wie ich es schreiben sollte, da ich kein vergleich für so ein Script gefunden hab sieht so aus:

Code:
Scn ShadowSchingklingnescript

Begin onAktivate

If isactionref Player == 1
1Blade.activate
2Blade.activate
3Blade.activate
endif
end

Funktionirt aber Ingame nichts.
Ausserdem sehe ich kein ein und ausfahren des Schalters. (was aber glaub ich am ARswitch01 liegt, weil der glaub ich ingame nur ein Script-dummy ist)


PS: 3000ster beitrag im Thread :p

mfg
Shadow-King
 
Zuletzt bearbeitet: