Construction Set Brauche einen Script

Mankind

Neuankömmling
Hallo miteinander
und schöne grüsse aus .www.forumla.de Forum :-D

so jetzt zur Sache

ich mache gerade einen Mod für TES 4 Oblivion und hatte mir so ein Scriptvorgestellt

ein Begleiter der natürlich immer bewusstlos geht und dir immer folgt
alle deine Sachen trägt also er ist wie ein gehendes behälter

und da ich im Scripten ne niete bin :?
wollte ich mal Fragen ob das jemand für mich erledigen könnte

wenn der Mod fertig ist, könnte ich ja denn hier bei Sharesoft veröffentlichen :roll:

wäre sehr nett

Grüsse
 
Also du möchtest, dass dir jemand in einem Post erklärt, wie man einen Begleiter erstellt? Wenn ja, denke ich, dass du kaum Antwort erhalten wirst. Jedenfalls keine, die deine Frage betreffen. Denn es würde viel zu lange dauern. Das hat man nicht mit einem Skript erledigt, sondern es handelt sich hier um Packages usw.

Aber ich sag dir nur mal kurz was du brauchst:
-Follow-Package
-eine seperate Truhe, die das Inventar des Folgenden darstellt
-einen dementsrechenden Skript
-ein Häckchen bei Essential ^^

MfG Gildur
 
würde dir ja gerne helfen aber ich kann nur Händler und Npcs die schlafen gehen herstellen also syr Gildur hat wohl am besten bis jetzt geholfen ^^
 
die Follow Package und der ganze Rest ist kein problem für mich ich brauche nur jemanden der mir erklärt was ich genau mit den Kiste (Inventar) machen soll
das gammmelt bei mir nämlich unter dem Fusboden rum
ich habe bereits den Script erhalten
scn maep

Begin OnActivate
TruheRef.activate player
end
nu frage ich mich soll ich den NPC den Script geben oder den Behälter ?
wie verbinde ich dei Kiste mit den Träge (NPC) ?
 
Super, dass du dich mit den Packages auskennt. Wollte das nicht noch erklären.

Also mit dem Script... das ist relativ komplex, aber ich versuche mal einen Ansatz zu finden:
Code:
scn ScriptName

ref myself

Begin OnActivate
set myself to getself
myself.RemoveAllItems TruhenREF
TruhenREF.activate player
set doonce to 1
End

Begin GameMode
if doonce == 1
TruhenREF.RemoveAllItems myself
set doonce to 0
Endif
End

Das mit der doonce und dem GameMode habe ich in der Hoffnung benutzt, dass die Items der Truhe erst entnommen werden, nachdem man die Items getauscht hat.

Hoffe, es klappt (mindestens ansatzweise)

MfG Gildur
 
  • Like
Reaktionen: Mankind
ja gut danke nur zu der entscheindender Frage
muss ich das Script der Kiste zuweisen oder den NPC ?

bei dem Script
scn sklave

ref myself

Begin OnActivate
set myself to getself
myself.RemoveAllItems HabesackREF
HabesackREF.activate player
set doonce to 1
End

Begin GameMode
if doonce == 1
HabesackREF.RemoveAllItems
myself
set doonce to 0
Endif
End
tritt beim speichern der Fehler auf
script sklave line 15
Script command my self not found


EDIT: ah... grosartig es hat geklappt
danke !!!
 
Zuletzt bearbeitet:
Zu dem Part mit dem NPC-Inventar verändern lies dir mal folgenden Thread durch, da wird eigentlich alles erklärt.


Einen OnActivate-Block würde ich nicht verwenden, da man dann den NPC nicht mehr normal ansprechen könnte. Ein Triggern im Result-Script einer Dialogoption ist da imho viel eleganter.
 
ok ich recherchiere mal ein bisschen :D
wennich dass mit der Rüstung nicht haben will reicht es schon wenn ich das schreibe ?
cn NPCScript

short DoShare
ref Me

begin GameMode


if DoShare == 1
set Me to GetSelf
set DoShare to 2
RemoveAllItems ShareBoxRef
ShareBoxRef.Activate Player
endif

if (MenuMode 1008 != 1) && (DoShare == 2)
set DoShare to 3
ShareBoxRef.RemoveAllItems Me
end
 
Zuletzt bearbeitet:
Nee, das CS würde dir die Fehler nur um die Ohren hauen.


Erstens verwendest du cn anstelle von scn.


