Modding Union
Modderecke => Allgemeine Modding-Fragen => Thema gestartet von: FinalEclipse am 22. Okt 2011, 17:54
-
so ich habe nun vor eine karte zu scripten die auf dem prinzip wellen kampf basiert .nämlich habe ich in der mitte der map ein kleines viereck aus bergen gezogen , in dem die 4 spieler spawnen.zu diesem berg gibt es 4 eingänge von denen wege zu den enden der map führen.nun sollen armeen unregelmäßig an einem der 4 end punkte spawnen und die 4 spieler angreifen.dass ziel sind alle 50 wellen zu besiegen ende trifft ein wenn einer der spieler keine festung mehr hat .
da ch aber noch nie gescriptet habe hätte ich ein paar fragen xD
1.wenn ich creeps spawnen lasse würden diese die spieler auch angreifen ( wenn ich sie per waypoint in den berg laufen lasse)
2.wie kann ich verhindern dass die zwerge mit ihrem berg anfangen ( dieser würde nämlich in dem relativ kleinen berg keinen platz mehr lassen)
3.wie lautet der befehl dem timer eine bestimmte zeit zuzuordnen
4.wie lautet der befehl dass das spiel beendet wird wenn einer der spieler keine estung mehr hat (die befehle mit if true / false verstehe ich hatte ich im info unterricht )
5.mir wurde von radagast geraten die wellen zu gruppieren da ich so upgrades machen kann .wie mache ich das genau ?
6.was bedeutet bei den scripts is subroutin ?
MfG Final
-
1. Ja die Creeps würden die Spieler angreifen, ich würde allerdings den Attackmove befehl verwenden damit sie sofort angreifen und nicht erst ihren weg bis zum ende verfolgen.
2. Per map.ini, dort einfach diesen code reinkopieren:
Object DwarvenFortress
ReplaceModule ModuleTag_castle
Behavior = CastleBehavior ModuleTag_castle_Override
//This refers to the side and name of the .BSE file used to unapck the fortress
CastleToUnpackForFaction = Dwarves zwergenfestung
CastleToUnpackForFaction = Elves zwergenfestung
CastleToUnpackForFaction = Men zwergenfestung
CastleToUnpackForFaction = Wild zwergenfestung
CastleToUnpackForFaction = Isengard zwergenfestung
CastleToUnpackForFaction = Mordor zwergenfestung
CastleToUnpackForFaction = Angmar zwergenfestung
CastleToUnpackForFaction = Arnor zwergenfestung
//Anything that does not fit this filter will be given to the neutral player, so the template can have rocks and props.
FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER
MaxCastleRadius = 130.0
InstantUnpack = Yes
KeepDeathKillsEverything = Yes
UnpackDelayTime = 0.0
EvaEnemyCastleSightedEvent = EnemyFortressSighted
End
End
End
3. Wie meinst du das?
4. Dürfte unter Win/loss sein. Destroy all Buildings belong to Player wenn ich mich nicht irre..
5. Kapier ich ehrlich gesagt nicht was du damit meinst...
6. Das Script wird nicht von alleine ausgeführt sondern muss von einen anderen script sozusagen laufen gelassen werden (Run Subroutine), ausserdem von dem Teambuilder nutzbar zb das dass Script für This Team eine aktion ausführt wenn dieses erstellt/zerstört usw wurde...
-
naj 3:ich muss ja einstellen dass ein timer läuft zB. if true set timer to 5 min oder so ähnlich eben . ich will schlieslich dass wenn diese 5 min abgelaufen sind die armme spawned
5:radagast meinte irgendwie einfach dass wenn ich die units gruppiere ich ihnen upgrades geben kann oder so ähnlich . er hat das eig bloß für den fall gesagt dass ich verstehen werde wie die fight of the hero map gemacht wurde und es auf meinen fall umsetzen kann.
was den rest betrifft danke für die antwort xD
MfG Final
-
Hallo FinalEclipse,
also ich versuche mal den Rest den du wissen willst zu erklären.
1.
Ich würde auch empfehlen direkt einen AttackMove zu benutzen.
3.
Ich glaube statt einem Timer ist es eh besser, wenn du als Voraussetzung für die nächste Welle angibst:
Team is destroyed
5.
Damit meinte ich, dass es besser wäre ein Team zu spawnen, anstatt jetzt mehrer einzelne Units spawnen zu lassen. Das geht folgendermaßen:
Zuerst gehst du auf Edit Teams und dann klickst du in der linken Leiste PlyrCreeps an. Über den Button Add new Team kannst du neue Teams erstellen. In dem neuen Menü zur Teamerstellung kannst du dann die einzelnen Units angeben, die gespawnt werden sollen, wie oft sie gespawnt werden sollen und welche Upgrades sie haben sollen.
Wenn du die Teams dann alle erstellt hast, kannst du dann über
Team--Other > Spawn, Build or Merge>Spawn a reinforcement team
Die Teams spawnen lassen. Als Voraussetzung kannst du dann jeweils die Zerstörung des jeweils vorherigen Teams angeben.
MfG Radagast
-
3: Genau so geht es doch :D
Scripting>Timer>Second countdowntimer set
Dort gibt es auch noch mehr dinge die man mit Timer anstellen kann, zb randomcounter das der Timer zwischen einer Zeit X und Y gestellt wird. Ausserdem kann man zu einen bestehenden Timer auch Zeit addieren oder subtrahieren ;)
Bei 5 min wären das logischerweise 300 sekunden, den framecountdowntimer würde ich ausser acht lassen...
5. Ich nehme an er meint Teamzusammenstellungen. Diese kannst du unter Edit>Teams erstellen. Die Teams werden dann wie einheiten gespawnt (nur das die scripte dafür unter Teams stehen^^). Das team kann aus verschiedenen Einheiten und unterschiedlicher anzahl bestehen, ausserdem lässt sich die Stufe des Teams und die Upgrades für die einzelnen angehörigen angeben. Es ist schwer alles zu sagen was man mit Teams alles kann - da man verdammt viel machen kann^^
Edit: Radagast hat vor mir gepostet, ich denke mein Post schadet trotzdem nicht^^
@Radagast: vielleicht ist der Timer aber auch für den Start gedacht damit der Spieler etwas Zeit hat sich aufzubauen, oder für kleine Ruhepausen zwischen den angriffen...
-
danke ihr zwei xD
und ja der timer war dafür gedacht dass man am anfang einheiten zusamenkriegt.was ich allerdings an der bedingung dass das vorherige team zerstört wurde nich mag ist dass ich geplannt hatte wie in towerwars pausen dazwischen zu machen da ich gegen ende wirklich mächtige gener wie balrog etc rufen will
MfG Final
-
Naja, dann lässt du den Timer eben erst starten, wenn die Welle zersört wurde und die nächste Welle startet nach Ablauf der Zeit. So wäre es am elegantesten.
-
da geb ich dr recht ^^
allerdings wäre jetzt noch dass problem die wellen an die anzahl der spieler anzupassen .
finde die bedingung dafür nicht ...
-
Also einen speziellen Script um etwas an die Spielerzahl anzupassen gibt es soweit ich weiß nicht. Die Werte müsstest du dann selbst ändern. Und als Bedingung für die Änderungen gibst du dann einfach an, dass Spieler so und so aktiv ist. Weiß nicht genau wie der Script dafür jetzt genau heißt. Musst du dann mal nachschauen.
MfG Radagast
-
*** IF ***
Player '<Player_1>' starting position is 1 .
*** THEN ***
Add 1 to counter 'Spieleranzahl'
If ist unter Player, das Then unter Scripting>Counter.
Das Script muss für jeden spieler neu erstellt werden, immer nur mit einen anderen Spieler im IF und einer dazupassenden startposition (Player_2 = startposition2 usw).
Wichtig ist die Scripte deaktiviert zu haben und sie durch ein anderes script am anfang zu aktivieren welcher auch den counter erstellt mit dem Wert 0.
Je nach das was der Counter dann hat werden andere Scripte im IF erfüllt so das je nach spieleranzahl andere Scripte ausgeführt werden..
-
hmm eig klar xD werd ich gleich mal machen .danke
MfG Final
Tja und schon wieder ne kurze frage [uglybunti]
wenn ich player1 has startposition 1 schreibe müsste ich nicht auch noch : or player1 has startposition 2/3/4 einfügen ?
MfG Final
-
Nein, da Player_1 nur Player_1 ist wenn er auf Player_1_Start sitzt - daher auf der startposition1^^
-
ah und wenn ich sagen will dass 2 spieler da snd ?
if player 1 has position1 and player2 has position 2 oder ? ^^
-
Habe ich doch gesagt, für jeden Spieler ein komplett neues script...
-
ja sry habs jetz kapiert danke für die hilfe xD
MfG Final
-
wie genau stellt man beim editieren der teams ein , wie oft eins der units unten gespawned wird ?