Construction Set Skriptthread zum Construction Set

Ich möchte eine Waffe erstellen, welche einen Bonusschaden bei einer bestimmten Rasse anrichtet. Geht so etwas? Falls es bereits hierfür Beiträge gibt, habe ich sie nicht gefunden. Wie müsste solch ein Skript genau aussehen?

Maximus

Ich würd's so machen, dass ich der Waffe eine Verzauberung erstelle. Das Skript für die Verzauberung müsste afaik ungefähr so aussehen:
Code:
scn WaldelfbasherScript

ref Target

begin ScripteffectStart   ;evtl. muss man stattdessen einen OnHit-Block nehmen
 set Target to GetSelf
 if Target.GetIsRace Woodelf == 1
  Target.ModAV Health -10   ;hierbei muss beachtet werden, dass mit ModAV abgezogene Lebensenergie/Ausdauer/etc. nur per Skript wiederhergestellt werden kann. Also entweder entkommentierst du den begin ScriptEffectFinish-Block oder du verwendest den OBSE-Befehl ModActorValue2
 endif
End

;begin scripteffectfinish
; if Target.GetIsRace Woodelf == 1
;  target.modav Health 10
; endif
;end
Das sollte eigentlich funktionieren.
 
Hi

@Dpüm: hiermit gehts
PHP:
If [ActorID].Getitemcount XXX [Verhältniszeichen+Zahl] ;[ActorID] steht für die ID von dem der das dann haben soll XXX steht für das item[Verhältniszeichen+Zahl] heißt z.B. >=1 >0 ==1 etc.

MFG >ALEXI<
 
dieser Script auf den NPC:
Code:
scn BeliebigerScriptName

short button

Begin OnActivate
messagebox "Satz" "Antowrt1" "Antwort2" "usw"
End

Begin GameMode
set button to getbuttonpressed
If button == 0
;Was beim Anklicken der Antwort1 passieren soll
Elseid button == 1
;Was beim Anklicken der Antwort2 passieren soll
elseif button == 2
;Was beim Anklicken von usw. passieren soll ^^
Endif
End
 
Vielleicht mit der kleinen Abwandlung:
Code:
scn NPCMessageBox

short button

Begin OnActivate
messagebox "Frage?", "Antwort1", "Antwort2", "Antwort3"
End

Begin GameMode
set button to getbuttonpressed
If button == 0
;...
set button to -1
Elseid button == 1
;...
set button to -1
elseif button == 2
;...
set button to -1
Endif
End
 
was mach ich nur falsch?
Code:
scn 00metzgerscript

short sell

short prufung
			Begin OnActivate
		
	messagebox "Was wollt ihr verkaufen?", "Rehfleisch", "Rattenfleisch", "Bärenfleisch", "Schafsfleisch"
end
		Begin Gamemode
	set sell to getbuttonpressed
	if verkauf == 0
	if player.getitemcount 00rehfleisch 5

	player.additem 00000f 150
	
messagebox "Ihr habt dem Metzger 5 Stück Rehfleisch verkauft"
	player.removeitem 00rehfleisch 5 
	endif		
endif
		endif
	endif
end

sobald ich das fleisch habe kann ich den käufer nicht mehr ansprechen why?:?:
 
Täusch ich mich oder felt bei dem Script irgendwie... die hälfte (BsP. 4*endif, aber nur 2*if? :-D

Hast du auch hier mal versucht, die Variable wieder zurückzusetzen?
 
Sag am besten mal ganz genau was du machen willst :p
Was zum Beispiel sucht die Variable verkauf dort?
Einfach moi genau erklären ;)

Edit: Versuche es mal hier mit:
Code:
scn 00metzgerscript

short sell
short prufung

Begin OnActivate
		
messagebox "Was wollt ihr verkaufen?", "Rehfleisch", "Rattenfleisch", "Bärenfleisch", "Schafsfleisch"
end

Begin Gamemode
set sell to getbuttonpressed
if sell == 0

if player.getitemcount 00rehfleisch 5
player.additem gold001 150
messagebox "Ihr habt dem Metzger 5 Stück Rehfleisch verkauft"
player.removeitem 00rehfleisch 5 
elseif
endif

endif
endif

end
Die short prufung kanst du jetzt beliebig benutzen ^^

MfG Gildur
 
Zuletzt bearbeitet:
Ich hätte das so geschrieben:
Code:
scn 00metzgerscript

short sell
short verkauf

Begin OnActivate
messagebox "Was wollt ihr verkaufen?", "Rehfleisch", "Rattenfleisch", "Bärenfleisch", "Schafsfleisch"
set verkauf to 1
end

