Registrierung Häufig gestellte Fragen Suche Mitgliederliste Portal - Planet Skyrim.de Kalender Moderatoren und Administratoren Startseite
Morrowind&OblivionForum.de - PMM-Projects Network » The Elder Scrolls III: Morrowind » Morrowind Editor Help » Companion-Script-Tuning (für Tribunal) » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
iladrion
Craftsman




Dabei seit: September 2002
Geschlecht: keine Angabe
Herkunft:
Beiträge: 288

iladrion ist offline
  Companion-Script-Tuning (für Tribunal)Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Im Modifikationen-Thread gab es eine Diskussion, ob man nicht den Söldner in Tribunal etwas aufpeppen könnte.

Nach einiger Überlegung, bin ich zum Schluss gekommen, das es besser wäre, diesen Söldner in Rühe zu lassen, sondern lieber eigene Söldner zu erstellen, die aber auch mit nach Gramfeste reisen können. Das hätte den Vorteil, das man nicht mit anderen Mods kollidiert und man könnte verschiedene Variationen von NPCs machen, und eventuell auch Teamwork-Funktionen untereinander (nur so ne Idee).

Um den Anfang zu machen und eure Fantasy etwas anzuregen poste ich gleich mal ein Script, das ich von Grumpy (Author einiger Companion-Mods) bekommen habe. Dies nutz bereits Tribunal-Funktionen und lässt sich auch wunderbar in den Code von Herbak einpflegen:

Begin brittScript

short Companion
short variablename

float myx
float myy
float myz
float timer

short p_speed
short p_athletics
short p_strength
short p_willpower
short p_intelligence
short p_agility
short p_endurance
short p_personality
short p_luck

short p_health
short p_magicka
short p_fatigue
short p_attackbonus
short p_defendbonus
short p_resistmagicka

short p_longblade
short p_bluntweapon
short p_shortblade
short p_spear
short p_axe
short p_handtohand
short p_marksman

short p_heavyarmor
short p_mediumarmor
short p_lightarmor
short p_unarmored
short p_block

; ENABLES COMPANION SHARE OPTION
; Used along with "short companion" (above).

Set Companion to 1

if ( menumode == 1 )
if ( GetPCSleep == 0 )
return
endif
endif

; ADDS DIALOG TOPICS.

AddTopic, "-Together"
AddTopic, "-Worth"
AddTopic, "-Spell"
AddTopic, "-Health"

; MARKSMAN
; Forces companion to use ranged weapon if in inventory.
; Uses anything else in inventory if ranged weapon is not present.

if ( Player->GetWeaponType <= 8 )
britt->setmarksman 0
elseif ( Player->GetWeaponType >=9 )
britt->setmarksman 1000
endif
endif

; SPEED INCREASE AND FLEE MODE
; Sets companion's speed/athletics to higher value to improve
"following" ability.
; Also causes companion to flee when specified health level is reached
and resets
; speed/atletics/flee when healed.

if ( GetCurrentAiPackage == 3 )
if ( britt->GetHealthGetRatio < .4 )
britt->SetFlee, 1000
britt->SetSpeed, 100
britt->SetAthletics, 100
elseif ( britt->GetHealthGetRatio > .4 )
SetFlee, 30
set p_speed to ( ( Player->GetSpeed ) + 85 )
set p_athletics to ( ( Player->GetAthletics ) + 85 )
SetSpeed, p_speed
SetAthletics, p_athletics
endif
endif
endif

; SPEED DECREASE FOR WANDER MODE
; Returns companion to more realistic speed/athletics values when in
wander mode.

if ( GetCurrentAiPackage == 0 )
SetSpeed, 40
SetAthletics, 40
endif

; WARPING TO PLAYER ( Used to improve "following" ability)
; Companion will automatically "warp" to the player when specified
; distance has been exceeded and specified amount of time has elapsed.

if ( GetCurrentAiPackage == 3 )
if ( britt->GetWeaponDrawn )
elseif ( britt->GetSpellReadied )
return
elseif ( britt->GetDistance Player > 800 )
set timer to timer + GetSecondsPassed
if ( timer > 10 )
set timer to 0
set myx to ( Player->GetPos x )
set myy to ( Player->GetPos y )
set myz to ( Player->GetPos z )
britt->SetPos x myx
britt->SetPos y myy
britt->SetPos z myz
endif
endif
endif

; LEVITATION
; Sets the "z" axis to that of the player when both player and
companion
; are levitating. Game AI for NPC levitation works poorly in the
vertical.
; This fixes that.

; Note-This only works when the companion has been directed by the
; player to cast a spell of levitation. Otherwise companion
will
; go into wait mode when player levitates.

if ( GetCurrentAiPackage == 3 )
if ( Player->GetEffect, sEffectLevitate == 1 )
if ( britt->GetEffect, sEffectLevitate == 1 )
set myz to ( Player->GetPos z )
britt->SetPos z myz
endif
endif
endif

; Causes companion to go into wait mode if player levitates and
companion
; has not been directed by the player to cast her own spell of
levitation.
; Needed to keep companion from "warping" to player and falling to her
death.

if ( GetCurrentAiPackage == 3 )
if ( Player->GetEffect, sEffectLevitate == 1 )
if ( britt->GetEffect, sEffectLevitate == 0 )
britt->AIWander 0 0 0 0
endif
endif
endif

; Used to allow companion to levitate and rejoin player if companion
; was previously in wait mode.

if ( GetCurrentAIPackage == 0 )
if ( Player->GetEffect, sEffectLevitate == 1 )
if ( britt->GetEffect, sEffectLevitate == 1 )
britt->AIFollow Player 0 0 0 0
set myz to ( Player->GetPos z )
britt->SetPos z myz
endif
endif
endif

; hier kommt im Original noch ein sehr einfallsloser Level-Up Code, der den NPC sehr zu einer Kopie des Spielers macht. Das würde ich lieber von Herbak übernehmen, und damit dem Spieler die Wahl lassen, wo der NPC besser wird.

end brittScript



Das Script würde ich gerne mit Herbaks Steigerungs- und Kampfsystem mischen (das obige System der Kampfumschaltung gefällt mir so überhaupt nicht) und dann um eventuelle Ideen die uns hier noch so einfallen erweitern. Also immer her mit den (Verbesserungs-)Vorschlägen.






__________________
keep on modding...



Dieser Beitrag wurde von iladrion am 04.05.2003, 20:43 Uhr editiert.

04.05.2003, 20:41 Profil von Füge  deiner Freunde-Liste hinzu Email an iladrion senden
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Design by: Garak - Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR