Construction Set Skriptthread zum Construction Set

@ Nagor:

Probiere es mal so:

Code:
scn Nagorszauberquestscript2


short doonce

Short A1
Short A2
Short A3
Short A4
Short A5

float fQuestDelayTime
 
Begin GameMode

if player.getIsRace Shaikan
 set doonce to 1
 set fQuestDelayTime to 2
else
 stopQuest Nagorszauberquest
endif
 
if(doonce)

if player.getLevel == 5 && a1 == 0
 player.removeSpell NagorsBlutdolchsummonbase
 player.removeSpell NagorsBlutzuMagiebase
 player.removeSpell NagorsDrachenblutbase
 player.removeSpell NagorsDrachenzornbase
 player.addSpell NagorsBlutdolchsummon5
 player.addSpell NagorsBlutzuMagie5
 player.addSpell NagorsDrachenblut5
 player.addSpell NagorsDrachenzorn5

 set a1 to 1
elseif player.getLevel == 10 && a2 == 0
 player.removeSpell NagorsBlutdolchsummon5
 player.removeSpell NagorsBlutzuMagie5
 player.removeSpell NagorsDrachenblut5
 player.removeSpell NagorsDrachenzorn5
 player.addSpell NagorsBlutdolchsummon10
 player.addSpell NagorsBlutzuMagie10
 player.addSpell NagorsDrachenblut10
 player.addSpell NagorsDrachenzorn10
 player.addSpell NagorsDrachenmacht10

 set a2 to 1
elseif player.getLevel == 20 && a3 == 0
 player.removeSpell NagorsBlutdolchsummon10
 player.removeSpell NagorsBlutzuMagie10
 player.removeSpell NagorsDrachenblut10
 player.removeSpell NagorsDrachenzorn10
 player.removeSpell NagorsDrachenmacht10
 player.addSpell NagorsBlutdolchsummon20
 player.addSpell NagorsBlutzuMagie20
 player.addSpell NagorsDrachenblut20
 player.addSpell NagorsDrachenzorn20
 player.addSpell NagorsDrachenmacht20

 set a3 to 1
elseif player.getLevel == 30 && a4 == 0
 player.removeSpell NagorsBlutdolchsummon20
 player.removeSpell NagorsBlutzuMagie20
 player.removeSpell NagorsDrachenblut20
 player.removeSpell NagorsDrachenzorn20
 player.removeSpell NagorsDrachenmacht20
 player.addSpell NagorsBlutdolchsummon30
 player.addSpell NagorsBlutzuMagie30
 player.addSpell NagorsDrachenblut30
 player.addSpell NagorsDrachenzorn30
 player.addSpell NagorsDrachenmacht30

 set a4 to 1
elseif player.getLevel == 40 && a5 == 0
 player.removeSpell NagorsBlutdolchsummon30
 player.removeSpell NagorsBlutzuMagie30
 player.removeSpell NagorsDrachenblut30
 player.removeSpell NagorsDrachenzorn30
 player.removeSpell NagorsDrachenmacht30
 player.addSpell NagorsBlutdolchsummon40
 player.addSpell NagorsBlutzuMagie40
 player.addSpell NagorsDrachenblut40
 player.addSpell NagorsDrachenzorn40
 player.addSpell NagorsDrachenmacht40

 set a5 to 1
 
  endif
endif
 
End
@ Yanus:

Das lasse ich jemand anderes machen. Da erstmal den Überblick zu bekommen und das Ganze umzuschreiben dauert mir entschieden zu lang. :p
 
  • Like
Reaktionen: Nagor
man muss ja nicht alles umschreiben oder? da muss man ja nur die richtige zeile finden und ne zahl ändern oder ist der midas ein komplizierter mensch? xD
 
Also, ich habe es mir kurz genauer angeschaut und festgestellt, dass das Skript anscheinnd nur ein paar Variablen verändert. Wir bräuchten noch andere Skripts, die damit verknüpft sind.
 
sowas dachte ich mir schon also da sthene ja noch "ref" andere zauber und das ist ja bei den eis zaubern genauso nur anders animiert....muss ich jetzt also den "Stammskript" bei einem der zauber suchen? welcher könnte das deiner meinung nach sein vlt bekomm ichs ja selbst auf die reihe :)
 
mmmh hängt das mit ner quest zusammen? ok schau ich direkt ma nach aber an
Code:
scn MidasCloudCastShootScript
; Script for Several Cloud Spells


ref me
ref myBall
float timer 
float myX
float myY
float myZ
float fixZ
short index

.....

oder

Code:
myBall.Moveto me 0 0 -2
set myZ to myBall.Getpos Z
myBall.Setpos Z myZ
myBall.SetDestroyed 0
myBall.Activate me 1

end
liegts definitiv nicht, lieg ich da richtig? xD
 
Moin,

Kann mir einer sagen wie ich es hinbekomme das einer meiner Npcs genau so wie Uriel am Anfang stirbt.

Dialog, Hud weg, Gegner kommt und haut ihn tot etc.
 
In das ResultScript vom Dialog kannst du einfach schreiben:

