PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ProtectronPod01 + Protectron online stellen.



Yoas
03.09.2009, 13:14
Hallo Chef's

Ich hab mittlerweile noch ein komisches problem und zwar, wegen eines scriptes das ich von DLC The pitt geklaut habe. und zwar bei denm monitor bei den Troggs "wo's viele Protectronen sind" die man mit hilfe des terminals aktivieren kann, nun ist halt mein problem wie muss ich es bewerkstelligen das ich den Protectron Auf offline und wieder online stellen kann mit hilfe des schalter's "GenElecSwitch01" und danach hab ich noch n problem und zwar das die türe des ProtectronPod01 sich nicht öffnen lässt... könntet ihr mir helfen ? ist war ein uralter hut, aber hab auf Bethesda nichts gerafft.. und deswegen schau ich ab und zu bei den originalen ab und lern so, aber irgendwie raf ich das hier aber nicht. @ thx

caesarrulez
03.09.2009, 13:51
also generell musst du ein Script schreiben, könnte folgendermaßen aussehen:

scn RoboterAktivieren

begin onactivate

...

end


da ich mit Bots noch garnix gemacht habe kann ich dir leider nicht die Funktionen dazu sagen, aber du musst denen ne eigene ID geben und 'persistent reference' anhaken, damit kannst du dann per script mit den Dingern arbeiten.

Das script an sich musst du dann dem Schalter zusweisen, diesem natürlich auch ne eigene ID geben und auch das persistent refenece anhaken

Yoas
02.11.2010, 18:37
Auch wenn das schon sehr alt ist, frage ich mich jetzt erneut ob jemand mehr weiss "war eine lange zeit nimma mit NPC beschäftigt"

Aaaaaimbot
03.11.2010, 21:13
hab mal mit Google gesucht und die sagen, man soll stattdessen ein ForgePotectronPod02 benutzen, weiß aber nicht, ob das hilft... "Offline" stellen kann mans vielleicht mit "setunconscious" oder so. Das Original-Pod oder das dazugehörige Terminal müßten ein Skript haben, wo Du spicken könntest, wie die Programmierer das zum Laufen gebracht haben. ;)

Yoas
04.11.2010, 10:23
So wie es aussieht sind das nicht gerade n langer script, nur versteh ich grad nicht so ganz wie das so ablöuft weil bin immer noch extrem ein quer einsteiger in sachen script NPC.


hier schonmal was, vielleicht könnt ihr mir mal eben erklärä was die einzelne stücke abfrage



scn ProtectronPod01Script

ref myActionRef

Begin OnActivate

if IsActionRef player == 0
set myActionRef to getActionRef
if myActionRef.getav variable01 == 0
setopenstate 0
else
setopenstate 1
endif
endif

End

Aaaaaimbot
04.11.2010, 19:54
if IsActionRef player == 0
Steht da wirklich ne Null am Ende und keine Eins? Da fragt das Spiel nämlich ab, wer das Teil aktiviert hat. Und damit das, was untendrunter steht, ausgeführt wird, darf dann also der, der das Teil aktiviert, nicht der Spieler sein, sonst führt sich das Zeug nicht aus. Dieses "setopenstate" öffnet oder schließt vermutlich das Pod. Und dann wird auch noch abgefragt, ob der Aktivierende (wer auch immer das ist, vermutlich das Protektron selber) eine bestimmte Variable auf 0 stehen hat. Vermutlich wird so kontrolliert, ob das Protektron "aktiv" ist oder nicht.

Yoas
08.01.2011, 17:18
momentan bin ich wieder bei der gleiche geschichte und zwar, versuch ich diesen script mit einem terminal zu verknüpfen, damit will ich sagen das ich zwei türen und den protectronpod01 aktivieren will, und den protectron selbst auch


ich dachte mir das ich einfach alles in den terminal script reinschreibe, was ich auch tat. Doch dies funktionierte nicht... soging ich auf den trigger und schrieb dort den script nieder.

PS; ich weiss nur nicht wie ich den trigger aktivieren kann mit dem terminal...

Begin OnActivate

