Autor |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
originalscripte Beschleunigen? |  |
nachdem die angefangene diskussion in eimen solstheim - performance - thread ja der datenbank zum opfer gefallen ist, fangen wir halt hier wieder damit an....
Rene Miner, der Author von Hla Bitter (was ich übrigens für einen schlechten titel für ein plugin, das sich nicht auf das Hlaalu-gebiet der Bitterküste beschränkt, halte - aber egal) behauptete dort 2 Dinge zur scriptperformance , die ich doch genauer diskutiert haben möchte:
1. Kritikpunkt: Bethesda verwendet return in globalen scripten.
Kommentiert wurde das dann mit dem hinweis "versucht das doch mal: Klick-klick-klick " oder so ähnlich. Nun, da frage ich mich doch: wo ist das problem? Globale scripte werden wie jedes andere script auch nur ein mal per Bildschirmaufbau (oder auf gut englisch frame ) ausgeführt, wodurch ein bedingtes abbrechen grösserer globaler scripte durchaus sinnvoll für die performance ist - zugegebenermassen ist es im fall der stronghold-benachrichtigung eine streitfrage, was schneller ausgeführt wird. jedenfalls ist von klick-klick-klick keine spur.
2. kritikpunkt: auf hunderten von rüstungsteilen von Wachen (ordinatoren, imperial legion, nur so als anmerkung) laufen ständig scripte, die checken, ob der spieler sie anhat - kommentiert mit einem plakativen AUA-AUA-AUA
dazu meine frage: und als alternative? direkt von aussen adressierbar ist leider immer nur die erste instanz eines gegenstandes, man könnte also nur uniques global abfragen. und selbst dann verliert sich durch die zufallsID beim enchanten jede abfragbarkeit der rüstung. Wenn nun also unbedingt inhaltlich erwünscht ist, dass man die legion armor bei gesprächen mit offizieren trägt oder dass ordinatoren auf das Tragen ihrer Rüstung allergisch reagieren seh ich keine andere möglichkeit als absolut harmlose equipscripte (die weniger performance kosten als ihr ruf, die miese Pathfinding-AI ist wesentlich stressiger für den prozessor)
also - was hab ich übersehen?
__________________ drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen 
|
|
28.01.2004, 14:49 |
|
jsc
Crusader
  

Dabei seit: November 2003
Geschlecht: 
Herkunft: Zwickau/Sa.
Beiträge: 490
 |
|
Zu 1. halte ich es eigentlich auch mit dem return. Alles, was danach nicht mehr ausgeführt werden muss spart doch eigentlich Rechenzeit. Gerade bei globalen Skripten, da die lokalen (lokal <> Kneipe ) nur in der Zelle ausgeführt werden (intern, extern auch in angrenzenden) und da diese Menge nicht soo relevant ist.
Bislang habe ich das auch bei jeder Programmiersprache, mit der ich gearbeitet habe so gehalten, Bedingung die ich wollte erfüllt = Schluß mit der Abfragerei und dem Vergleichen, raus aus der Routine.
Ergo - ich verstehe es auch nicht.
Zu 2. habe ich auch meinen Senf 
Ich finde die Abfrage der Reaktionen erst mal eine gute Idee. Legion bedeutet ich bin bei einer Armee, d.h. ich habe auch deren Klamotten herumzuschleppen. Ordinator bin ich nicht = wehe ich zieh das Zeugs an.
Beide Skripte sind die gleichen, nur die gesetzte Variable unterscheidet.
Hunderte Uniformen? Hab ich kein Problem mit, da das lokale Skripte sind und die hunderte von Uniformen sich nicht alle in derselben Zelle wie mein PC herumtreiben. Sollte allerdings jemand die Neigung entwickeln, alle Uniformen von MW in seinem kleinen Häuschen sammeln zu wollen (jede noch beleuchtet ) - viel Spaß.
edit: Mein Satz ist weg 
Ich sehe aufgrund der von Garak erwähnten Möglichkeit des Enchanten der Rüstung keine vernünftige bzw. lohnenswerte Möglichkeit, von außen das Tragen abzufragen. Zudem müsste diese Abfrage in jeder Zelle, in der ein "Abfrageberechtigter" (Ordinator/Legionär) auftreten kann auch wieder erfolgen. Ein globales Skript mag ich da auch nicht, nur wegen dieser Abfrage? Pffft.
__________________ Gruß jsc - Mein Morrowind-Kram
"Recht haben - oder glücklich sein?"
Dieser Beitrag wurde von jsc am 28.01.2004, 20:48 Uhr editiert.
|
|
28.01.2004, 20:40 |
|
ReneMiner
Crusader
  
Dabei seit: Januar 2004
Geschlecht: keine Angabe
Herkunft:
Beiträge: 260
 |