disableplayercontrols
MÖRDER-REF.startcombat OPFER-REF

und für den NPC folgendes
Code:
scn name

begin onstartcombat MÖRDER-REF
stopcombat MÖRDER-REF
setav aggression 0
end

begin ondeath
enabeplayercontrols
end
Ich denke, das sollte klappen.
 
  • Like
Reaktionen: Anti_Held
Hifreich währe vielleicht noch im Dialog-Resutscript:

short OpferHealth

set OpferHealth to -(OpferRef.getbaseactorvalue health - 1)
Opfer-Ref.setav health OpferHealth
 
Ich glaube, im Resultscript kann man keine Variablen deklarieren, mal davon abgesehen, dass das Skript keinen Sinn ergibt. Ich würde es daher eher im Skript des NPC schreiben (vor dem "onDeath"-Block):
Code:
Begin onHit <Angreifer-Ref>

kill <Angreifer-Ref>

end
 
HI.

Ich hab mal wieder eine Frage:

Ich möche ein Script machen, welches ich benutzen kann, um nahe gelegene Objekte umzustoßen.

Also ich habe mal 10 Objekte (zzObjekt1)
diese sind in nem Exterior in nem abstand von ca 2-5 Schritte Ingame platziert.

Wie kann ich es so machen, dass wenn der player mit nem speziellen Sauber (Feuerschaden auf ziel) eines der Objekte trifft, alle im umkreis von X schritten umgestoßenwerden?

und das ganze OHNE OBSE.

beim umstoßn dache ich an PushActorAway

doch wie kann ich den Rest realisieren?

und wie kann ich in obrigem Fall die zahl X zufällig von 1-5 berechnen lassen?

danke & LG
 
PusahActorAway geht, wie der Name des Befehls schon sagt, nur bei Actors...
Du könntest die allgemeine Rückstoß-Wirkung eines Bereich-Zaubers verwenden. Also vllt in der Art, dass ein "unsichtbarer Zauber" (Script Effect, ohne Visuals) gecastet wird, der die Objekte wegstüßt
 
Zuletzt bearbeitet:
Die Zufallszahl zwischen 1 und 5 bekommst du durch:
Code:
float random

set random to (1 + 4*getRandomPercent/100)

Für das Umstoßen wäre es natürlich besser, OBSE zu verwenden, aber du kannst es auch mit einem kleinen Skriptkomplex realisieren. Du bräuchtest dafür als erstes eine Quest mit einem einfachen Skript:
Code:
scn name

ref target

Dann erstellst du den Skripteffekt mit dem von dir gewünschten Bereich:
Code:
scn name

ref source
ref mySelf

Begin ScriptEffectStart

if <Quest-ID>.target
 set source to <Quest-ID>.target
 set mySelf to getSelf
 source.pushActorAway mySelf 5
 return
endif
set <Quest-ID>.target to getSelf

end


Begin ScriptEffectFinish

if getIsreference <Quest-ID>.target
 set <Quest-ID>.target to 0
endif

end

Ich bin mir da aber nicht ganz sicher, weil ich nicht weiß, welche Auswirkungen der Area-Effekt genau hat.
 
Hiho, ich bräuchte (mal wieder) Hilfe bei Skripts! :-D

Das erste Skript:

Code:
scn AAALurkerScript

begin Gamemode

if player.isWeaponOut == 1 || player.getEquipped torch02 == 1
SetAV Aggression 100
endif

if player.isWeaponOut == 0 || player.getEquipped torch02 == 0
SetAv Aggression 5
endif

end
Das Skript soll dafür sorgen, dass der actor dem Spieler feindlich gesinnt ist, sollte dieser seine Waffe gezogen haben oder eine Fackel tragen. Würde das so funktionieren?


Das zweite Skript:

Code:
scn AAASummonBerserkModeScript


begin scripteffectstart

if GetInFaction 000SummonedCreatures == 0
message "Dieses Wesen unterliegt nicht eurer Magie"
return
endif

if GetInFaction 000SummonedCreatures == 1
ModAV aggression 100
endif
end
Dieses Skript liegt auf einem Zauber, welcher bei jedem NPC/jeder Kreatur in der faction 000SummonedCreatures den Aggression-Wert auf 100 setzen soll. Allerdings sieht es derzeit so aus, dass ich den Zauber 2-mal benutzen muss damit er wirkt. Weiß jemand eine Lösung für das Problem?

Liebe Grüße,
Eydis
 
Das 1. Skript wird nur funktionieren, wenn der Spieler eben diese Fackel trägt. Leider gibt es unzählige Fackeln auch aus Mods.
Wenn Du willst, dass es bei allen Fackeln funktionieren soll, brauchst Du OBSE.

Schreib das 2. Skript mal so:

Code:
scn AAASummonBerserkModeScript


begin scripteffectstart

if GetInFaction 000SummonedCreatures == 0
    Message "Dieses Wesen unterliegt nicht eurer Magie!"
   return
else
       ModAV aggression 100
    endif
end
 
  • Like
Reaktionen: Eydis