Construction Set Skriptthread zum Construction Set

Ich brauch nen Skript.
Ich will den player in eine bestimmte Stelle zu einem Xmarker zu teleportieren. Ich weis ich habe sowas schon zehntausendmal gefragt, aber ich weis nicht wie ich den Player eine Ref geben kann.
 
Code:
[code]SCN <Scriptname>

Begin MenuMode 1027

player.setav health ((player.getav endurance)/10 + player.getav health)

End

Mit OBSE.

Ich find das ganz fantastisch das du hier den Vergleich zu OBSE zeigst. Doch wäre es schön, wenn du das kommentieren könntest. Da man da als Leie rein garnichts versteht.

Ich kann ja mal anfangen, auch wenn ich Meine das kaum zu verstehen.

Dein Script ohne OBSE
Code:
SCN <ScriptName>
[/QUOTE]
Short endurance  ;Variable
Short health          ;Variable
Short Add             ;Variable

Begin MenuMode 1027     ; Levelupmodus

set endurance to player.getav endurance   ; Setze in die Variable die Player Ausdauer
set health to player.getav health                   ; Setzte in die Variable die Player Gesundheit
set add to (endurance/10) + health              ; setze in die Variable Add die  Ausdauer /10 und addiere die Gesundheit
player.setav health health                              ; setze den Spielerwert Gesundheit auf den neuen Wert----- Müsste dort nicht die Vari add stehen ??????


[quote="Kahmul, post: 914767"][code]
SCN <ScriptName>
[/QUOTE]
Dein Script mit OBSE

Begin MenuMode 1027     ; Levelupmodus
player.setav health ((player.getav endurance)/10 + player.getav health)         ; setzte die Gesundheit des Players ??????????
 
  • Like
Reaktionen: samael
Du hast alles richtig verstanden. Ich hatte bloß einen falschen Parameter bei

Code:
player.setav health health     ; eigentlich add

gemacht. Wie dort schon steht, habe ich aus Versehen "health" eingebaut. Ist im obigen Beitrag von mir verbessert.
Zu OBSE: Es macht dasselbe wie im ausführlichen Skript. Das Leben des Spielers wird eben sofort mit dem Befehl auf das Ergebnis von

Code:
((player.getav endurance/10) + player.getav health)

gesetzt. Spart einiges an Zeilen und ist wesentlich übersichtlicher.
Nach weiterem Recherchieren weiß ich jetzt jedoch nicht, ob OBSE diese Möglichkeit komplett einfügt oder nur für OBSE-Funktionen verfügbar macht. Siehe auch hier (ein wenig herunterscrollen). Für mich eigentlich relativ egal, da OBSE mMn Standart ist und nichts gegen es spricht und ich selber nie ohne OBSE arbeite. Deswegen schenke ich solchen Dingen normalerweise nicht viel Aufmerksamkeit.

(btw: Weniger aufeinanderfolgende Satzzeichen tun es auch. ;))

Soweit zum Verständnis. Je nachdem was Samael möchte, könnte auch Diarrhoes genannte Möglichkeit reichen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: robinH
ich versuch gerade einen skript zu schreiben, der eintritt, sobald man aus dem anfangs-dungeon raus ist.
ich habe nach dem quest-stage gesucht und ihn leider nicht gefunden... auch weiß ich nicht wie man einen skript schreibt, der bei einer queststage beginnt...

Danke im Voraus
 
Habe folgende Idee.

Eine Kreatur soll ohne Agressivität durch einen Raum laufen. Sprich der Player sieht sie und die Kreatur sieht den Player ebenfalls, aber es kommt zu keinem Erstangriff der Kreatur.

Sobald eine Triggerbox ( Kurz hinter der Tür plaziert) vom Player durchschritten wird, soll sich das Angriffsverhalten aber per Script ändern. Sprich nun rastet die Kreatur völlig aus.

Sobald der Player den Raum mit durchschreiten der Triggerbox wieder verlässt, soll sich die Kreatur wieder beruhigen.

Jemand eine Idee, wie sich das umsetzten lässt.
 
