World of Gothic Archiv > Editing
Riesen
Seite 1 von 2  1  2 
17.03.2004, 15:12 #1
Söldner1
Beiträge: 133
Riesen
Mit welchen befahl mache ich Monster größer.
Und wie positioniere ich Monster.
17.03.2004, 15:26 #2
Neely
Beiträge: 133
Re: Riesen
quote:
Zitat von Söldner1
Mit welchen befahl mache ich Monster größer.


code\:
Mdl_SetModelScale (self, x, y, z);

Probiers mal damit, 1 bedeutet 100%, wenn dein "Riese" also beispielsweise fünfmal so groß sein soll dann wäre es
code\:
Mdl_SetModelScale (self, 5, 5, 5);

quote:
Zitat von Söldner1
Und wie positioniere ich Monster.


Wenn du mit 'Monster positionieren' meinst, wie man sie in die Welt einfügt dann per
code\:
Wld_InsertNPC (<monster>, "<ypoint>");
17.03.2004, 15:36 #3
Söldner1
Beiträge: 133

Und wo muss ich das hin ein schreiben.
17.03.2004, 15:39 #4
AlexVornam
Beiträge: 1.727

Den Skalierungsbefehl in das Script des Monsters und den Positionierungsbefehl in die Startup.d.
17.03.2004, 15:45 #5
Söldner1
Beiträge: 133

Und wie mach ich es das sich die Monster wie bei Diccuric immer wieder neu regenerieren.
17.03.2004, 16:36 #6
Neely
Beiträge: 133

Es gibt die Respawn-Funktion
code\:
B_Story_RespawnOW();

Im normalen Gothic erfolgt die nur während eines Kapitelwechsels. Keine Ahnung wie es in Diccuric ist, aber eine Möglichkeit wäre es die Funktion während des Schlafens aufzurufen.
17.03.2004, 18:04 #7
aragorn_16
Beiträge: 529

Hab da auch ne Frage.
Ich wollte, dass ein NPC nach nem Dialog von einer Position zu einer anderen geht. Dann hab ich in sein Dialogscript folgende Zeilen eingefügt:
AI_StopProcessInfos (self);
Npc_ExchangeRoutine (self,"OW_PATH_245");
Npc_SetPermAttitude (self,ATT_FRIENDLY);
Aber der NPC bleibt an der gleichen Stelle stehen. Muss man da noch was anderes machen?
17.03.2004, 18:13 #8
AlexVornam
Beiträge: 1.727

quote:
Zitat von aragorn_16

AI_StopProcessInfos (self);
Npc_ExchangeRoutine (self,"OW_PATH_245");
Npc_SetPermAttitude (self,ATT_FRIENDLY);



Der "Npc_ExchangeRoutine"-Befehl ändert den Tagesablauf, da kann man nicht einfach nen Waypoint angeben, du musst also einen 2. Tagesablauf in das NPC-Skript reinsetzen.
17.03.2004, 19:17 #9
Maharreshi
Beiträge: 82

Hallöchen!

quote:
Neely schrieb:

Es gibt die Respawn-Funktion
code\:
B_StoryRespawnOW();

Im normalen Gothic erfolgt die nur während eines Kapitelwechsels. Keine Ahnung wie es in Diccuric ist, aber eine Möglichkeit wäre es die Funktion während des Schlafens aufzurufen.


Abhilfe schafft hier die Funktion
code\:
B_RefreshArmor();

in der gleichnamigen Datei im Ordner "scriptscontentAIB_Human".

Dort findet man diese Erklärung:
quote:
B_RefreshArmor
// ==============
// Wird einmal pro Spieltag um 0 Uhr vom Code aufgerufen!
// Wurde früher genutzt, um NSCs die ihrer Rüstung beraubt wurden, wieder
// eine passende Rüstung dazuzuschummeln. Da der Spieler nun den NSCs
// nicht mehr die Rüstung abnehmen kann, ist diese Funktion leer.
//
// WICHTIG: Könnte aber zum Respawnen von irgendwelchen anderen Dingen
// benutzt werden!
17.03.2004, 19:48 #10
aragorn_16
Beiträge: 529

OK danke. Hat auch geklappt.
18.03.2004, 20:32 #11
aragorn_16
Beiträge: 529

Ich hab nen NPC eingefügt. Wenn man gegen den kämpft, greifen die umstehenden NPCs auch an. Kann man da irgendwas machen, das die nicht angreifen.
Und der NPC kämpft auch komisch. Wen man bisschen nach hinten geht, dann folgt der einem gar nicht, sondern bleibt einfach mit gezogener Waffe stehen. Und wenn man dann näher kommt schlägt er, oder läuft um einen rum. Kann man da auch was machen, dass die bisschen besser kämpfen?
19.03.2004, 07:45 #12
Neely
Beiträge: 133

Schau mal, ob du ihn als Wache definierst hast (npctype=npctype_guard). Wenn ja dann greifen alle NPC im Umkreis, die auch Wachen sind automatisch an (Also zB die Gardisten). Stell deinen NPC auf NPCTYPE_AMBIENT, dann wird er wie ein Arbeiter behandelt (also wie die Buddler oder Schatten).

Achja zum Thema kämpfen:
Wenn dein NPC komisch kämpft, dürfte das mit seinem TA zusammenhängen. Wahrscheinlich sind die Perceptions falsch oder nicht ausreichend deklariert. Ich nehme jetzt einfach mal an es geht um Gunther und seinen Pinkel-TA ;)
Bei seinem TA wird nur definiert, wie er auf Annäherung des Spielers bzw auf Ansprechen reagiert. Reaktionen auf Schaden, Feinde etc fehlt, deswegen benimmt er sich so eigenartig.
Ersetze einfach mal die Zeilen:
code\:

Npc_PercEnable(self, PERC_ASSESSPLAYER, B_AssessSC);
Npc_PercEnable(self, PERC_ASSESSTALK, B_AssessTalk);


durch
code\:

B_SetPerception (self);


Das müsste das Problem eigentlich beheben, weil er dann die "Standart-Reaktionen" verwendet.
19.03.2004, 16:00 #13
aragorn_16
Beiträge: 529

Der NPC ist zwar nicht Gunther aus dem Scripttutorial, aber trotzdem danke. Werds mal versuchen.
Der NPC hat den npctype_main. Greifen die da dann auch an?
Was muss ich machen, dass NPCs nach nem bestimmten Dialog von selbst angreifen?
19.03.2004, 17:05 #14
Neely
Beiträge: 133

Sorry, mein Fehler. Der Npc-Typ legt sein eigenes Verhalten fest und nicht dass der Umstehenden. Dass die anderen Angreifen, hängt wahrscheinlich mit der Gildenzuweisung zusammen. Ist er zufällig GIL_GRD? Wenn ja stell ihn mal probeweise auf GIL_NONE, dann sollten die übrigen Gardisten nicht mehr angreifen.
19.03.2004, 17:15 #15
aragorn_16
Beiträge: 529

Der NPC ist GIL_SLD, die umstehenden auch.
Also wenn man will das ein NPC nach einem bestimmten Dialog feindlich wird und einen angreift, wenn man zu ihm geht, wie macht man dann das?
19.03.2004, 17:55 #16
Black Daemon
Beiträge: 218

Also wenn er dich angreifen soll, nachdem ein Dialog beendet ist schaust du die als Beispiel am besten Baal Lukor an.
Dort steht folgendes wichtiges drin.
quote:

Npc_SetTempAttitude (self, ATT_HOSTILE);
Npc_SetPermAttitude (self, ATT_HOSTILE);
AI_StopProcessInfos (self);
AI_StartState (self, ZS_Attack, 1, "");


Damit müsste es gehen.
19.03.2004, 18:38 #17
aragorn_16
Beiträge: 529

