|
-
S_FIRE_VICTIM wird in der humans.mds als Endlosschleife definiert
Code:
// Feuerschaden allgemein, z.B. Fireball, Pyrokinesis, ...
ani ("s_Fire_Victim" 1 "s_Fire_Victim" 0.0 0.0 M. "Hum_Fireball_Victim_A01.asc" F 1 49)
Du könntest dir da eine ähnliche Animation basteln welche nur X Sekunden dauert.
Oder aber du rufst
Code:
NPC_StopAni (KerlDerBrennt,"S_FIRE_VICTIM");
erst zu einem späterem Zeitpunkt auf (eben X Sekunden nach Beginn des Effekts).
Für Zeitverzögerten Aufruf bietet sich ein Triggerskript an oder auch die FrameFunctions aus LeGo.
https://wiki.worldofgothic.de/doku.p...:triggerscript
Geändert von Cryp18Struct (14.02.2018 um 16:12 Uhr)
-
Zitat von Cryp18Struct
S_FIRE_VICTIM wird in der humans.mds als Endlosschleife definiert
Code:
// Feuerschaden allgemein, z.B. Fireball, Pyrokinesis, ...
ani ("s_Fire_Victim" 1 "s_Fire_Victim" 0.0 0.0 M. "Hum_Fireball_Victim_A01.asc" F 1 49)
Du könntest dir da eine ähnliche Animation basteln welche nur X Sekunden dauert.
Oder aber du rufst
Code:
NPC_StopAni (KerlDerBrennt,"S_FIRE_VICTIM");
erst zu einem späterem Zeitpunkt auf (eben X Sekunden nach Beginn des Effekts).
Für Zeitverzögerten Aufruf bietet sich ein Triggerskript an oder auch die FrameFunctions aus LeGo.
https://wiki.worldofgothic.de/doku.p...:triggerscript
kann man das nicht auch in der Humans.mds ändern? weil der effekt wird doch sonst nirgends verwendet im spiel?
-
Zitat von joey1990
kann man das nicht auch in der Humans.mds ändern? weil der effekt wird doch sonst nirgends verwendet im spiel?
Ja, sicher.
Code:
aniAlias ("t_Fire_Victim_10L" 1 "t_Fire_Victim_9L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_9L" 1 "t_Fire_Victim_8L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_8L" 1 "t_Fire_Victim_7L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_7L" 1 "t_Fire_Victim_6L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_6L" 1 "t_Fire_Victim_5L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_5L" 1 "t_Fire_Victim_4L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_4L" 1 "t_Fire_Victim_3L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_3L" 1 "t_Fire_Victim_2L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_2L" 1 "t_Fire_Victim_1L" 0.0 0.0 M. "s_Fire_Victim" F)
aniAlias ("t_Fire_Victim_1L" 1 "" 0.0 0.0 M. "s_Fire_Victim" F)
Wenn du "T_FIRE_VICTIM_10L" abspielen lässt nudelt der NPC 10 mal durch die Animation und hört dann auf (weil "t_Fire_Victim_1L" keine Folgeanimation angegeben hat).
edit: ich habe es mir gerade ingame angeschaut und hatte mich heftig verschätzt was die Länge der Animation angeht: 2L sind etwa 3 Sekunden.
Geändert von Cryp18Struct (14.02.2018 um 18:47 Uhr)
-
Okay, danke dir... aber irgendwie stürzt jetzt das spiel ab :/
-
genaue Fehlermeldung wäre hilfreich.
Was hast du gemacht? Den krams in humans.mds eingetragen? am Ende der humans.mds müssten 2 geschweifte Klammer kommen.
-
Zitat von Cryp18Struct
genaue Fehlermeldung wäre hilfreich.
Was hast du gemacht? Den krams in humans.mds eingetragen? am Ende der humans.mds müssten 2 geschweifte Klammer kommen.
Welche klammer die habe ich wohl nicht^^
wie genau kommen die rein?
fehlermeldung kommt keine :/
-
Zitat von joey1990
Welche klammer die habe ich wohl nicht^^
ganz allgemein sieht die humans.mds so aus:
Code:
Model ("HuS")
{
meshAndTree ("Hum_Body_Naked0.ASC" DONT_USE_MESH)
// Body Meshes
registerMesh ("Hum_Body_Naked0.ASC")
aniEnum
{
// hier kommen animationsdefinitionen hin
}
}
Du müsstest am Ende der Datei also zwei schließende geschweifte Klammern haben.
Zitat von joey1990
fehlermeldung kommt keine :/
Nichts im zSpy? keine AccessViolation?
Notfalls poste halt deine jetzige humans.mds
-
okay... also hier ist der ausschnitt... rot ist das feuer
-
Code:
aniAlias ("t_Fire_Victim_1L" 1 "" 0.0 0.0 M. "s_Fire_Victim" F)ani ("T_STAND_2_LIGHTNING_VICTIM" 1 "S_LIGHTNING_VICTIM" 0.3 0.3 M. "HUM_SHOCKED_M01.ASC" F 10 12)
[Bild: attachment.php?s=6a9a68c8ca01ea2e4947d41ec607507a&attachmentid=46662&d=1518643168&thumb=1]
mit Zeilenumbruch:
Code:
aniAlias ("t_Fire_Victim_1L" 1 "" 0.0 0.0 M. "s_Fire_Victim" F)
ani ("T_STAND_2_LIGHTNING_VICTIM" 1 "S_LIGHTNING_VICTIM" 0.3 0.3 M. "HUM_SHOCKED_M01.ASC" F 10 12)
edit: benutzt du eine dekompilierte humans.mds? Weil du da gar keine Kommentare drin hast.
-
Zitat von Cryp18Struct
Code:
aniAlias ("t_Fire_Victim_1L" 1 "" 0.0 0.0 M. "s_Fire_Victim" F)ani ("T_STAND_2_LIGHTNING_VICTIM" 1 "S_LIGHTNING_VICTIM" 0.3 0.3 M. "HUM_SHOCKED_M01.ASC" F 10 12)
[Bild: attachment.php?s=6a9a68c8ca01ea2e4947d41ec607507a&attachmentid=46662&d=1518643168&thumb=1]
mit Zeilenumbruch:
Code:
aniAlias ("t_Fire_Victim_1L" 1 "" 0.0 0.0 M. "s_Fire_Victim" F)
ani ("T_STAND_2_LIGHTNING_VICTIM" 1 "S_LIGHTNING_VICTIM" 0.3 0.3 M. "HUM_SHOCKED_M01.ASC" F 10 12)
edit: benutzt du eine dekompilierte humans.mds? Weil du da gar keine Kommentare drin hast.
ich komme da garnicht mehr mit^^
habe das mit der Humans auch noch nie wirklich hinbekommen :/
also was muss da jetzt rein? nur das 1L endende
-
Und wie sieht der eintrag für die skripte aus?
so?
-
Der Fehler in der humans.mds ist das zu 2 Ani Definitionen in einer Zeile stehen hast. Du musst da einen Zeilenumbruch einfügen damit nur eine Definition pro Zeile steht.
Allgemeines zu Animationen:
https://www.worldofgothic.de/modifik...go=animationen
http://forum.worldofplayers.de/forum...obsi-Animation
Dieser Block:
https://forum.worldofplayers.de/foru...1#post25738446
definiert 10 neue Animationen mit Namen wie "t_Fire_Victim_10L" oder auch "t_Fire_Victim_3L".
Wenn du eine Animation haben willst die ewa 3 Sekunden dauert kannst du mit
Code:
AI_PlayAni(myNpc, "T_FIRE_VICTIM_2L")
eine solche Animation abspielen.
-
Super vielen Dank, jetzt habe ich es hinbekommen
Was ich noch wissen wollte, wo wird bestimmt, wer welchen zauber hat... aslo zb skelettmagier, suchende ect.?
-
Zitat von joey1990
Super vielen Dank, jetzt habe ich es hinbekommen
Was ich noch wissen wollte, wo wird bestimmt, wer welchen zauber hat... aslo zb skelettmagier, suchende ect.?
In der Datei B_SelectSpell.
-
Zitat von blackpirate
In der Datei B_SelectSpell.
Super danke dir, das schaue ich mir mal an!
-
Hallo,
ich habe leider noch ein paar anliegen :/
und zwar habe ich den Beliaraltar aus der MDB etwas bearbeitet... jetzt wird ingame immer ein fehler angezeigt, das das bone fehlt....
das passiert aber auch, wenn ich das original in blender lade und nur abspeichere ohne etwas am mesh zu machen! kann sich das jemand mal angucken? wäre nett
https://upload.worldofplayers.de/fil...eliaraltar.rar
Dann habe ich noch eine frage... ist es möglich mit beginn eines kapitels ein Vob zu entfernen? Falls ja, wie?
-
Mit Ikarus kannst du zur Laufzeit vobs löschen.
Alternative:
Falls es dir reicht das vob unsichtbar zu machen und die dynamische Kollision auszuschalten habe ich da Funktionen für herumliegen:
Code:
func void makeVobInvisible(var zCVob myVob)
{
myVob.bitfield[0] = myVob.bitfield[0] & ~zCVob_bitfield0_castDynShadow; // schatten ausstellen
myVob.bitfield[0] = myVob.bitfield[0] & ~zCVob_bitfield0_showVisual; // visual ausstellen
myVob.bitfield[0] = myVob.bitfield[0] & ~zCVob_bitfield0_collDetectionDynamic; // dyn collision ausstellen
};
func void makeVobVisible(var zCVob myVob)
{
myVob.bitfield[0] = myVob.bitfield[0] | zCVob_bitfield0_castDynShadow; // schatten einschalten
myVob.bitfield[0] = myVob.bitfield[0] | zCVob_bitfield0_showVisual; // visual einschalten
myVob.bitfield[0] = myVob.bitfield[0] | zCVob_bitfield0_collDetectionDynamic; // dyn collision einschalten
};
func void makeVobInvisibleByName(var string name) {
var int vobPtr;
vobPtr = MEM_SearchVobByName(name);
if (!vobPtr) { return; };
var zCVob myVob; myVob = _^(vobPtr);
makeVobInvisible(myVob);
};
func void makeVobVisibleByName(var string name) {
var int vobPtr;
vobPtr = MEM_SearchVobByName(name);
if (!vobPtr) { return; };
var zCVob myVob; myVob = _^(vobPtr);
makeVobVisible(myVob);
};
-
Zitat von Cryp18Struct
Mit Ikarus kannst du zur Laufzeit vobs löschen.
Alternative:
Falls es dir reicht das vob unsichtbar zu machen und die dynamische Kollision auszuschalten habe ich da Funktionen für herumliegen:
Code:
func void makeVobInvisible(var zCVob myVob)
{
myVob.bitfield[0] = myVob.bitfield[0] & ~zCVob_bitfield0_castDynShadow; // schatten ausstellen
myVob.bitfield[0] = myVob.bitfield[0] & ~zCVob_bitfield0_showVisual; // visual ausstellen
myVob.bitfield[0] = myVob.bitfield[0] & ~zCVob_bitfield0_collDetectionDynamic; // dyn collision ausstellen
};
func void makeVobVisible(var zCVob myVob)
{
myVob.bitfield[0] = myVob.bitfield[0] | zCVob_bitfield0_castDynShadow; // schatten einschalten
myVob.bitfield[0] = myVob.bitfield[0] | zCVob_bitfield0_showVisual; // visual einschalten
myVob.bitfield[0] = myVob.bitfield[0] | zCVob_bitfield0_collDetectionDynamic; // dyn collision einschalten
};
func void makeVobInvisibleByName(var string name) {
var int vobPtr;
vobPtr = MEM_SearchVobByName(name);
if (!vobPtr) { return; };
var zCVob myVob; myVob = _^(vobPtr);
makeVobInvisible(myVob);
};
func void makeVobVisibleByName(var string name) {
var int vobPtr;
vobPtr = MEM_SearchVobByName(name);
if (!vobPtr) { return; };
var zCVob myVob; myVob = _^(vobPtr);
makeVobVisible(myVob);
};
Danke, das würde mir auch reichen? wo kommt diese funktion denn rein? B_Enter_NewWorld ??
-
Du müsstest
Code:
makeVobInvisibleByName("NAME_DES_VOBS")
an einer Stelle aufrufen wo Ikarus initialisiert ist und die richtige .zen geladen ist.
-
Zitat von Cryp18Struct
Du müsstest
Code:
makeVobInvisibleByName("NAME_DES_VOBS")
an einer Stelle aufrufen wo Ikarus initialisiert ist und die richtige .zen geladen ist.
uff... hmm und wo wäre dies im normalfall?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|