Begin Gamemode
if (verkauf == 1)
set sell to getbuttonpressed
endif

if (sell == 0) && (player.getitemcount 00rehfleisch => 5)
player.additem Gold001 150
player.removeitem 00rehfleisch 5
messagebox "Ihr habt dem Metzger 5 Stück Rehfleisch verkauft"
set verkauf to 0
elseif (sell == 0) && (player.getitemcount 00rehfleisch < 5)
messagebox "Ihr habt nicht genügend Rehfleisch, um es zu verkaufen."
set verkauf to 0

elseif (sell == 1) && (player.getitemcount Ratmeat => 5)
player.additem Gold001 150
player.removeitem Ratmeat 5
messagebox "Ihr habt dem Metzger 5 Stück rattenfleich verkauft."
set verkauf to 0
elseif (sell == 1) && (player.getitemcount Ratmeat < 5)
messagebox "Ihr habt nicht genug Rattenfleich, um es zu verkaufen."
set verkauf to 0

.
.
.
endif
end
und mit den anderen Fleischsorten ebenso verfahren.

/Edit: OK, jetzt hat sich jemand vorgepogt :D
 
also ich hab vorgehab, eine jägermod zu machen. mit verschiedenen fleischsorte, die man bei einem metzger verkaufen kann. Wenn man 5 rehfleisch an den metzger verkauft, dann erhält man 150 septime. die var. verkauf war ursprünglich da, um eine messagebox aufzurufen in der steht, das man nicht genug fleisch hat.

EDIT: Danke Gildur und Arcanum fürs script schreiben. was wär ich nur ohne so eine erfahrene community?
 
Zuletzt bearbeitet:
hallihallo: ich brauche einen script:
Ich habe den Geisternebel platziert, will aber, dass er nur von 11pm bis 4am bleibt, also während der Nacht.....
Danke

MfG
bauer
 
folgender Script auf den Nebel:
Code:
scn beliebigerScriptName

Begin GameMode
If GameHour >= 23 && GameHour <= 4
NebelReferenz.enable
else
NebelReferenz.disable
Endif
End

MfG Gildur

Ps.: @ Der Großmeister der Arena: Funktioniert es jetzt? Wenn nciht, versuche(n) ich/wir es noch ein mal.
 
  • Like
Reaktionen: bauer
danke, wenn ich den script direkt auf den Nebel lege, muss ich dann noch die Referenz angeben?
Mir fällt auf, man kann auf die keinen script legen, dan muss ich das doch mit der Referbce machen

Jetzt kommt ne blöde fehlermeldung:
Script "blabla" , line 3:
Syntax Error. Invalid Block Type in "begin" command.

was jetzt?
 
Zuletzt bearbeitet:
Bist du dir sicher Gamemode richtig geschrieben zu haben?
Evtl. liegts auch daran, dass bei Gamemode das M groß geschrieben wurde (ich weiß, unwarscheinlich, aber bei Oblivion kann man sich nie sicher sein).
Die Meldung bedeutet nähmlich, dass in dem Script ein Begin-Block in Zeile 3 verwendet wird, den Oblivion nicht kennt.
 
ok, dann musst du den Script auf ein anderes Objekt legen. Welches, ist momentan egal. Außerdem empfehle ich, wenn es in zusammenhang mit einer Quest steht, den Script als Quest-Script zu benutzen. Und ja, du musst dem Nebel eine Referenz geben.

Zu dem Error: Da kann es nur sein, dass du dich vertippt hast ^^

MfG Gildur
 
also, es soll kein Questobjekt sein, bloß nebel und Gamemode hab ich auch kleingeschrieben, bringt nichts... und anderer Gegenstand? ich brauch den
Wenn ich das mit der Referenz weglasse, dann klapts aber, das bringt nichst, da ich den script nicht auf den Nebel legen kann

Edit: Hat sich erledigt Danke
 
Zuletzt bearbeitet:
Was kleines nebenbei:

Sobald ein Actor ein Package beendet hat (also zu einem bestimmten XMarker getravelt ist) soll z.B. das Script "SetStage Mission 10" ausgeführt werden. Aber wie wird das initialisiert, sobald ein AI Package ausgeführt wurde?

PS: Wie hieß nochmal der Befehl um dem Charakter sämtliche Gegenstände abzunehmen? (wie im Gefängnis, doch finde ich nicht das passende Script im CS )

Danke im Vorraus! :)
 
Zuletzt bearbeitet: