Construction Set Kürzel für den Playername

Zexion

Abenteurer
Hi Leute... Ich hab mich jetzt grad mal an das CS von Oblivion gesetzt... Und nun wollte ich Fragen ob es eine Möglichkeit gibt, in den Namen einer Innenzelle den Namen des Players einfügen kann. Also dass dann steht Haus von [Player]. Gibt es da irgendeine Möglichkeit?

mfg. E=mc²
 
Mittels OBSE:

Code:
ref rPlayer
ref rCell

set rPlayer to Player
set rCell to [Zelle von dem Haus]
SetNameEx "Haus von %n", rPlayer, rCell
 
Und was genau heißt das jetzt für einen totalen Neuling beim CS von Oblivion?
Scripten kann ich nur sehr beschränkt und das auch nur bei MW...
 
Soll heißen das dein Haus den Namen vom Spieler bekommt (Haus vom [Char-Name])
Nochmal ganz:
Code:
begin GameMode

ref rPlayer
ref rCell

set rPlayer to Player
set rCell to [Zelle von dem Haus]
SetNameEx "Haus von %n" rPlayer rCell

end
Hoffe mal ich konnte Helfen.

mfg,
Trisaster
 
Du musst das CS mit OBSE starten, sonst kannst du das Script nicht abspeichern.

Sobald du dich im CS befindest erstellst du einen neuen Activator (befinden sich unter WorldObjects). Davon erstellst du in einer (am besten neu erstellen) Dummy-Zelle eine Referenz (Activator in's Render-Fenster mit der geladenen Zelle ziehen), bei der du dann ein Häckchen bei Persistent Reference machst und am besten noch eine ID, die du dir auch merken kannst, gibst.
Danach gibst dem Activator folgendes Script:
Code:
scn EmcActivatorScript

ref rCell
ref rPlayer

Begin OnActivate
 if ( GetIsReference [ActivatorRef] ) && ( IsActionRef Player )
  set rPlayer to Player
  if ( rCell == BravilHouseforSale )
   SetNameEx "%ns Bravil-Haus", rPlayer, rCell
  elseif ( rCell == BrumaHouseforSale )
   SetNameEx "%ns Bruma-Haus", rPlayer, rCell
  elseif ( rCell == CheydinhalHouseforSale )
   SetNameEx "%ns Cheydinhal-Haus", rPlayer, rCell
  elseif ( rCell == ChorrolHouseforSale )
   SetNameEx "Hainwacht - %ns Haus", rPlayer, rCell
  elseif ( rCell == ICWaterfrontShackforSale )
   SetNameEx "%ns Kaisterstadt-Haus", rPlayer, rCell
  elseif ( rCell == LeyawiinHouseforSale )
   SetNameEx "%nsLeyawiin-Haus", rPlayer, rCell
  elseif ( rCell == SkingradHouseforSale )
   SetNameEx "Rosendornhalle - %ns Haus", rPlayer, rCell
  endif
 else
  Activate
 endif
End


Danach ersetzt du in die QuestStage wo das Haus verkauft wird (HouseXX, Stage 10) die Zeile mit SetCellFullName durch ein
Code:
set [ActivatorRef].rCell to [ZellenID, die vorher bei SetCellFullName dastand]
[ActivatorRef].Activate Player 1

[ActivatorRef] ist dabei immer mit der ID, die du der Referenz des Activators gegeben hast zu ersetzen.


Ich hab mich bei der Benennung an die Vanillanamen gehalten, nur halt immer das Mein durch den Spielernamen ersetzt.
Kannst du ohne Probleme ändern. %n steht dabei für den Spielernamen, wenn du ein %-Zeichen im Namen haben willst musst du %% verwenden, ansonsten wird Oblivion höchstwahrscheinlich während der "Ausführung" der Scriptzeile einen CTD (Crash to Desktop) verursachen. Falls nicht ist das Ergebnis auf jeden Fall nicht das gewünschte. ;)



Edit @Trisaster:
Bloß nicht so.
Da fehlt erstens der Scriptname (;)) und außerdem benennt dein Script das Haus schon beim Spielstart um und nicht erst wenn der Spieler es kauft.
Nebenbei läuft es die ganze Zeit, so dass es etwas die Performance belastet.
 
Zuletzt bearbeitet:
Danke für die Hilfe...
Jetzt hab ich noch eine Frage...
Gibts auch eine Möglichkeit den Namen des Spielers im Text eines Buches erscheinen zu lassen?
 
Man kann es ja auch anders lösen, und zwar beim Dialog wen nma ndas Haus kauft.
Dann hat auch die performance nix dagegen und es Die Zelle wird auch später umbenannt.
Und Danke das du mal wieder meine Fehler erkennst.:lol:
War geistig abwesend.:lol:

mfg,
Trisaster

EDIT:
E=mc² war wieder einmal schneller als ich:lol:

EDIT²:
Klar wird sicher gehen ich nehm an so wie oben mit %n nur im Buchtext bin mir aber nicht sicher.
Und welches Buch schreibt schon über einen Gefangenen in der Kaiserstadt?
 
Zuletzt bearbeitet:
Nö, geht nicht.
Im Buch kann man keine Variablen angeben, daher wüsste %n nicht, von was es den Namen anzeigen soll. ;)


In OBSE v16 wird es (laut Aussage der Ersteller) möglich sein, da dann StringVariablen & der Befehl UpdateBookText (oder so ähnlich) dazu kommt.
Momentan geht das aber nicht.