|
Zum Return-Befehl im global laufenden Script: Glaubt's nicht?
Probier es aus! Es fängt an zu ruckeln und klicken - wieso?
Mir unerklärlich wie manch andere Dinge auch - z.B. wieso manche Scripts nachdem sie ganz offensichtlich abgelaufen sind und auf einen StopScript-Befehl treffen nochmal inmitten des Scripts starten ?!?
Warum an Türen die auf onActivate mit Activate reagieren kein CellChanged-Event mehr stattfindet erscheint ja noch einigermassen plausibel und wie in der ReadMe beschrieben rasten Ordinatoren nicht mehr aus wenn man seinen Indoril-Cuirass verzaubert und Legionsangehörige akzeptieren es einfach nicht wenn man die Kaiserlichen Uniformen verzaubert - die entsprechen so einfach nicht den Vorschriften.
Das es was bringt merke ich an all den Stellen ( Mondfalter/Buckfalter/Pelagiad/Ebenherz/Gnisis ) an denen viele Kaiservolk-Wachen herumrennen - vorher liefen die dort wirklich alle im Stechschritt - nicht nur Wachleute.
Allerdings habe ich vor zwei Tagen von 386 MB SDR-Ram auf 512 MB DDR-Ram gewechselt und habe dadurch einen extremen Performance-Schub erfahren - ja wirklich - so das dieses kleine bischen was die Scripts bringen wahrscheinlich überhaupt nicht mehr ins Gewicht fällt bzw. jemandem der nicht erhebliche Probleme hat überhaupt nichts merkt.
Was hat Hla Bitter mit Hlaalu zu tun? Eno Hlaalo von der MT ist auch kein Hlaalu nur weil sein Name mit Hl beginnt. Und an der Bitterküste liegt es. Zudem wäre Ald'Daedroth nach dieser Theorie redoranisch...
__________________ Mess them Meshes up
Dieser Beitrag wurde von ReneMiner am 31.01.2004, 04:35 Uhr editiert.
|
|
29.01.2004, 00:41 |
|
jsc
Crusader
  

Dabei seit: November 2003
Geschlecht: 
Herkunft: Zwickau/Sa.
Beiträge: 490
 |
|
Zitat: Original von ReneMiner
... Legionsangehörige akzeptieren es einfach nicht wenn man die Kaiserlichen Uniformen verzaubert - die entsprechen so einfach nicht den Vorschriften. ...
Sorry, aber diesmal muss ich recht haben um glücklich zu sein 
Ich habe eben (obwohl ich schon längst an der Matratze horchen wollte) ein neues Spiel angefangen. Da ich in meinem aktuellen schon Oberlegionär war reden die mit mir sogar dann, wenn ich nur mit einer Hose bekleidet herumrenne 
Ab nach Gnisis, Beitritt. Ansprechen ohne Rüstung -> Anschiss. Mit Rüstung -> Süßholz, soweit okay. (Das Verzaubern hat mich Nerven gekostet, blutiger Rekrut, keine Erfahrung, keine Kohle, kein Rang - also Geld, nur Geld per Konsole und Galbedir wegdisabled, Ausbildung im Verzaubern und einen Chamäleon-Zauber gekauft) Beim vierten Seelenstein hatte ich eine gewaltig verzauberte Rüstung (1 Punkt Chamäleon, aber das ist ja egal, verzaubert war sie). Das Ding ausgezogen, in Caldera Wache angequatscht -> Anschiss. Die verzauberte Rüstung angezogen -> "Ich bin Offizier bla, bla und jetzt geht weiter."
So und nun Gute Nacht
Die Frage zu der Tür-Activate Geschichte stell ich heute nachmittag.
__________________ Gruß jsc - Mein Morrowind-Kram
"Recht haben - oder glücklich sein?"
|
|
29.01.2004, 01:14 |
|
Garak
Admin
     

Dabei seit: Juli 2002
Geschlecht: 
Herkunft: Cardassia Prime
Beiträge: 9269
 |
|
@rene: Achtung: Stopscript und return darf man unter keinen umständen durcheinanderbringen. Stopscript weist das programm nur an, das script beim nächsten Durchlauf nicht mehr aufzurufen, der code läuft aber trotzdem weiter durch bis zum schluss. sofortiger dauerhafter abbruch lässt sich also nur dirch eine stopscript - return - sequenz erreichen.
Ich weiss, dass das unlogisch erscheint, aber wenn man die ganze morrowind - scriptlogik mit dem 1x pro frame abarbeiten mitbedenkt gibt es doch wieder irgendwie sinn.
__________________ drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen 
|
|
29.01.2004, 10:01 |
|
jsc
Crusader
  

Dabei seit: November 2003
Geschlecht: 
Herkunft: Zwickau/Sa.
Beiträge: 490
 |