Zuletzt bearbeitet:
Das ginge noch einfacher, indem Du einen Activator (z.B. ein Trigger oder irgendein Activator unter dem Boden) im Raum platzierst und das Script auf ihn legst:

Code:
SCN <ScriptName>

Begin GameMode

if(<Kreatur-Ref>.getcombattarget == player)
  if(getdistance player > xxx)  ; Der Abstand in Units. 1 Meter = 70 Units.
     <Kreatur-Ref>.stopcombat player
  else
     <Kreatur-Ref>.startcombat player
  endif
endif

End

Ansonsten wäre das über die Trigger ein wenig umständlich, da es nicht wie in Papyrus OnTriggerEnter und OnTriggerLeave gibt.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: robinH
Das klappt soweit alles Super.
Für die jenigen die das auch mal nutzen wollen. 256 Units entspricht einem Feld. Forausgesetzt der Trigger hat die selbe Größe und Form- Als Beispiel: der normale Trigger auf 0.6 runter skaliert passt genau.

Ein Feld ist zB eine einfache Bodenplatte aus den Dungen Charges. Den Trigger einfach so plazieren, dass die betreffenden Creatur sich in der Mitte des Triggers befindet. So lässt sich gut einstellen, bis wohin die Abfrage geht. Da es sich bei meinem Beispiel um 1,5 Felder ( gerechnet ab dem Rand des Aktivators) handelt, habe ich die Unitsentfernung auf 640 gesetzt.
-----------------------------------------------------------------------------------------------------------------------------------------------------

Nur wie schaft man es, dass die Creatur nachdem sie einen angegriffen hat
und der Player sich Aufgrund zu starker Plesuren aus dem Raum erfolgreich zurückzieht,

diese dann nicht vor der Tür stehen bleibt, sondern zurück in den Raum geht?
Habe es mit einem Wander Pagacke geschaft, dass diese sich manchmal umdreht und zurück in den Raum geht. Aber auch dann bleibt sie meist genau in Türrichtung wieder stehen. Ab und zu geht sie auch um die Ecke. Aber dieser Zufall ist nicht so sinnvoll.

Hilfreich wäre es, wenn die Creatur sich geziehlt auf Ihren Ursprungsplatz zurückzieht, oder sich wenigstens nach einem Treffer sofort
aus der Schusslinie begibt.


Ansonsten ist es möglich den Kampf aus der Ferne ohne Gegnerverteidigung weiter zuführen. Ist zwar mal ganz witzig aber ziemlich dumm.

Edit
Eventuell wäre das mit der Agression doch angebracher. Denn so verteidigt sie sich doch glaub ich oder? Ich meine schon. Niedrige werte sorgen dafür das die Kreatur selbst nicht als erstes angreift, doch tortz niedrige Werte verteigt sie sich. Ich meine das im Wald beobachtet zu haben.
Oder irre ich mich? Weiss jemand genaueres dazu?

Weiss jemand wie der Scriptbefehl für die Steuerung der Agression lautet?

Also anstatt stop Combat einfach reduziere die Agression.
 
Zuletzt bearbeitet:
Super jetzt funktioniert es endlich. Dadurch ist die KI um einiges intelligenter geworden. Es ist nun nicht mehr möglich den Gegner aus seinem Unterschlupf zu locken um Ihn dann zu erledigen. Nee jetzt gibt es nur den direkten Kampf da wo er mit seinen Mitstreitern den Schatz beschütz.

Allerdings habe ich das mit Stopcombat und der Agression verbunden. Nur so hat es geklappt.
Denn selbst bei Agression von Null verteidigt sich der Gegner wenn er angegriffen wird sofort. Aus der Ferne erledigen ist somit nicht mehr drin. Hihi

Nun probiere ich gerade daran herum die Packages der AI bei einem bestimmten Abstand des Players zu removen. Damit der Rechner nicht so in die Knie geht. Denn wenn man weit weg vom Raum ist, braucht der Gegner sich auch nicht bewegen. Geschweige denn zu berechnen ob er sich an einem bestimmten Punkt befindet um dann wieder zum Target im Raum zu laufen. Mal sehen wie es läuft wenn ich die Lösung habe, kann ich sie ja mal hochladen.

EDIT: Machmal kommt man auf die einfachsten Sachen nicht. Es ist ganz Simpel einfach die Creatur mit Hilfe des Triggers (der ja eh die Aggression steuert) disablen, dann werden auch keine AIs gespielt, ein Meshrendering und die Schattenberechnung findet auch nicht statt. Das ist noch viel effektiver als das Package zu steuern. Bei meinem Beispiel war ein Abstand von 6 Feldern ( 256*6) genau richtig.
 
Zuletzt bearbeitet:
Ich bräuchte auch Hilfe:
Ich bräuchte ein Scripts, die folgendes machen:
-Wenn man Angegriffen wird, wird ein Zauber gezaubert, der alle, die um den Player herumstehen, betrifft, nicht aber den Player selbst
-Einen Zauber, der Wesen wegstößt(Siehe Oben)
-Die Wahrscheinlichkeit verändern, dass man Feinde mit Powerangriffen Rückwärts wegstößt, was aber nur den Player betreffen sollte
-Diese Wahrscheinlichkeit betrifft alle, die um den Player herumstehen = oben genannter Zauber funktioniert auch bei Angriffen

Wenn mir jemand helfen wollte, wäre ich sehr dankbar :>
 
Zuletzt bearbeitet:
1) Geht nicht ohne OBSE.
Wenn Du jetzt nicht dauernd die Lebenspunkte des Spielers abfragen willst, empfehle ich Dir einen EventHandler, so ziemlich die nützlichste Funktion von OBSE.

Code:
SCN OnHitFunction

ref actor
ref target
ref attacker

Begin Function { target, attacker }

let actor := getfirstref 69
while(actor)
  if(actor.getdistance player < 200)
    cast <ZauberID> actor
  endif
  let actor := getnextref
loop

End



;EventHandler-Call, in irgendeinem Script
seteventhandler "OnHit" OnHitFunction target::playerRef     ; Der Name der Function muss hier derselbe sein!

2) Der Zauber:

Code:
SCN <ZauberScriptName>

ref target

Begin ScriptEffectStart

let target := getself
player.pushactoraway target, 4  ; hier die Stärke einstellen

End

3) Gibt es entweder nicht oder es ist irgendein .ini-Setting, das ich auf die Schnelle nicht gefunden habe.
4) Verstehe zwar nicht genau, was Du meinst, aber sollte sich ja erledigt haben, wenn es keine Möglichkeit gibt, die Warscheinlichkeit einzustellen.



Schon ein Unterschied zu Papyrus.
 
Zuletzt bearbeitet:
Es könnte eine entsprechende Variable bei den Game Settings geben, dann müsstest du nur den einen Wert ändern. Ansonsten könntest du das Skript suchen, dass die Leichen verschwinden lässt, falls es ein entsprechendes Skript gibt, das nicht hardcoded ist.
 
Wenn du Thregolas' Methode nutzen willst, muss die Variable iHoursToRespawnCell geändert werden.
Standardmäßig steht sie auf 72 für 72 Stunden (= 3 Tage).
Einfach ändern, aber der Wert darf NIE gleich 0 sein. Hab ich mal probiert, macht nur unschöne Fehler!
 
Habe nun endlich mal einen eigenen Händler eingebaut und habe erst jetzt den Händlerbug entdeckt. Vorher sah ich den nie. Keine Ahnung warum.
Aber wenn man dem Händler etwas abkauft oder verkauft ändert sich seine Goldmenge nicht.

Dachte schon ich hätte was falsch gemacht. Ist aber bei Original Händlern genauso.

Es lässt sich so wie ich das sehe per Topic Befehl "set investment 10" ( Gebe dem Händler 10 Gold) das Vermögen eines NPCs duch Topicereignisse steuern.


Weiss jemand wie es möglich ist. Das die Händler auch etwas vom Handel spüren?

Gibt es eine Mod die nur das ändert.
Ausser die ich verändere gleich alles Mod "Enhanced_Economy" habe ich nichts dazu gefunden?


update: Eventuell werde ich ja hier fündig

http://www.oblivionmodwiki.com/index.php/Living_Economy
 
Zuletzt bearbeitet: