Registrierung Häufig gestellte Fragen Suche Mitgliederliste Portal - Planet Skyrim.de Kalender Moderatoren und Administratoren Startseite
Morrowind&OblivionForum.de - PMM-Projects Network » The Elder Scrolls III: Morrowind » Morrowind Editor Help » Editor Archiv » Script-Meister gesucht ( Schlachtscript ) » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
kahuna
Bard




Dabei seit: November 2002
Geschlecht:
Herkunft: Schweiz
Beiträge: 36

kahuna ist offline
  Script-Meister gesucht!!!Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

big problem:

ich will (wenn möglich) eine schlacht in meinem mod ablaufen lassen

wie mache ich dass mehrere NPCs gegeneinander fighten und zwar nicht nur 3 oder 4. es sollten schon ein paar mehr sein! habs schon mal probiert aber dann hat sich jeder NPC nur auf einen gegner gestürtzt und der sieger ist dann nur noch herumgestanden, oder niemand hat gekämpft!

nun seit ihr gefordert meister des scripts...

25.11.2002, 20:46 Profil von Füge  deiner Freunde-Liste hinzu Email an kahuna senden Füge kahuna in deine Contact-Liste ein
mOmOx
Schlachtaffe




Dabei seit: August 2002
Geschlecht:
Herkunft: Kiel, SH
Beiträge: 484

mOmOx ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Haben die NPC's die angreifen sollen alle dieselbe ID ? hmmm, das prob hatte ich auhc, wollte, dass 4 leutz mit derselben ID jemanden angreifen, hat aber net gefunzt, es hat immer nur einer angegriffen. ne lösung wäre, alle npc's mit verschiedenen ID's zumachen ... aber des ist zu stressig also hab ich mir da was andres gedacht ::

Vorher ne Global mit dem Namen StartBattle machen

1. Script auf den normalen Schlacht-NPC

begin NpcBattle

if ( StartBattle == 1)
StartCombat "FeindID"
SetFight 100
endif

end


2. Ein Objekt erstellen, bei dessen aktivierung die schlacht beginnen soll.

begin ItemBattleStart

short done

if ( OnActivate == 1 )
if ( done != 1 )
set StartBattle to 1
set done to 1
endif
endif

end


DIESE ANGABEN SIND WIE IMMER OHNE GEWÄHR


__________________
Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren.

25.11.2002, 21:40 Profil von Füge  deiner Freunde-Liste hinzu Email an mOmOx senden
kahuna
Bard




Dabei seit: November 2002
Geschlecht:
Herkunft: Schweiz
Beiträge: 36

kahuna ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

hmmm.... frage: für was sind den diese vielen sets?

26.11.2002, 09:15 Profil von Füge  deiner Freunde-Liste hinzu Email an kahuna senden Füge kahuna in deine Contact-Liste ein
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9269

Garak ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

das set done to 1 bewirkt, dass das Aktivierungsskript nur ein mal startet, indem es die lokale Variable done von ihrem ausgangswert 0 (haben prinzipiel alle lokalen Variablen) auf 1 setzt. Dadurch verhindert die If - Abfrage eine weitere Abarbeitung des Codes.

set startbattle to 1 setzt die Globale Variable startbattle, die man, wie mOmOx schon sagte vorher definieren muss (wobei man aber auch einen Startwert angeben kann) auf 1 und wirkt damit als Signal an das andere Script, denn auf Globals können alle skripte direkt zugreifen.

setfight 100 setzt die A(rtificial)I(nteligence)-Einstellung des aufrufenden Actors (NPC/Kreatur) auf 100 = Spieler Angreifen, sobald er in Detektionsweite kommt. Desshalb bin ich mir auch nicht sicher ob das mit dem Kämpfen untereinander funktioniert - eventuell ist eine kompliziertere Struktur mit getdeadcount notwendig - und doch wieder mit eigenen ID's - damit könnte man aber auch bevorzugte Ziele definieren - über die reihenfolge der abfragen!

Nehmen wir also an, wir haben eine Prügelei zwischen den NPCs ParteiA01 - ParteiA10 und ParteiB01 - ParteiB02
dann bräuchten wir auf den Damen und Herren A das script

begin NpcBattleA

short enemynow

if (gethealth > 0) ; also falls der ausführende NPC noch lebt
if ( StartBattle == 1)
if (getdeadcount ParteiB01 != 0) ;also wenn der gegner noch lebt
if(enemynow !=1) ;und man nicht schon gegen ihn kämpft
stopcombat ;nur zur Vorsicht, damit das ziel auch wirklich gewechselt wird
startcombat ParteiB01
set enemynow to 1
return ; ausstieg aus dem Skript für diesen frame, wir haben unser Ziel ja
endif ;zu enemynow
elseif (getdeadcount ParteiB02 != 0)
if(enemynow !=2)
stopcombat
startcombat ParteiB02
set enemynow to 2
return
endif
elseif ....
... ;so weiter, bis charakter ParteiB10
else
set Startcombat to 0 ; Kampf vorbei, nur noch A#ler am leben
; hier z.B. ein Journaleitrag partei A hat gewonnen
endif ; zur Gegnerabfrage
endif ; zur Startcombatabfrage
endif ; zur lebichnoch-Abfrage

end

Das selbe Script, mit A und B vertauscht auf die Andere Partei gelegt, dann dürften die sich bis aufs Messer bekämpfen. Wenn Du Lust und Musse hast, kannst Du Versionen davon für jeden einzelnen erstellen, damit die Reihenfolge der Gegnerwahl etwas variiert...
immer den nächststehenden Gegner anzugreifen erfordert ein
set dist01 to getdistance ParteiB01 usw
(Mit einem Satz lokaler Variablen dist01 -dist 10)für alle noch lebenden Gegnern (bei Toten am Besten auf einen Sehr hohen wert setzen) und eine sequenz von vergleichen um die kürzeste Distanz zu ermitteln und den Gegner dann als aktuellen zu wählen - am besten aber nur dann, wenn der aktuelle Gegner tod ist sonst werden einige unschlüssig werden...

Hoffe, Du hast noch keine Kopfschmerzen



__________________
drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen

Dieser Beitrag wurde von Garak am 26.11.2002, 10:36 Uhr editiert.

26.11.2002, 10:07 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
kahuna
Bard




Dabei seit: November 2002
Geschlecht:
Herkunft: Schweiz
Beiträge: 36

kahuna ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

nene ich bin gerade in der schule (informatikunterricht in C) und es ist so langweilig, dass ich halt in der zwischenzeit ein wenig scripte für meinen mod...

jedenfalls fettes dangeschön. hat mir sehr geholfen.

26.11.2002, 11:10 Profil von Füge  deiner Freunde-Liste hinzu Email an kahuna senden Füge kahuna in deine Contact-Liste ein
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Design by: Garak - Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR