PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scripts: Von oben nach unten?



bg2408
10.08.2007, 11:06
Aloa,

kurze Frage: Wird das so funktionieren, wie ich hoffe, daß es funktionieren wird?

[gelöscht weil Problem gelöst]Also wird im Falle des Falles (über Level 16, Endurance über 90) der Wert auf 30 gesetzt, und nicht auf einen der anderen Werte¿


Hintergrund: Ich arbeite grad an nem Script, das Endurance rückwirkend wirken läßt. Bloß ergibt das zu hohe Werte - weil es dann mit Level 20 und Endurance 100 so berechnet wird, als hätte man von Level 1 an 100 gehabt. Was ein bißerl zu viel ergibt ;). Um genau zu sein etwa 30HP zu viel, und die will ich durch die Variable "LevelDiminishfactor" herausbekommen.

Rung
10.08.2007, 11:50
Theoretisch sollte das funktionieren. Natürlich ist das aber auch abhängig davon, ob Du die jeweiligen Locals in dem Script, das an bgbController hängt, richtig definiert hast und woran das Script in Deinem Post genau hängt. Ist das ein Questscript?
Aber theoretisch sollte der LevelDiminishfactor-Wert das Richtige ausspucken.;)

Lazarus
10.08.2007, 11:54
Nein, so wie du das da stehen hast, würde immer nur die erste Zeile zutreffen. Du müsstest bei jeder Zeile noch die Bedingung einbringen, dass Lvl und Constitution nicht so hoch sein dürfen wie in der jeweils nächsten.
Wenn der Script gestartet wird, dann wird immer geprüft, was als erstes zutrifft. Trifft die erste Bedingung zu, dann wird diese genommen, trifft sie nicht zu, nur dann springt der Script weiter zur nächsten. Und in diesem Falle trifft immer die erste Zeile zu, sobald Lvl mindestens auf 2 und Constitution mindestens auf 62 sind.

Rung
10.08.2007, 12:14
Lazarus hat natürlich recht.
Du könntest auch die Reihenfolge ändern und die obserte als Letztes, die 2. Zeile als Vorletztes usw. eingeben. Das würde auch funktionieren. ;)

bg2408
10.08.2007, 14:00
Wie siehts damit aus?

[gelöscht weil Problem gelöst]

Lazarus
10.08.2007, 14:08
Das würde funktionieren, aber es hätte wie Rung schon sagte auch gereicht, wenn du die Reihenfolge umgedreht hättest, das wäre die einfachste Lösung gewesen.
Was du aber auch machen kannst:
Anstelle von


if bgbController.Lvl >= 3 && bgbController.Constitution >= 64
if LevelDiminishfactorStage < 2
Set LevelDiminishfactor to 4
Set LevelDiminishfactorStage to 2
endif
endif

tut's auch


if bgbController.Lvl >= 3 && bgbController.Constitution >= 64 && LevelDiminishfactorStage < 2
Set LevelDiminishfactor to 4
Set LevelDiminishfactorStage to 2
endif

bg2408
10.08.2007, 14:28
Hm, ja, das Licht geht mir gerade auch auf :D. Hintergrund ist einfach der, daß ich das aus nem anderen Script übernommen und angepaßt habe - dort arbeite ich mit mehr als 3 Bedingungen, deswegen die Subklauseln (wenn, dann entweder das oder das) -> ist in dem Fall nicht nötig >_<. Autsch. Ich und Scripts... ;_;

Gibt es denn Probleme, wenn ich die Scripte so etwas verschachtelter lasse¿

PS: Rung, ja, das ist aus einem Questscript. Nicht das ganze Questscript. Das sieht so aus.

Lazarus
10.08.2007, 14:31
Gibt es denn Probleme, wenn ich die Scripte so etwas verschachtelter lasse¿
Nein, abgesehen davon dass man es besser so kompakt und übersichtlich wie möglich macht.

bg2408
10.08.2007, 15:41
Nein, abgesehen davon dass man es besser so kompakt und übersichtlich wie möglich macht.Apropos kompakt und übersichtlich :D: Das ganze Script hat nicht funktioniert. Warum? Weil mein Testchar unter 62 Konstitution hatte, und das Script daher ziemlich genau da endete, somit der Rest nicht funktionierte, weil das Ende sich einfach mal dachte (wo eben der Diminishfactor abgefragt wurde) "ich mach Urlaub!"

War nicht toll. Außerdem hatte ich einmal fälschlicherweise getav statt getbaseav genommen. Seufz.