Nein, das meine ich gar nicht. Das weiß ich, wie das geht.
Die Räuber im Räuberlager greifen einen ja an. Wenn man in ihren Scripten npctype_rouge, z.B. auf npctype_main ändert, dann greifen sie ja nicht an. Aber wie mach ich das, dass sie mich nach einer bestimmten Dialogoption angreifen, wenn ich dann wieder zum Räuberlager zurückgehe. Wie z.B. die Gardisten im Alten Lager, oder die Wassermagier, nachdem man Uriziel aufgeladen hat.
Wie macht man das?
19.03.2004, 18:51 #18
AlexVornam
Beiträge: 1.727

Da wurde das Verhalten der Gilden geändert, guck dir mal das Script für die Kapitelwechsel an.
20.03.2004, 13:46 #19
aragorn_16
Beiträge: 529

Was bedeutet z.B. im Script von Kirgo diese Zeile:
if ( (Kirgo_Charged == TRUE) && (Npc_GetDistToWp (hero,"OCR_ARENABATTLE_TRAIN") < 500) )
20.03.2004, 14:21 #20
Neely
Beiträge: 133

quote:
Zitat von aragorn_16
Was bedeutet z.B. im Script von Kirgo diese Zeile:
if ( (Kirgo_Charged == TRUE) && (Npc_GetDistToWp (hero,"OCR_ARENABATTLE_TRAIN") < 500) )


Ist eine Dialog-Bedingung. Wenn die Variable 'Kirgo_Charged' TRUE (also wahr) ist (wird TRUE gesetzt, wenn du ihn herrausforderst) und der Held auf weniger als 500 Einheiten an den Wegpunkt 'OCR_ARENABATTLE_TRAIN' ran ist dann passiert das was danach steht (in dem Fall greift er an).
20.03.2004, 14:25 #21
AlexVornam
Beiträge: 1.727

Damit wird abgefragt, ob man Kirgo zum Kampf herausgefordert hat und ob der Held in der Arena ist.
20.03.2004, 15:43 #22
aragorn_16
Beiträge: 529

OK, danke für die Antworten.
21.03.2004, 13:30 #23
aragorn_16
Beiträge: 529

Wo kann man denn eintragen, welche Waffe der Held schmieden soll.
Er schmiedet ja das grobe Schwert. Aber wenn man will, dass er mit anderen Zutaten noch andere Waffen schmiedet, wie macht man das dann?
21.03.2004, 14:29 #24
Neely
Beiträge: 133

Hab ich auch schon gesucht aber anscheinend sind die Mobsis intern gescriptet, deswegen wird das leider nicht gehen. Lasse mich aber gern eines Besseren belehren (ich hoffe sogar darauf ;)).
21.03.2004, 16:51 #25
HornOx
Beiträge: 1.458

steht in humans.mds
quote:
// Sharpen - useWithItem = BS_SWORD_BLADE
ani ("t_BSSHARP_Stand_2_S0" 1 "s_BSSHARP_S0" 0.1 0.0 M. "Hum_BSSharp_M01.asc" F 0 2)

ani ("s_BSSHARP_S0" 1 "s_BSSHARP_S0" 0.0 0.0 M. "Hum_BSSharp_M01.asc" F 3 3)
ani ("t_BSSHARP_S0_2_Stand" 1 "" 0.0 0.1 M. "Hum_BSSharp_M01.asc" R 0 2)

ani ("t_BSSHARP_S0_2_S1" 1 "s_BSSHARP_S1" 0.0 0.0 M. "Hum_BSSharp_M01.asc" F 4 14)
{
*eventTag (4 "DEF_INSERT_ITEM" "ZS_LEFTHAND")
}

ani ("s_BSSHARP_S1" 1 "s_BSSHARP_S1" 0.0 0.0 M. "Hum_BSSharp_M01.asc" F 15 80)
ani ("t_BSSHARP_S1_2_S0" 1 "s_BSSHARP_S0" 0.0 0.0 M. "Hum_BSSharp_M01.asc" R 4 14)
{
*eventTag( (14 "DEF_EXCHANGE_ITEM" "ZS_LEFTHAND" "ItMw_1h_Sword_01")
*eventTag (4 "DEF_REMOVE_ITEM")
}

Seite 1 von 2  1  2