Zweitens hast du ein endif vor dem end vergessen.


Drittens (kein Syntaxfehler-->CS meckert nicht): du könntest nur einmal die Sachen des NPCs wechseln, da DoShare auf 3 und nicht wieder auf 0 gesetzt wird, wodurch ein weiteres ablaufen des Scripts verhindert wird.


Lass das Script doch einfach so wie es ist (streiche ggf. die Zeile mit dem AddScriptPackage), was spricht denn dagegen, dass der NPC mit seiner besten Rüstung rumläuft?
 
Nee, das CS würde dir die Fehler nur um die Ohren hauen.


Erstens verwendest du cn anstelle von scn.


Zweitens hast du ein endif vor dem end vergessen.


Drittens (kein Syntaxfehler-->CS meckert nicht): du könntest nur einmal die Sachen des NPCs wechseln, da DoShare auf 3 und nicht wieder auf 0 gesetzt wird, wodurch ein weiteres ablaufen des Scripts verhindert wird.


Lass das Script doch einfach so wie es ist (streiche ggf. die Zeile mit dem AddScriptPackage), was spricht denn dagegen, dass der NPC mit seiner besten Rüstung rumläuft?

das Script habe ich nicht geschrieben
habe nur den letzten Teil des Scripts entfernt

ne der Npc ist ein Sklave er hat kein Recht auf eigene Rüstung :D
kannst du mir bitte die korrekte Schreibweise geben ?
 
Sag dem doch einfach in seinem Package Don't wear Armor (oder so, gibt's ein Häcken für) und lass das Script einfach unverändert.

Oder wenn du den wirklich nur als Packesel verwenden willst und der nichts verwenden darf lass den Kram mit dem RemoveAllItems einfach weg. Dann kannst du aber nichtmehr auf seine Sachen (die er Standartmäßig hat) zugreifen, ohne ihn zu töten:
Code:
scn NPCScript

short DoShare
ref Me

begin GameMode
   if ( DoShare == 1 )
        ; Kiste durch den Player aktivieren
       set DoShare to 2
       ShareBoxRef.Activate Player
   elseif ( MenuMode 1008 == 0 ) && ( DoShare == 2 )
      ; Nach dem Schließen des Container-Menus DoShare zurücksetzten
      set DoShare to 0
   endif
end

Begin OnDeath
   ; Bei Tod des NPCs Gegenstände auf diesen übertragen
   set Me to GetSelf
   ShareBoxRef.RemoveAllItems Me 1
End
 
ich habe das hier eingefügt
scn NPCScript

short DoShare
ref Me

begin GameMode
if ( DoShare == 1 )
; Kiste durch den Player aktivieren
set DoShare to 2
ShareHabesack.Activate Player
elseif ( MenuMode 1008 == 0 ) && ( DoShare == 2 )
; Nach dem Schließen des Container-Menus DoShare zurücksetzten
set DoShare to 0
endif
end

Begin OnDeath
; Bei Tod des NPCs Gegenstände auf diesen übertragen
set Me to GetSelf
ShareHabesack.RemoveAllItems Me 1
End

oder muss ich SHARE weg machen ?
ja die Truhe habe ich erstellet und habe die REF Habesack genannt
 
Zuletzt bearbeitet:
Das Share hat da meiner Meinung nach nichts verloren. Damit veränderst du die ID des Sackes, bzw. der Skript sucht nach einer anderen ID.. einfach das Share mal wegmachen ...
 
ShareBoxRef musst du ersetzten durch die ID der Referenz der Truhe.
Laut deiner Angabe wäre das REFHabeSack (das CS löscht Leerzeichen in IDs automatisch).
 
soooo
habe das Scripp heir eingefügt
scn NPCScript

short DoShare
ref Me

begin GameMode
if ( DoShare == 1 )

set DoShare to 2
Habesack.Activate Player
elseif ( MenuMode 1008 == 0 ) && ( DoShare == 2 )
set DoShare to 0
endif
end

Begin OnDeath
set Me to GetSelf
Habesack.RemoveAllItems Me 1
End
wenn ich im Spiel den NPC anspreche dann hat er nur den Topic Rumors
wie aktiviere ich den Tausch muss ich meinen eigenen Topic erstellen ?
 
Yep, eigenes Topic erstellen, in dessen Result-Script du dann die Variable DoShare auf eins setzt:

Code:
set [NPC-Ref-ID].DoShare to 1
 
  • Like
Reaktionen: Mankind