Modderecke > Mapping

Worldbuilder Fragen

<< < (55/492) > >>

Gnomi:

--- Zitat ---Dass der genauso ist wie ein normaler Creep? Exakt so kann man  es nicht machen,
--- Ende Zitat ---
Naja, das einzige, was nicht funktioniert ist, dass die Einheiten drum herum stehen und nicht laufen, weil das laufen Bugs ergeben wüürde oder DEUTLICH schwerer und komplizierter werden würde.^^
Obwohl... mir fallen grad ein paar Scripts ein, aber das wären dann pro Einheit nochmal um die 10 weitere scripts :D


--- Zitat ---aber man kann es so ähnlich scripten(Ich sage nur was man machen soll, nicht die Befehle, die weiß ich nicht auswendig):

--- Ende Zitat ---
Extrastunden, man muss alle Scripts auswendig können :P


--- Zitat ---Ein Gebäude als "Basis" benannt (Hier a)spawnen(Da dürfen aber keine Crepps rauskommen).

--- Ende Zitat ---
Spawnen? Platzieren oder setzen wären hier wohl besser :P
Also einfach in der Map hinsetzen.^^


--- Zitat ---Einen Waypoint dorthin setzen, wo dann die  Basis ist und einen Pfad so, dass dieser durch den Eingang führt und dann um das Gebäude rum.(Als Hilfe würde ich das Gebäude platzieren und später wieder löschen)
--- Ende Zitat ---
Warum zum Teufel das Gebäude löschen?:D

--- Zitat ---Die Creeps alle 5(20?30?) Sekunden Spawnen und mit Attackmove den Pfad folgen lassen.
--- Ende Zitat ---
Wenn du das so machst kommen einmal die Viecher und bleiben dann draußen stehen.^^
Und sie rennen unendlich lang hinter allen anderen hinterher ;)

--- Zitat ---Zum Wiederaufbau:
Wenn das Leben von a=0 ist=>Ruine Spawnen(b)
Wenn Leben von b größer ist als 0 und 30(40?50?) Sekunden vergangen sind, b zerstören und a Spawnen.
--- Ende Zitat ---
Das passt, auch wenn ich einfach sagen würde:
***IF***
 'a' is finished dying
***THEN***
Spawn Unit named 'b' of Type 'was auch immer' at waypoint 'Waypointwieduihngenannth ast'
AND Set Timer 'rebuild' to expire in 32 seconds.

***IF***
Timer 'rebuild' is equal than 2
***THEN***
Spawn Unit 'a' of Type 'dein Gebäude' at waypoint 'Waypointwieduihngenannth ast'
AND Stop Timer 'rebuild'


***IF***
Unit 'b' has been destroyed
***THEN***
Stop Timer 'rebuild'



Damit es wirklich wie ingame wirkt bedarf es leider deutlich mehr Scriptingarbeit.

Ich mache das ganze Mal ohne Ruinen und nehme als Gebäude eine MordorTaverne und als Unit MordorCorsair.
Zudem lass ich sie gleich außerhalb des Gebäudes spawnen, da das andere nur ein kleiner Schönheitseffekt wäre, den ich hier Mal nicht beachte (würde außerdem nochmal deutlich mehr Arbeit machen.)


Ich sage Mal, dass 2 Korsaren patroillieren, für mehr ist das Prinzip das gleiche.

Als erstes setzt man eine Mordortaverne auf eine Map. Diese benenne ich "Creepbuilding".
Vor die Tür setze ich 2 Waypoints und benenne sie "Spawn1" und "Spawn2".
Zusätzlich setze ich in die Taverne 3 waypoints, die ich "Treasure1", "Treasure2" und "Treasure3" nenne.


Jetzt kommen die Scripts:

***IF***
Unit 'CorsairCreep1' has finished dying
***THEN***
Set timer 'ReviveCorsairCreep1' to expire random between 20 and 40 seconds. (Anmerkung: Es geht natürlich auch: Set timer 'Revivecorsaircreep1' in 20 seconds, aber ich mag das mit Random lieber :P )


***IF***
Unit 'CorsairCreep2' has finished dying
***THEN***
Set timer 'ReviveCorsairCreep2' to expire random between 20 and 40 seconds.

So, die beiden Scripts erledigen jetzt den Start für die Wiederbelebung, aber das wrüden sie nur ein einziges Mal machen. Man muss die Scripts nochmal öffnen (oder gleich am Anfang machen) und den Hacken vor "Deactivate upon success" wegmachen.
Nun weiter im Text.^^Die Korsaren werden wiederbelebt:

***IF***
timer 'ReviveCorsairCreep2' is equal than 2 seconds
***THAN***
Stop timer 'ReviveCorsairCreep2'
AND Spawn Unit 'CorsairCreep2' of Type MordorCorsair at waypoint 'Spawn 2'
AND Unit 'CorsairCreep2' begins guarding at current location


***IF***
timer 'ReviveCorsairCreep1' is equal than 2 seconds
***THAN***
Stop timer 'ReviveCorsairCreep1'
AND Spawn Unit 'CorsairCreep1' of Type MordorCorsair at waypoint 'Spawn 1'
AND Unit 'CorsairCreep1' begins guarding at current location


Das bewirkt jetzt, dass die wiederbelebt (neu gespawnt) werden und sofort beginnen ihr Gebiet zu verteidigen - sie rennen also nicht unendlich lang hinterher.
Auch hier muss der Hacken vor "Deactivate upon success" weg.

