Problem Fertigkeiten ändern

lim dul

Neuankömmling
Bei einem kleinen Plugin möchte ich in einem dialog entweder mit script oder direkt im dialogfenster eine neuwahl der haupt und nebenfertigkeiten ermöglichen. dabei sollte sich möglichst das level nicht ändern und die fertigkeiten sollten entweder gleich bleiben, oder die sonstigen fertigkeiten, die zu haupt/nebenfertigkeiten ernannt werden, können auch auf den startwert angehoben werden.

probiert habe ich das ganze schon im dialog mit dem befehl "enableclassmenu"
es hat nicht funktioniert.
meine frage nun: ist so etwas möglich und wenn ja, brauche ich einen script, wie würde der ungefähr gehen oder ist so etwas einfach nicht möglich?

danke im voraus
 
Zuletzt bearbeitet von einem Moderator:
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
 
Zuletzt bearbeitet:
ich hab mal probier das sternzeichen zu ändern (auch mit enableclassmenu und dann auf "weiter" gedrückt), dann waren alle "Zustände" (corprus resistenz, krankheitsimmunität) weg außer krankheitsresistenz 75% (bin waldelf)
 
Ja, das könnte daran liegen, das du vor den einzelnen Parts aus diesem Script, noch einiges davor setzen musst. Weil all das was in diesem Script oben vorkommt, zusammen hängent ist und damit einzelnd nicht wirklich funktioniert.

Wie gesagt es geht und ist machbar. Ich denke mal du seltest diese frage eher in den Script-Threat legen. Diese leute wissen eher was sie machen müssen und können dir schon einen fertigen Script vorlegen.

Gruß: TakoTatsujin
 
  • Like
Reaktionen: lim dul