PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : allg. TES-Fragen (scripting)



.lethe
06.10.2005, 09:43
Hallo,

folgendes Problem habe ich:

Ich habe mir einen Beastrassen-Char erstellt.
Nun fiel mir auf, wie genial doch eigentlich die Krallen des guten aussehen und das es schade ist, das er damit nur "fatigue damage" macht.
Geboren war meine Idee für ein PI, welches den Beastrassen die Möglichkeit geben soll, solange "Health Damage" zu machen, solange sie keine Handschuhe (Clothes oder Armor) tragen.

Da ich eigentlich wenig Zeit habe, wollte ich jedoch vorher erstmal die Experten hier fragen ob das generell überhaupt möglich ist (Abfrage: Beast oder nicht Beast, Abfrage Handslots belegt oder nicht)
Das Skript für den "Health Damage" wollte ich mir von Argents´ Physical HTH-Damage (http://www.rpgplanet.com/morrowind/modcontrols/mods.asp?modchoice=search&newsort=descending&searchtype=custom&searchvalue=title&searchfilter=date&searchtext=HTH%20Physical%20Damage) (edit: welches jedoch leider nicht zu funktionieren scheint, kennt wer ein anderes PI, welches irgendwie den Faustkampf mit Health-Damage regelt?) abschauen, wobei mir aber erstmal Hinweise wichtig wären, obs generell überhaupt möglich erscheint...

Danke und Gruß,
lethe

Gorkon
06.10.2005, 12:54
Ob Kopf- oder Fuß-Slot vorhanden sind, läßt sich direkt nicht abfragen. Indirekt wäre es möglich, indem man dem Char temporär versucht, einen Helm aufzusetzen (klappt bei Beastrassen nicht.)


short isBeastRace
short doOnce

if ( doOnce == 0 )
player->addItem, "ein_helm"
player->equip, "ein_helm"
if ( player->hasitemEquipped, "ein_helm" == 0 )
set isBeasRace to 1
endif
player->removeItem, "einhelm"
set doOnce to 1
endif

if ( isBeastRace == 1 )
...
endif
Vorteil: Klappt bei jeder Rasse. Nachteil: Zieht bei Nicht-Beast-Chars einmalig den Helm aus. Beasts kriegen wahrscheinlich die Meldung "You cannot equip this item.".

Direkter läßt sich das über die Rasse abfragen.

short isBeastRace

if ( player->getRace, "Khajit" == 1)
set isBeastRace to 1
endif

if ( player->getRace, "Argonian" == 1)
set isBeastRace to 1
endif

...
Vorteil: Wesentlich direkter. Nachteil: Muß für Custom-Rassen angepaßt werden.

Was das PI angeht, in der Readme steht, daß man erst per Konsole eine Variable auf 1 setzen muß. Schon gemacht?

*edit* blarf. Habe jetzt erst den Zusatz "solange sie keine Handschuhe tragen" gelesen. Das wird haarig bis schwer.
*edit2* blarf². laut Elder Scrolls Forum ist es nicht möglich zu prüfen, ob ein bestimmter Slot leer oder voll ist. Es sei denn, du haust irgendwelche Script-Extender rein, aber damit kenne ich mich nicht aus.

btw Skriptkommandos:
http://www.uesp.net/morrow/editor/mw_cscommands.shtm

.lethe
06.10.2005, 14:22
Erstmal danke für die Mühe Gorkon!

Das mit der Variable hatte ich probiert, ohne effekt. Mich wundert überhaupt das es so kompliziert ist, zumindest mit Bloodmoon hätte ich es mir leichter vorgestellt (der Werwolf in Bloodmoon macht mit H2H ja auch direkten Schaden)

Das mit dem nichtabfragen der Slots ist natürlich ein Hinderniss, einfach auf "Health Damage" stellen, würde ja einige Quests aushebeln, das möchte ich nicht

Danke trotzdem nomma :)

(ps. der link scheint sown zu sein)

Gorkon
06.10.2005, 18:02
Upsala...beim Link fehlte hinten das "L". :rolleyes:
http://www.uesp.net/morrow/editor/mw_cscommands.shtml

.lethe
06.10.2005, 18:24
schöner Link, dankesehr