Bald haben wir es geschafft, das war schon ein großer Teil.^^
Jetzt kommen noch 2 Dinge:

1. das erste spawnen.
Wie man oben sieht muss eine Einheit sterben, damit andere gespawnt werden.
Ich mache dann einfach immer ein Script, das lautet:

***IF***
True
***THEN***
Set timer 'Revivecorsaircreep1' in 3 seconds
AND Set timer 'Revivecorsaircreep2' in 3 seconds


Hier muss der Hacken bleiben, da dies nur einmal geschieht.

Zusätzlich muss noch die Belohnung für das zerstören einprogrammiert werden und das spawnen gestoppt werden.

***IF***
Unit 'Creepbuilding' is finished dying
***THEN***
Deactivate Script bla
AND Deactivate Script blabla
AND Deactivate Script bla2
AND Deactivate Script blabla2
AND Spawn Unit of Type Treasure at Waypoint 'Treasure1'
AND Spawn Unit of Type Treasure at Waypoint 'Treasure2'
AND Spawn Unit of Type Treasure at Waypoint 'Treasure3'



bla, blabla, bla2, blabla2 sind die 4 oberen scripts, die das wiederbeleben regeln, je nachdem wie du sie benannt hast.

Für jede neue Einheit kommen eben mehr Scripts dazu.^^

Wenn du willst, dass sie im Gebäude starten musst du sie in einem Spawnpunkt im Gebäude spawnen lassen, dann zuerst einen movebefehl aus dem gebäude raus machen, wenn sie dann draußen sind den Befehl geben, dass sie von einem bestimmten waypoint (Spawn1 etc.) aus das Gebiet bewachen sollen. (Guard from Waypoint)

Wenn du willst, dass sie laufen darfst du keinen Guardbefehl benutzen, sondern musst einen waypointpath machen, der in sich selbst endet, sodass sie unendlich lang drum herum rennen und dann den Befehl "Attackmove at waypointpath" benutzen.
Hier ist das Problem, dass sie Einheiten unendlich lang hinterher laufen, das heißt man muss noch ständig für jede Einheit den Abstand zum Gebäude berechnen lassen und wenn der Größer als ??? ist, dann gibt man ihr den Guardbefehl von der ORkhöhle aus (sodass sie zurückläuft) und setzt einen timer auf 5 sekudnen und gibt dann wieder einen attackmovebefehl um die orkhöhle rum.
Dadurch läuft der erst einmal zurück (und kann nicht weiter weg laufen), greift aber weiterhin Feinde an. Nach 5 Sekunden sollte er wieder nah genug sein und man macht den Attackmove wieder. Wenn er bei der Zeit immer noch nah am Rand steht und wieder raus rennt tritt das erste Script wieder in Kraft. (man muss natürlich immer Endlosscripts machen).

Zusätzlich werden sich manche fragen:
Warum sagt der Kerl:
IF Timer is equal than 2 THAN stop timer.

Kann man nicht einfach sagen: If timer has expired?

Antwort:
Nein :P
Wie das schon heißt: If timer HAS expired...
Also wenn der Timer einmal abgelaufen ist, dann ist es für die Scripts scheiß egal, ob der wieder zurückgesetzt wird, er gilt als abgelaufen, da kann er noch so weit zurückgesetzt werden.^^ Man muss ihn also vor dem ablaufen bremsen und wieder zurücksetzen.^^

Ich hoffe es liest sich jemand alles durch und ich konnte helfen :D















@ Beorn:
Nein, weil da kann man nicht drüber laufen, man muss eine unsichtbare Textur drunter setzen, aber dann kann niemand mehr unten drunter durch laufen ;)

MCM aka k10071995:
Na ja, der Meister kann es halt doch besser als ich. :D
Aber Warum sollte ich die Befehle auswendig kennen? Bringt doch gar nichts.

Und ich wusste gar nicht, dass man benannte Einheiten platzieren kann. Ist das ein extra Feld im WB?



--- Zitat ---Warum zum Teufel das Gebäude löschen :D
--- Ende Zitat ---

Weil nach meiner Methode das Gebäude gespawnt wird und wenn du es doch platzierst, hast du 2 Gebäude, die übereinander stehen.

Na ja, die ganze Frage hat mir nochmal mehr Script-Verständniss gebracht. Von daher so oder so ein Gewinn. :P

Palando der Blaue:
boah...  :o
Danke, ich bin noch ein Anfänger im scrippten, kann gerade mal Verstärkung spawnen lassen und Kamerafahrten machen aber ich werds probieren  :)

Gnomi:
@ k10071995:
Du setzt eine Einheit und schreibst bei "Name" irgendetwas rein.^^
Aber auch so wäre dein System etwas verbuggt.
Das hier so das System, wie es wirklich funktioniert (weiß ich, weil ich es selbst in Edain 3.1 auf manchen Maps benutzt habe *hust* ;) )

MCM aka k10071995:

--- Zitat von: Gnomi am 27. Feb 2009, 09:46 ---@ k10071995:
Aber auch so wäre dein System etwas verbuggt.

--- Ende Zitat ---
Wieso verbuggt? :o
Es laufen halt immer mehr Leute raus und die Einheiten folgen unendlich lang.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln