World of Gothic Archiv
> NWN-Hilfe Scriptsammlung |
|
18.07.2002, 01:54 | #26 | ||||
RaGe666 Beiträge: 350 |
Danke! Die werd ich mir wohl mal rauskopieren! :) |
||||
20.07.2002, 13:09 | #27 | ||||
Jaraen Beiträge: 12 |
*bump* |
||||
22.07.2002, 20:42 | #28 | ||||
Jaraen Beiträge: 12 |
*bump again* macht das dingen mal sticky ;) |
||||
23.07.2002, 14:54 | #29 | ||||
Omega Darkblade Beiträge: 257 |
Naja zu groß zum kopieren also ma eben ein Link :) http://nwvault.ign.com/Files/script...158289795.shtml |
||||
25.07.2002, 11:34 | #30 | ||||
Mish Beiträge: 7 |
3 Fragen
Aber vorab danke für diese super Scriptsammlung und bitte bitte weiter updaten - ist genau das Richtige für Idies wie mich hihi. Nun zu den Fragen: 1. betr. Script: vor und nach dem Reden frei laufen was muss ich eingeben, damit er statt frei laufen die walkpoints weiter abläuft oder macht er das sowieso? 2. Hab in diesem Forum öfter mal was über einen FAQ-Thread gelesen - finde ihn aber nicht (sorry - bin bissi blind) kann mir da jemand nen link geben? 3. Gibts hier keinen, der so wichtige Threads wie diesen hier sticken kann? hehe Gruß - Mish (ein Frischling, der Suchenfunktion zwar kennt aber der FAQ nicht suchen lassen kann weil dieses Programm hier mind. 4 Buchstaben will und welchen Buchstaben soll ich da nu noch zufügen? ) |
||||
25.07.2002, 11:44 | #31 | ||||
Gawain15 Beiträge: 1.084 |
Willkommen im Forum Mish zu 1.: if (IsInConversation(OBJECT_SELF)) ActionWait (6.0); else WalkWayPoints(); zu 2.: Kleine FAQ (klick mich) zu 3.: Die Mods kucken schon hier rein, glaub aber die Threads sind kein Sticky wert (jedenfalls in deren Augen :) ) Ich hab die beiden Threads aber lang nicht mehr geupdatet... könnt ich morgen mal wieder machen :) |
||||
25.07.2002, 11:49 | #32 | ||||
Mish Beiträge: 7 |
uiuiui
STAUN Das war aber ne promte Antwort - Danke Dir - und ja immer fleißig updaten, und immer schön beischreiben was wo eingefügt werden muß, da mit kleine dumme Mädchen wie ich das auch benutzen können hihi. Das mit dem WalkWay hätt ich mir ja irgendwie denken können (s. Dummerl hehe)! Danke auch für den Link - Mish EDIT: Hmmmm - nu läuft er zwar wieder nach dem ansprechen, aber er läuft nur noch zwischen 2 WP hin und her - was mach ich falsch NOCHN EDIT: Das Schilderscript funktioniert leider nicht. |
||||
25.07.2002, 19:15 | #33 | ||||
Gawain15 Beiträge: 1.084 |
äh yo... Schilderscript is gefixt... wegen dem hin- und herlaufen: sollte er das nicht? Naja kannst mich ja im ICQ Adden 159971754 oder per Mail: [url=mailto:support@ribenschi.de">support@ribenschi.de dann müllen wir den Thread nicht so zu :) Gillt auch für alle anderen, lieber mich im ICQ oder per Mail ansprechen damit der Thread hier keine 5 Seiten lang wird :) |
||||
26.07.2002, 14:56 | #34 | ||||
criz Beiträge: 39 |
Hab nun meine Scripts besser dokumentiert und hier das ergebnis: Pulverfass Ein explodierendes Fass Pentagramm Zeichnet ein feuriges Pentagramm Falle: Magischer Feuerring Eine exotische Falle für z.B.: eine Truhe criz |
||||
30.07.2002, 22:32 | #35 | ||||
Omega Darkblade Beiträge: 257 |
Hab da ma ne kleine bitte´an die leude die ihre scripts hier posten. Schreibt bitte immer dazu ob ihr einverstanden seit ob diese von Seite oder auch dem FB benutzt/kopiert werden dürfen :) |
||||
05.08.2002, 17:19 | #36 | ||||
Xans Beiträge: 50 |
Hi Leute, ich hab da ein problem damit, dass ein npc den spieler ansprechen soll, sobald er ihn sieht. Also ist das script hier definitiv richtig? quote: Wenn ich das nämlich beim OnPerception Script einfüge, passiert nichts (muss ich das andere Zeug, das vorher in dem Script steht rauslöschen?) PS: Der Spieler startet schon ziemlich nah an dem NPC. Kann der Fehler auch daran liegen? |
||||
06.08.2002, 20:57 | #37 | ||||
palme Beiträge: 466 |
Ich habe mit Hilfe der lieben Leuten auf #nwndev.ger das Wächter beim Ausruhen Script einwenig "verbessert": quote: Beim Versuch zu rasten kommt die Wache, sagt erst dann das den SpeakString und läuft dann wieder zum Ursprungsplatz zurück. Ich hoffe ich konnte einigen damit helfen :) |
||||
12.08.2002, 12:30 | #38 | ||||
DevilDawn Beiträge: 1 |
Re: Scriptsammlung
quote: Ich will ja nicht ketzern :D aber das ist das schlimmste Stück Code das mir je untergekommen ist. Es geht wesentlich eleganter (und das compilierte Script ist auch schneller) mit switch { }: void main() { int nRand = random(5); string sSpeakStr switch (nRand) { case 0 : sSpeakStr="Beispiel1"; break; case 1 : sSpeakStr="Beispiel2"; break; case 2 : sSpeakStr="Beispiel3"; break; case 3 : sSpeakStr="Beispiel4"; break; case 4 : sSpeakStr="Beispiel5"; break; } // End Switch() ActionSpeakString (sSpeakStr, TALKVOLUME_TALK); } // End main() 1. Deutlich übersichtlicher 2. Schneller in der Ausführung Ich poste das mal hier hin weil die meisten switch vermutlich gar nicht kennen. |
||||
13.08.2002, 20:53 | #39 | ||||
NEO[HART] Beiträge: 18 |
So dürfte es doch auch gehen: void main() { switch(Random(3)) { case 0: ActionSpeakString("Text1"); break; case 1: ActionSpeakString("Text2"); break; case 2: ActionSpeakString("Text3"); break; } } |
||||
21.08.2002, 13:03 | #40 | ||||
Paleswift Beiträge: 154 |
Coole Scripte das alles.. werde bei Gelegenheit auch noch welche reintuen, sobald ich sie fertig habe ;) |
||||
08.10.2002, 19:44 | #41 | ||||
Jan_Jansen Beiträge: 6 |
Tut sich hier nix mehr...?
servus, leute! würde mich mal interessieren, ob es hier in bälde mal wieder ein paar neue scripte gibt. es hat sich ja nun seit über nem monat nix mehr getan. das gleiche gilt für das faq. ich gehöre noch zu den anfängern was scripten angeht und bin somit für jede hilfestellung und denkanstösse jeder art äußerst dankbar. wollte nebenbei den leuten danken, die sich hier die mühe gemacht haben und diese scriptsammlung und das FAQ hier auf die beine gestellt haben. hat mir echt weitergeholfen. in diesem sinne hoffe ich, daß die arbeit hier bald fortgesetzt wird. |
||||
10.10.2002, 23:41 | #42 | ||||
Clouty Beiträge: 39 |
Hat zwar eigentlich jeder dieses Script der auch NWN besitzt, aber es wollen bestimmt nicht alle erst die einzelnen Module durchforsten, also: Transformiert einen NPC bei Nacht zu einem Werwolf und bei Tag zurück: //:://///////////////////////////////////////////// //:: Name: Werewolf Transformation //:: FileName: werewolf_heart //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Transform any NPC into a Werewolf at night and back to the original NPC by day. */ //::////////////////////////////////////////////// //:: Created By: VorpalBlade //:: Created On: 7/25/02 //::////////////////////////////////////////////// // Create an NPC and a Werewolf template with the // Creature Wizard and add this to the OnHeartbeat // event of both. Then name the Tag of the NPC with // ResRef of the Werewolf and the Tag of the Werewolf // with the ResRef of the NPC. Make sure the Name of // the Werewolf is "Werewolf". // Do this for each NPC/Werewolf pair you would like // in your module, so there is a template for each // NPC and Werewolf. // Any changes you make to these must be made to the // templates or they will be lost after the // transformation. void ChangeWerewolf(object oObject, string sTemp); void ChangeTo(string sTemp, location lLoc); void main() { int bDay = GetIsDay(); string sMyName = GetName(OBJECT_SELF); string sChangeTo = GetTag(OBJECT_SELF); object oMe = OBJECT_SELF; // If I'm a man and its night or I'm a WW and it is day. if (((sMyName != "Werewolf") && (!bDay)) || ((sMyName == "Werewolf") && (bDay))){ AssignCommand(GetModule(), ChangeWerewolf(oMe, sChangeTo)); // Sent to module. } // Sent to module because the DestroyObject(OBJECT_SELF) command // Would kill the script before the other can be created. } void ChangeWerewolf(object oObject, string sTemp) { // Save the location of the Man/WW and destroy it and spawn it's counterpart. effect eVis = EffectVisualEffect(VFX_FNF_HOWL_MIND); location lLoc = GetLocation(oObject); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, lLoc, 2.0f); DestroyObject(oObject); DelayCommand(0.5f, ChangeTo(sTemp, lLoc)); } void ChangeTo(string sTemp, location lLoc) { CreateObject(OBJECT_TYPE_CREATURE, sTemp, lLoc); effect eVis = EffectVisualEffect(VFX_COM_CHUNK_RED_SMALL); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, lLoc, 2.0f); } Gruß, Clouty |
||||
01.11.2002, 22:56 | #43 | ||||
Chaos_Striker Beiträge: 4 |
Auch mak ein Script von mir! code\: |
||||
16.12.2002, 10:14 | #44 | ||||
Orion Guardian Beiträge: 34 |
ich bin dumm und hab bei deinstallen von nwn um danach neuzuinstalieren den Text falsch gelesen und aus versehen meine Module und saves gelöscht, darum bräuchte ich ein script mit dem man an einen charakter ep veteilen kann. 1. weil das in einem Modul von mir war und 2. weil ich nun wirklich keine lust habe nwn nochmal mit 12 chars durchzuspielen. |
||||
13.03.2003, 01:12 | #45 | ||||
Frani Notteel Beiträge: 1 |
Schaue doch mal hir rein http://nwvault.ign.com/Files/module...158289780.shtml ist zwar kein Script aber sollte dir dennoch weiter helfen. |
||||
14.04.2003, 14:29 | #46 | ||||
Khybor Beiträge: 9 |
so ich hab mir jetzt den ganzen thread komplett durchgelesen, hab das scriptutorial auf der site gelesen, aber ich krieg es dennoch einfach nich gebacken das ich erfahrungspunkte von einem NPC bekomme. ich bin in sachen modulen ein totaler nub und in sachen dazugehöriger scripts bin ich ein noch viel größerer nub. ich hab zwar schon ein thread zu meinen fragen aufgemacht aber da postet ja irgendwie keiner. also was ich genau wissen will: wie krieg ich das hin das ich mit nem NPC laber, der mir nen quest gibt, ich für den z.B. ein amulett besorgen soll, ich dann mit dem amulett zu dem zurückkehre, der das auch merkt, sich bei mir bedankt und mir gold und EXP gibt? ich habs ja schon so weit hingekriegt das er mir beim 1. gespräch den auftrag gibt und ich hab auch schon das amulett das ich dem geben muss. aber wie geht der rest? das krieg ich einfach nich gebacken!!! bitte helft mir! ich bin noch son kleiner nub und muss noch viel lernen. danke im voraus. |
||||
01.07.2004, 12:40 | #47 | ||||
Deathlord Beiträge: 513 |
Lets go on
Ich dachte dieser Thread hier ist sehr nützlich, aber er wird ja leider nicht gerade häufig benutzt (darf er aber, wie ich gehört habe). Außerdem ist er ja schon sticky. Deshalb poste ich hier mal ein paar kleine Skripts. Ich hoffe dass sich auch ein paar andere Leute aufraffen können mal wieder was hier rein zu posten. --Der NPC soll eine Animation ausführen (im Gesprächs-Editor gibts ja leider nicht alle) Das Skript kann man z.B. in einem Gespräch oder auch bei OnHeartbeat einfügen. Hier erstmal eine Liste mit allen Animationen (hat zwar jeder, aber vielleicht weiß er ja nicht wo);) ANIMATION_FIREFORGET_BOW ANIMATION_FIREFORGET_DODGE_DUCK ANIMATION_FIREFORGET_DODGE_SIDE ANIMATION_FIREFORGET_DRINK ANIMATION_FIREFORGET_GREETING ANIMATION_FIREFORGET_HEAD_TURN_LEFT ANIMATION_FIREFORGET_HEAD_TURN_RIGHT ANIMATION_FIREFORGET_PAUSE_BORED ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEA ANIMATION_FIREFORGET_READ ANIMATION_FIREFORGET_SALUTE ANIMATION_FIREFORGET_STEAL ANIMATION_FIREFORGET_TAUNT ANIMATION_FIREFORGET_VICTORY1 ANIMATION_FIREFORGET_VICTORY2 ANIMATION_FIREFORGET_VICTORY3 ANIMATION_LOOPING_CONJURE1 ANIMATION_LOOPING_CONJURE2 ANIMATION_LOOPING_DEAD_BACK ANIMATION_LOOPING_DEAD_FRONT ANIMATION_LOOPING_GET_LOW ANIMATION_LOOPING_GET_MID ANIMATION_LOOPING_LISTEN ANIMATION_LOOPING_LOOK_FAR ANIMATION_LOOPING_MEDITATE ANIMATION_LOOPING_PAUSE ANIMATION_LOOPING_PAUSE_DRUNK ANIMATION_LOOPING_PAUSE_TIRED ANIMATION_LOOPING_PAUSE2 ANIMATION_LOOPING_SIT_CHAIR ANIMATION_LOOPING_SIT_CROSS ANIMATION_LOOPING_SPASM ANIMATION_LOOPING_TALK_FORCEFUL ANIMATION_LOOPING_TALK_LAUGHING ANIMATION_LOOPING_TALK_NORMAL ANIMATION_LOOPING_TALK_PLEADING ANIMATION_LOOPING_WORSHIP ANIMATION_PLACEABLE_ACTIVATE ANIMATION_PLACEABLE_CLOSE ANIMATION_PLACEABLE_DEACTIVATE ANIMATION_PLACEABLE_OPEN Sie werden alle als int verwendet. Wahrscheinlich wird man einige davon nie brauchen, aber ich habe sie der Vollständigkeit halber mit reingenommen. Die Bedeutung sollte nicht schwer zu erraten sein (Englischkentnisse) Man kann sie zum Beispiel so in ein Skript einbauen: void main { ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT, 1.0, 0.0); } Man kann ANIMATION_FIREFORGET_TAUNT natürlich durch irgendwas ersetzen. Das hier wäre z.B. Provozieren. Wenn das in OnHeartbeat eingefügt wird, wird der NPC z.B. alle 6 Sekunden die Provozieren-Animation abspielen. Wenn ihr wissen wollt was die Zahlen hinter dem Komma heißen, schaut im Skript-Editor in der Hilfe nach :D --NPC soll etwas angreifen (z.b. eine Übungspuppe): Das Skript bei OnSpawn einfügen, wenn er es nur einmal machen soll, bei OnHeartbeat, wenn er wieder damit anfangen soll, selbst wenn er gestört wurde. Achtung: Zu viele OnHeartbeat Befehle gehen auf die Spiel Performance! void main() { object oAim = GetObjectByTag("*Hier Objektname einfügen*"); ActionAttack(oAim, FALSE); } --Gesinnung des Spielers soll sich ändern: void main() { AdjustAlignment(GetPCSpeaker(), ALIGNMENT_EVIL, 1); } Dieses Skript geht nur in Gesprächen (wegen GetPCSpeaker)! Statt ALIGNMENT_EVIL kann man z.B. auch folgende einsetzen: ALIGNMENT_CHAOTIC ALIGNMENT_EVIL ALIGNMENT_GOOD ALIGNMENT_LAWFUL ALIGNMENT_NEUTRAL In die eingefügt Richtung wird die Gesinnung verschoben, und zwar um die Zahl nach dem Semikolon hinter ALIGNMENT_EVIL, also in diesem Fall um 1. Ich habe jezt leider keine Zeit mehr weiter zu schreiben, ich wollte einfach nur dem Thread mal wieder zum Leben erwecken. :D Hoffentlich habe ich hier keine Fehler reingemacht. Postet doch auch mal wieder ein paar Skripte! Grüße, Deathlord |
||||
11.07.2004, 22:08 | #48 | ||||
$tormRider Beiträge: 208 |
Dann hab ich jetzt auch mal zwei scripts Als erstes mal einen Lavafluss wie in der HdU Kampagne: code\: oArea ist das Gebiet, das mit Lava überdeckt werden soll. nSpalte und nReihe geben die Größe des Gebietes an. Bei einem 5x8 großen Gebiet wäre nSpalte = 5 und nReihe = 8. fHöhe ist die höhe, in der das Gebiet überdeckt werden soll. Um wie in der Kampange einen Lavafluss zu erschaffen muss für fHöhe 0.1 eingesetzt werden(das gilt nur, wenn der fluss nicht irgendwie angehoben ist) Außer X2_TL_GROUNDTILE_LAVA gibt es noch X2_TL_GROUNDTILE_CAVEFLOOR X2_TL_GROUNDTILE_GRASS X2_TL_GROUNDTILE_ICE X2_TL_GROUNDTILE_LAVA_FOUNTAIN X2_TL_GROUNDTILE_SEWER_WATER X2_TL_GROUNDTILE_WATER Einen zufälligen Ort in einem Gebiet auswählen: code\: x' ist der höchste wert für x +1. Bei y' ist es das gleiche. Links unten im Toolset steht immer der x- und y- Wert(Man muss halt ein bisschen mit der Maus rumprobieren :D ). Für Gebiet das aktuelle gebiet einsetzten Ist ganz nütlich um Feuerbälle einschlagen zu lassen(immer auf die gleiche Stelle ist doch langweilig ) Wenn man sich nicht auf das ganze Gebiet beziehen will: code\: xmin ist der minimale Wert für x und xmax der maximale. Um einfach Zwischensequenzen selbst zu erstellen eignet sich am besten Gestalts Cutscene Script. Ein Tutorial müsste auch mit dabei sein :) |
||||
29.10.2004, 14:22 | #49 | ||||
Freddy_XIII Beiträge: 5 |
Moinsen. Ich hätte mal ne kleine Frage zu dem Werwolfscript, b.z.w. allgemein zu Objekt löschenund wieder erschaffen. Im Werwolfscript steht folgende Zeile: CreateObject(OBJECT_TYPE_CREATURE, sTemp, lLoc); 1. Was ist mit OBJECT_TYPE_CREATURE gemeint? Müsste ja das Objekt sein, in das verwandelt wird. Soll ja ein Integer sein, also eine Zahl. Ich hab das jetzt folgendermaßen gemacht: location lLoc = GetLocation(OBJECT_SELF); object oTarget= GetObjectByTag("Objektkennzeichnung"); int iObj= GetObjectType(oTarget); string sTemp; CreateObject(iObj, sTemp, lLoc); ActionDoCommand(DestroyObject(OBJECT_SELF)); Beim Kompilieren kreig ich keinen Fehler, aber funzen tuts trotzdem nicht. Das Objekt verschwindet, aber es entssteht kein neues. 2. Was macht sTemp eigentlich? Bei meinem Script hatte es keinen Wert und im Werwolfscript auch nicht, soweit ich das gesehen habe. Kann mir jemand helfen? |
||||
06.11.2004, 10:36 | #50 | ||||
Deathlord Beiträge: 513 |
1. Das Bezeichnet die Art eines Objekts: Also ist beispielsweise OBJECT_TYPE_CREATURE eine Kreatur, und OBJECT_TYPE_ITEM ein item usw. Du kannst eine volle Liste unter "Konstanten" im Skript-Editor einsehen, suche einfach nach OBJECT_TYPE und es spuckt dir die volle Liste aus. (Fast?) Alle Konstanten gelten übrigens als Integer. 2. Was es in dem Skript macht, kann ich dir gerade auch nicht sagen, aber sTemp ist einfach eine String-Variable. Generell zu deinem Problem: Das Verschwindenlassen klappt ja schon, und was das Kopieren anbelangt, versuche es mal mit "CopyObject()", das hat bei mir funktioniert. Es geht aber afaik nur mit Kreaturen oder Items. Für den genauen Syntax schaue einfach im Skript Editor nach. Hoffe ich konnte dir helfen.:) Grüße, Deathlord |
||||
|