|
So, guten Morgen und eine Frage an Rene.
Zitat: Original von ReneMiner
Warum an Türen die auf onActivate mit Activate reagieren kein CellChanged-Event mehr stattfindet erscheint ja noch einigermassen plausibel ...
Sind damit "Teleporttüren" (Zellwechsel) gemeint, auf denen ein Script liegt? Wenn ja, wann bzw. warum funktioniert das ganze nicht mehr? Was sollte man da beachten damit die Funktion erhalten bleibt?
__________________ Gruß jsc - Mein Morrowind-Kram
"Recht haben - oder glücklich sein?"
|
|
29.01.2004, 13:22 |
|
NewRaven
Warrior
    

Dabei seit: Oktober 2003
Geschlecht: 
Herkunft:
Beiträge: 91
 |
|
Ich habe meinen Senf dazu ja schon im Hla Bitter Thread abgegeben. IMO ist es nicht möglich, die Orginal-Scripte zu optimieren, ohne das deren Wirkungsart geändert wird. Nebenbei habe ich in Balmora - wo im Standardspiel wenige dieser Scripte laufen weit größere Performance-Einbußen als an Orten, wo es beispielweise von Wachen nur so wimmelt. Wie schon gesagt wurde ,frißt die (nicht berauschende AI) viel Performance und natürlich spielen, aber das liegt in der Natur der Sache, die Anzahl der Objekte - völlig egal ob Statics, NPCs oder sontwas, eine große Rolle. Selbst ein entfernen aller nicht unbedingt benötigten Scripte - sowohl globale als auch lokale - bringt kaum Performancevorteile. Das hab ich vor einiger Zeit schon ausprobiert.
__________________ Helft uns, Morrowind (DV) so bugfrei wie möglich zu machen. Hier gehts zur offiziellen Morrowind Improved Bugliste! Und hier findet ihr eine Liste der mit Morrowind Improved bereits behobenen Bugs!
PlugIns: Morrowind Improved, Haus des Kaiser, Herbalism_DV, Siege at Firemoth_DV u.v.m. auf NewRaven.net
|
|
31.01.2004, 00:43 |
|
ReneMiner
Crusader
  
Dabei seit: Januar 2004
Geschlecht: keine Angabe
Herkunft:
Beiträge: 260
 |
|
Also noch mehr Senf für die Ungläubigen. Schön das pro Frame jedes Script einmal gestartet werden soll. Allerdings kehrt der Rechner - wenn zu viel läuft - nicht "rechtzeitig" zurück - er schafft es einfach nicht 100 Scripts in der Zeit abzuarbeiten - also was passiert? Es wird einfach ein Bildaufbau weggelassen!
Und dann fragen alle "Wieso ruckelts bei mir?"
Die Sache mit dem Indoril-Cuirass: Klar sollen die einen angreifen wenn man sowas trägt. Ist jedem Spieler schon passiert, obwohl man zu hören bekommt "den cuirass nicht in vivec tragen!".
Von Geisterpforte und Moag Mar hat Berel Sala aber nichts gesagt. Und dort haben sie mich angegriffen!
Deswegen fand ich diese WearingOrdinatorUniform-Geschichte schon völlig neben der schnur.
So, nach dem ersten Mal werde ich nun nie wieder mit einem Ordi quatschen wenn ich Indoril trage. Deswegen bietet Hla Bitter einen weiteren mitttleren Cuirass welcher einen noch höheren Rüstungswert hat als Indoril - sich aber nicht verzaubern lässt.
@ newraven : was ist also in gnisis passiert?
So ganz versteh ich die geschichte nicht. Du hast mit Hla Bitter eine Legion-Uniform verzaubert und bist nicht angemeckert worden? Geht doch garnicht.
@jsc111 : Da lässt sich nicht viel machen - CellChanged auf 1 zu setzen ( ist verboten und ) funzt nicht. Ich habe dem Main-script ein Action-Script untergeordnet. Die beiden verwenden eine globale ( RunMainActions ).
Dann bin ich alle scripts abgegangen und habe dort wo sich's machen liess und wo eingangs auf ein CellChanged gewartet wird zusätzliche Abfragen eingesetzt.
Man kann auch bei benutzen einer solchen Tür - an der ja sowieso schon ein Script hängt ein Signal an dahinter liegende Bereiche senden oder - wie ich es bei Vassir-Didanat gemacht habe - das Script von der Aussen- auf die Innentür umplazieren und Teleport innendrin disablen. (Questbedingt)
@ garak : ich verwechsle stopscript und return nicht. aber wenn ein Script global läuft - einen Stopscript-Befehl enthält und ein Zellwechsel stattfindet startet das Script von vorn- auch wenn es gerade auf ein Stop gestossen ist. Der Return-Befehl hat 'ne andere Macke. Bitte mal ein "return" in ein globales, von anfang an laufendes script einsetzen und laufen lassen. Nimm dir was zu lesen mit wenn Du das laufen lässt...
Wer sich ( mit BM und Trib) - nachdem er mal im Mortrag-Gletscher war - teleportieren will erhält etwa bei jedem fünften Versuch die Meldung "teleport ist nicht möglich" - ausser in Akalukhans Kammer - dort funzt der Teleport plötzlich immer. Drum hab ich bloodmoonmain und tribunalmain ganz abgestellt. Auch FabAttackCheck, Werecheckscript, VampireCheckScript und dbAttackScript
laufen nicht permanent global sondern immer NACH dem schliessen eines menus oder NACH cellchanged != 0 ein einziges Mal.
Allein die beiden Teleportverbotscripts ( eigentlich läuft anfangs nur eines davon) und das dbAttackScript abzustellen brachte eine sichtbare erhebliche Verbesserung des flüssigen Spielablaufes.
Weil Scripts die nicht laufen auch nix kosten. Erst recht keine Zeit und Ressourcen. Die wurden alle nur insoweit verändert als das sie sofort anhalten wenn die Bedingungen nicht erfüllt sind und das sie nun vom ActionScript aus gestartet werden und nicht ständig laufen.
__________________ Mess them Meshes up
Dieser Beitrag wurde von ReneMiner am 31.01.2004, 05:49 Uhr editiert.
|
|
31.01.2004, 04:13 |
|
NewRaven
Warrior
    

