Construction Set Skriptthread zum Construction Set

Frage

wenn ich setcombat auf eine bestimmte person setzen will, aber den script nicht auf diese, muss ich dann schreiben:
IDmeinesNPCs.setcombat to [Combat]
?
oder geht das nicht?
 
Ich brache ein Script, dass, wenn man ein Buch gelesen hat, eine Kartenmarkierung (also einen MapMarker) auf der Karte hinzufügt. WIe muss das lauten?
 
Hi Leute,

ich hab ein Problem. Ich möchte das eine Tür erst aufgeht wenn ich eine Creatur getötet habe.

Was muss ich als Referenz der Tür angeben? Das Haus und die Tür also 'MeinHaus.FarmHouseDoor01' ?

Also das ich Begin OnDeath brauch weis ich schon. Nur nicht wie ich die Tür angebe.

Es wäre schön wenn mir jemand ein kurzes Beispiel schreiben könnte.

Bis denn Thalon
 
Zuletzt bearbeitet:
Nun, Blacklands,

ich habe es selbst noch nie probiert, aber ich denke enablen sollte reichen. Kurze Anleitung:
1- Mapmarker Referenz geben, häckchen bei "Persistent Reference" und "Initialy Disabled"
2-folgendes Script auf das Buch:
Code:
scn Scriptname

Begin OnActivate
activate
[ReferenzDesMarkers].enable
End
3-Testen
------------------------------------------------------------------------------------

@ Thalon Mook,

Erst mal eine kleine Erklärung, bevor unnötige Fragen auftauchen: In den eckigen Klammern steht kurz, welche Referenz rein muss. In dem Fall ist es immer die ReferenzDerKreatur. Also du gibst der Kreatur eine neue, einzigartige Referenz und machst ein Häckchen bei "Persistent Reference". Die eckigen Klammern lässt du jedoch weg.

Nun die Wirkung des Scriptes:
Wenn du die Tür aktivierst, kommt eine Messagebox, dass du die Kreatur töten musst. Falls sie schon tot ist, geht die Tür auf.
Code:
scn Scriptname

ref myself

Begin OnActivate
set myself to getself
if [RefererenzDerKreatur].GetDead == 1
myself.unlock
myself.activate
Else
Messagebox "Kein Eintritt ohne Karte oder getöteter Kreatur!"
Endif
End
Ob myself wirklich nötig ist, weiß ich nicht genau, aber schaden tut es auch nicht. Den Text der Messagebox kannst du natürlich noch ändern, wenn du willst. Allerdings nicht die Anführungsstriche vergessen.

MfG Gildur
 
Zuletzt bearbeitet:
Thx für die schnelle Antwort.

Ich habs jetzt etwas einfacher gelöst :)

Code:
SCN TuerScript

ref Tuer

Begin OnDeath
set Tuer to MeineTuer
Tuer.unlock
end

Ich wusste nur nicht das man im CS auch der Tür nen Namen geben muss den man dann als Ref angibt.

Bis denn Thalon
 
Das wird so nicht funktionieren.

Sorry, Ich habe mich auch etwas blöd ausgedrückt. Also den Script, den ich dir erstellt habe, muss auf die Tür. Das CS wird bei deinem Script nichts mit "MeineTür" anfängen können.

MfG Gildur
 
Es funktioniert ja schon :D

Ich hab das Script auf die Kreatur gelegt. Wenn die nun tot ist ist die Tür offen...

Hatte nur das Problem das ich nicht wusste wie ich die Tür als Ref angebe...

Bis denn Thalon
 
Zuletzt bearbeitet:
Nun, Blacklands,

ich habe es selbst noch nie probiert, aber ich denke enablen sollte reichen. Kurze Anleitung:
1- Mapmarker Referenz geben, häckchen bei "Persistent Reference" und "Initialy Disabled"
2-folgendes Script auf das Buch:
Code:
scn Scriptname

Begin OnActivate
activate
[ReferenzDesMarkers].enable
End
3-Testen

Normalerweise ist dafür der Befehl ShowMap zuständig.
Ich würde eher folgendes Script verwenden:
Code:
scn BLBookScript

Begin OnActivate
 ShowMap [ID des MapMarkers];, 1        ;ersten [B];[/B] löschen, wenn man danach den MapMarker per Schnellreise erreichen soll
 Activate
End

Begin OnEquip
 ShowMap [ID des MapMarkers];, 1        ;ersten [B];[/B] löschen, wenn man danach den MapMarker per Schnellreise erreichen soll
End
 
  • Like
Reaktionen: Gildur und Blacklands
Ich sitze grad vor einem Skript, aber es funktioniert nicht, bzw das Prinzip geht nicht ganz. Ich möchte einen Itemcount abfragen (und das nicht per Questeditor):

Code:
scn XXXXXXX

Begin GameMode

if (GetItemCount XXXXX == 10)
setstage MeineQuest XX

endif

end
Bzw, wie muss ich das machen?
 
Zuletzt bearbeitet:
Es klappt noch nicht!?

Code:
scn skriptname

begin Gamemode

	if (player.GetItemCount MeinItemID <=10)
  		setstage MeineQuest 10

	endif

end
 
@ Low Post: Danke, wieder was dazu gelernt.

@ elveon und Großmeister der Arena:
Der Script läuft im GameMode, und das sollte man hier beachten. Man sollte ganz sicher sein, dass es dieses Item nur 10 mal gibt und der Spieler die Items verliert, sobald die Stage höher gesetzt wurde.

Denn stellt euch mal vor, er hat diese 10 Items und die Stage wird höher gesetzt. Später erledigt er irgendwas, um die Stage wieder zu erhöhen. Allerdings hat er noch die 10 alten Items, und der GameMode-Block wird wieder ausgeführt, womit der Spieler immer auf der selben Stage hocken bleibt.

Deshalb sollte man hier zur Sicherheit noch eine doonce einbauen.
Code:
scn XXXXXXX

short doonce

Begin GameMode

if doonce == 0

if ( player.GetItemCount XXXXX == 10 )
setstage MeineQuest XX
set doonce to 1
endif

endif

end
Das wollte ich nur noch mal gesagt haben, falls die Items wirklich nicht entfernt werden.

MfG Gildur
 
  • Like
Reaktionen: elveon
Wenn ich mich recht erinnere, dann musst du, wenn du die Ref-ID wählst, wie du jetzt, diese in "" setzen. Wenn du ne eigene erstellst, dann nicht.

War das jetzt etwas wirr?
 
Hast du irgendwelche Klammern oder Zeichen gesetzt (die müssen weg!)? Hast du an die Leerzeichen gedacht? Hast du Groß- und Kleinschreibung berücksichtigt? Hast du nach Fehlern geguckt?