if IsActionRef player == 0
set myActionRef to getActionRef
if myActionRef.getav variable01 == 0
setopenstate 0
else
setopenstate 1
endif
end

begin onActivate
Pdoor01A.setopenstate 1
Pdoor01B.setopenstate 1
if bunkerprotectronS701.GetDisabled == 1
bunkerprotectronS701.disable
endif
end

Yoas
01.02.2011, 13:05
Hallo leute! ich bin wieder mal da, nach einem monat Pause! hatte viel zutun mit dem realen leben, und arbeit :D nun möcht ich mich wieder um den Protectron kümmern den ich eigentlich nur als Putzfee haben wollte. nur hab ich das problem das ich aus dem script hier nicht so schlau werde "zu unübersichtlich für mich"

Script aus Fallout 3 Super Duber Markt

scn GenericProtectronSCRIPT

short talk ; set to 1 to start talking
short talking ;set while talking
float timer ; used for custom dialogue

short robotID ; 0 = GenericFactoryProtectron
; 1 = GenericMetroProtectron
; 2 = genericMilitaryMrGutsy
; 3 = genericOfficeProtectron
; 4 = genericPodProtectron
; 5 = genericUtilityProtectron
; 6 = GenericVaultProtectron

begin onLoad
; what kind of robot am I? (determines what topics I use)
if GetIsID GenericFactoryProtectron == 1
set robotID to 0
elseif GetInFaction MetroRobotFaction == 1
set robotID to 1
elseif GetIsID genericMilitaryMrGutsy == 1
set robotID to 2
elseif GetIsID genericOfficeProtectron == 1
set robotID to 3
elseif GetIsID genericPodProtectron == 1
set robotID to 4
elseif GetIsID genericUtilityProtectron == 1
set robotID to 5
elseif GetIsID GenericVaultProtectron == 1
set robotID to 6
endif

if getav variable01 == 0 ; I'm currently "off"
set talk to 0
; make me unconscious so I don't play sounds
setUnconscious 1
else
setav variable01 4 ; reset "variable" used for ticket check behavior
endif
end

begin OnActivate
if isActionRef player == 0
if getav variable01 == 0 ; I'm currently "off"
set timer to 5
set talk to 1
setav variable01 1 ; turn on
setUnconscious 0 ; not unconscious any more
Activate ; tell pod to open
else
setav variable01 0 ; turn off
set talk to 0
evp
endif
else
Activate
endif
end

begin gamemode
if talk == 1 && getDead == 0 && talking == 0
if timer > 0
set timer to timer - GetSecondsPassed
else
if GetIsCurrentPackage ProtectronTicketCheck == 1
if robotID == 0
SayTo player FactoryRobotIDCheck 1
elseif robotID == 1
SayTo player MetroRobotTicketCheck 1
elseif robotID == 2
SayTo player MilitaryRobotIDCheck 1
elseif robotID == 3
SayTo player OfficeRobotIDCheck 1
elseif robotID == 4
SayTo player UtilityRobotIDCheck 1
elseif robotID == 5
SayTo player UtilityRobotIDCheck 1
elseif robotID == 6
SayTo player VaultRobotIDCheck 1
endif
set talking to 1
set timer to 3 ; put space in between lines
else
if (getav variable01 == 3)
set talk to 0
endif
set talking to 1
if robotID == 0
SayTo player FactoryRobotTalk
elseif robotID == 1
Say MetroRobotTalk
elseif robotID == 2
Say MilitaryRobotTalk
elseif robotID == 3
Say OfficeRobotTalk
elseif robotID == 4
Say UtilityRobotTalk
elseif robotID == 5
Say UtilityRobotTalk
elseif robotID == 6
Say VaultRobotTalk
endif

; finish "turn on talk"
set timer to 1
endif

endif
endif
end

begin OnPackageEnd ProtectronNotActive
if getav variable01 == 0
Activate ; to get pod to close behind me
; make me unconscious
setUnconscious 1
endif
end

begin OnPackageStart ProtectronTicketCheck
; turn on talking when ticket check starts
set talk to 1
end

begin OnPackageChange ProtectronTicketCheck
; turn off talking when ticket check is done
set talk to 0
end


begin SayToDone
set talking to 0
end