Misantrooper
25.01.2011, 15:28
hio, hab ein kleines problem mit tagesabläufen von npc´s
in einem intereior sind ca 10 npc´s untergebracht, die in einer gemeinschaft leben sollen, mit z.b. zeitgleichen mahlzeiten im selben raum etc.
ich habe also für jeden die packages erstellt.
ich nehme nun mal 1 npc, den techniker als beispiel:
packages:
TNHTechnikerIdle01PACK
(soll im radius eines definierten xmarkers random die idlemarker benutzen)
package-typ:sandbox
mögliche interaktionen: nur idlemarker
shedule:
week, month und day auf "any"
time: 6
duration: 6
TNHTechnikerEatPACK
(soll auf einer definierten vaultdinerbank platznehmen, und das dort befindliche bighornsteak essen)
package-typ:eat
shedule:
week, month und day auf "any"
time: 12
duration: 2
TNHTechnikerIdle02PACK
(soll im radius eines definierten xmarkers random die idlemarker benutzen)
package-typ:sandbox
mögliche interaktionen: nur idlemarker
shedule:
week, month und day auf "any"
time: 14
duration: 8
TNHTechnikerSleepPACK
(soll in einem definiertem Bett schlafen)
package-typ:sleep
mögliche interaktionen: nur nur das verlinkte bett, radius 0
shedule:
week, month und day auf "any"
time: 22
duration: 8
in dieser reihenfolge sind die packages auch beim npc angelegt. die anderen npc´s haben im prinzip den selben tagesablauf, nur mit anderen markern, an anderen positionen im interior. was bei allen identisch ist, ist die essenszeit.
das problem nun ist, das sie ihren tagesablauf nicht abspulen, sondern immer in dem package hängen, welches sie beim begonnen haben, als ich die zelle betrat. also komme ich mittags um 1300 in die zelle, sitzen alle da und essen, aber sie essen auch noch, wenn ich um 220 die zelle wieder verlasse. oder ich komme um 0200 an, liegen alle in ihren zugewiesenen betten, aber auch wieder ewig und 3 tage, wenn ich mich solange in der zelle aufhalte.
was ich bisher ausprobiert habe:
an jedes package ein tnhBELIEBIGERNPCref.evp im on End-block angehängt
keine auswirkung
ein script erstellt das zu den jeweiligen zeit die packages auf den entsprechenden npc evaluieren soll:
scn TNHPackageSwitch
float Time;
begin GameMode;
set Time to GetCurrentTime;
if (Time == 6) || (Time == 12) || (Time == 14) || (Time == 22);
TNHTechnikerREF.evp;
alle.evp;
anderen.evp;
npcs.evp;
endif;
end;
leider auch ohne auswirkung. obwohl ja bei begin gamemode mehrmahl sekündlich die bedingungen geprüft werden, und das script definitiv die zeiten treffen sollte.
so mittlerweile bin ich echt am ende mit meinem latain, und kurz davor die viecher einfach nur resignierend in die ecke zu stellen.
in einem intereior sind ca 10 npc´s untergebracht, die in einer gemeinschaft leben sollen, mit z.b. zeitgleichen mahlzeiten im selben raum etc.
ich habe also für jeden die packages erstellt.
ich nehme nun mal 1 npc, den techniker als beispiel:
packages:
TNHTechnikerIdle01PACK
(soll im radius eines definierten xmarkers random die idlemarker benutzen)
package-typ:sandbox
mögliche interaktionen: nur idlemarker
shedule:
week, month und day auf "any"
time: 6
duration: 6
TNHTechnikerEatPACK
(soll auf einer definierten vaultdinerbank platznehmen, und das dort befindliche bighornsteak essen)
package-typ:eat
shedule:
week, month und day auf "any"
time: 12
duration: 2
TNHTechnikerIdle02PACK
(soll im radius eines definierten xmarkers random die idlemarker benutzen)
package-typ:sandbox
mögliche interaktionen: nur idlemarker
shedule:
week, month und day auf "any"
time: 14
duration: 8
TNHTechnikerSleepPACK
(soll in einem definiertem Bett schlafen)
package-typ:sleep
mögliche interaktionen: nur nur das verlinkte bett, radius 0
shedule:
week, month und day auf "any"
time: 22
duration: 8
in dieser reihenfolge sind die packages auch beim npc angelegt. die anderen npc´s haben im prinzip den selben tagesablauf, nur mit anderen markern, an anderen positionen im interior. was bei allen identisch ist, ist die essenszeit.
das problem nun ist, das sie ihren tagesablauf nicht abspulen, sondern immer in dem package hängen, welches sie beim begonnen haben, als ich die zelle betrat. also komme ich mittags um 1300 in die zelle, sitzen alle da und essen, aber sie essen auch noch, wenn ich um 220 die zelle wieder verlasse. oder ich komme um 0200 an, liegen alle in ihren zugewiesenen betten, aber auch wieder ewig und 3 tage, wenn ich mich solange in der zelle aufhalte.
was ich bisher ausprobiert habe:
an jedes package ein tnhBELIEBIGERNPCref.evp im on End-block angehängt
keine auswirkung
ein script erstellt das zu den jeweiligen zeit die packages auf den entsprechenden npc evaluieren soll:
scn TNHPackageSwitch
float Time;
begin GameMode;
set Time to GetCurrentTime;
if (Time == 6) || (Time == 12) || (Time == 14) || (Time == 22);
TNHTechnikerREF.evp;
alle.evp;
anderen.evp;
npcs.evp;
endif;
end;
leider auch ohne auswirkung. obwohl ja bei begin gamemode mehrmahl sekündlich die bedingungen geprüft werden, und das script definitiv die zeiten treffen sollte.
so mittlerweile bin ich echt am ende mit meinem latain, und kurz davor die viecher einfach nur resignierend in die ecke zu stellen.