Also, eine Möglichkeit gibt es.
Du musst mal schaun ob du den Script findest, der am anfang vom Spiel verwendet wird. Diese gibst du dann nem Buch oder sonst einem Gegenstand. Ob er jetzt so geeignet wäre, ihm einem NPC zu geben würde ich vorsichtig sein.
Ich kann ja mal schnell schauen ob ich nen finde.
EDIT:
begin CharGenClassNPC
;This is on the guy who creates your class.
short state ;tracks state of questioning. -1 when over.
Short NoLore ;blocks discussion of general topics
float timer
if ( menumode == 1)
return
endif
if ( state == -1 )
if ( OnActivate == 1 )
Activate
endif
endif
if ( GetHealth == 0 )
return
endif
;return if you've talked to captain and don't have papers
if ( "CharGen Captain".state == -1 )
SetHello 30
return
endif
;greeting
if ( State == 0 )
"CharGen StatsSheet"->Disable ;hide the actual scroll itself
;disable all the boat stuff outside and the guys
"CharGen Boat"->Disable
"CharGen Boat Guard 1"->disable
"CharGen Boat Guard 2"->disable
"CharGen Dock Guard"->disable
"CharGen_cabindoor"->disable
"CharGen_chest_02_empty"->disable
"CharGen_crate_01"->disable
"CharGen_crate_01_empty"->disable
"CharGen_crate_01_misc01"->disable
"CharGen_crate_02"->disable
"CharGen_lantern_03_sway"->disable
"CharGen_ship_trapdoor"->disable
"CharGen_barrel_01"->disable
"CharGen_barrel_02"->disable
"CharGenbarrel_01_drinks"->disable
"CharGen_plank"->disable
if ( GetDistance, Player < 100 )
if ( State == 0 )
Say "vo\Misc\CharGen Class1.wav", "Ah ja, wir haben Euch erwartet. Wir müssen Eure Daten erfassen, bevor wir Euch offiziell entlassen können. Es gibt einige Möglichkeiten, aus denen Ihr wählen könnt."
DisablePlayerControls
set state to 10
endif
endif
if ( OnActivate == 1 ) ;in case they activate him instead of moving in
if ( State == 0 )
Say "vo\Misc\CharGen Class1.wav", "Ah ja, wir haben Euch erwartet. Wir müssen Eure Daten erfassen, bevor wir Euch offiziell entlassen können. Es gibt einige Möglichkeiten, aus denen Ihr wählen könnt."
DisablePlayerControls
set state to 10
endif
endif
elseif ( State == 10 )
if ( SayDone == 1 )
EnableClassMenu
set State to 12
endif
elseif ( State == 12 )
if ( SayDone == 1 )
set timer to timer + GetSecondsPassed
if ( timer > 1 )
Say "vo\Misc\CharGen Birth.wav", "Sehr gut. Nun, in dem Brief steht, dass Ihr unter einem bestimmten Zeichen geboren wurdet. Unter welchem Zeichen genau?"
set State to 14
set timer to 0
endif
endif
elseif ( State == 14 )
if ( SayDone == 1 )
EnableBirthMenu
set State to 15
endif
elseif ( State == 15 )
if ( SayDone == 1 )
set timer to timer + GetSecondsPassed
if ( timer > 1 )
Say "vo\Misc\CharGen Class2.wav", "Interessant. Nun, bevor ich diese Papiere abstemple, stellt sicher, dass die Informationen auch korrekt sind."
set State to 16
set timer to 0
endif
endif
;show statreview menu
elseif ( State == 16 )
if ( SayDone == 1 )
EnableStatReviewMenu
set State to 17
endif
;show popup messages
elseif ( State == 17 )
if ( SayDone == 1 )
set timer to timer + GetSecondsPassed
if ( timer > 1 )
set timer to 0
EnableStatsMenu
EnablePlayerControls
StartScript RaceCheck ;sets the PCRace global flag for dialogue and such
MessageBox "Euch steht jetzt ein Charaktermenü zur Verfügung, in dem Informationen über den Charakter zu finden sind." "Ok"
set state to 18
endif
endif
elseif ( State == 18 )
if ( Xbox == 1 )
MessageBox "Mit der B-Taste können die Menüs geöffnet bzw. geschlossen werden." "Ok"
else
MessageBox "Mit der rechten Maustaste können die Menüs geöffnet bzw. geschlossen werden." "Ok"
endif
set state to 20
;show papers
elseif ( State == 20 )
Say "vo\Misc\CharGen Class3.wav", "Zeigt Eure Papiere dem Hauptmann, wenn Ihr geht und das Entlassungsgeld bekommt."
"CharGen StatsSheet"->Enable ;make the actual scroll show itself
set State to 30
;show how to pick them up
elseif ( State == 30 )
if ( SayDone == 1 )
set timer to timer + GetSecondsPassed
if ( timer > 1 )
set timer to 0
if ( Xbox == 1 )
MessageBox "Mit der A-Taste könnt Ihr Eure Papiere lesen, wenn Ihr sie anseht. Wählt dann 'Nehmen', um sie aufzunehmen." "Ok"
else
MessageBox "Mit ^ActionActivate könnt Ihr Eure Papiere lesen, wenn Ihr sie anseht. Wählt dann 'Nehmen', um sie aufzunehmen." "Ok"
endif
EnablePlayerViewSwitch
EnableVanityMode
set State to -1
endif
endif
elseif ( State == -1 )
if ( CharGenState != -1 )
;this may need to be here for flow
if ( OnActivate == 1 )
Activate
endif
if ( GetDistance, Player < 180 )
if ( Player->GetItemCount "CharGen StatsSheet" == 0 ) ;does not have sheet yet
if ( SayDone == 1)
set timer to timer + GetSecondsPassed
if ( timer > 5 )
set timer to 0
say, "vo\Misc\CharGen Class4.wav", "Nehmt Eure Papiere und geht zu Hauptmann Gravius."
endif
endif
endif
endif
endif
endif
end CharGenClassNPC
Das rot gekennzeichentete ist für die Characterbestimmung da, also auch für die Wahl der Startwerte.
Das blau ist dann noch eventuell für die bestimmung des Sternzeichens, falls du dies noch bräuchtest.
Allerdings weis ich nicht genau wie das ganze mit dem rest zusammen hängt, am besten wartest du noch auf andere User, die ähnliche oder bessere vorschläge haben. Ich weis nämlich nicht ob alles wie gewünscht funktioniert, so wie du dir das vorstellst. Habe es selbst noch nicht begraucht oder getestet, müsste aber irgent wie funktionieren.
Gruß: TakoTatsujin