Dabei seit: Oktober 2003
Geschlecht: 
Herkunft:
Beiträge: 91
 |
|
Zitat: Original von ReneMiner
@ newraven : was ist also in gnisis passiert?
So ganz versteh ich die geschichte nicht. Du hast mit Hla Bitter eine Legion-Uniform verzaubert und bist nicht angemeckert worden? Geht doch garnicht.
Was? Hab doch garnichts in diese Richtung gehendes gesagt!? 
__________________ Helft uns, Morrowind (DV) so bugfrei wie möglich zu machen. Hier gehts zur offiziellen Morrowind Improved Bugliste! Und hier findet ihr eine Liste der mit Morrowind Improved bereits behobenen Bugs!
PlugIns: Morrowind Improved, Haus des Kaiser, Herbalism_DV, Siege at Firemoth_DV u.v.m. auf NewRaven.net
|
|
31.01.2004, 21:00 |
|
jsc
Crusader
  

Dabei seit: November 2003
Geschlecht: 
Herkunft: Zwickau/Sa.
Beiträge: 490
 |
|
Zitat: Original von NewRaven
Was? Hab doch garnichts in diese Richtung gehendes gesagt!? 
Das war ich, weil ich da der Legion beigetreten bin und meine Kluft dann verzaubert habe. Was mal die Legion überhaupt nicht stört. Er meinte seine Aussagen sicher auf sein PI. bezogen. Nehm ich mal an.
Dafür hab ich die 111 an den Nick bekommen (heißt der junge Freund dann nur noch "q"?) und lese und lese den Absatz und hab immer noch Probleme das zu kapieren.
Zuviel gemoddet würd ich sagen 
__________________ Gruß jsc - Mein Morrowind-Kram
"Recht haben - oder glücklich sein?"
|
|
31.01.2004, 21:34 |
|
ReneMiner
Crusader
  
Dabei seit: Januar 2004
Geschlecht: keine Angabe
Herkunft:
Beiträge: 260
 |
|
@ alle deren Namen ich hier durcheinander geworfen hab:
Sorry - aber wenn man Nachrichten schreibt sieht man das Board nicht - da kanns ja mal passieren.
Übrigens wollte ich eine Landbelegung vermelden - nördlich von Hla Bitter, westlich der Westspalte bis hinauf an die Grenze vom Hirstaang-Wald. Das Land ist bereits fertig modelliert aber ich werde noch einige Wochen brauchen bis alle Blumen und Bäume stehen.
__________________ Mess them Meshes up
Dieser Beitrag wurde von ReneMiner am 09.02.2004, 23:12 Uhr editiert.
|
|
01.02.2004, 03:26 |
|
ReneMiner
Crusader
  
Dabei seit: Januar 2004
Geschlecht: keine Angabe
Herkunft:
Beiträge: 260
 |
|
Nochmal dieses Thema. Ich hab es jetzt so gemacht das es mit anderem kompatibel ist. Nun kann man intern die Original-Scripte abschalten und die Arbeit aller vorher ständig laufenden Check-scripts einem QuickAction-Script übergeben. Versuch macht kluch.
__________________ Mess them Meshes up
|
|
09.02.2004, 22:36 |
|
|