German Was ist an diesem Script falsch?

29 replies
Goto Page
To the start Previous 1 2 Next To the start
Up
Pehlivan
User
Offline Off
Hallo,

was ist hier falsch?

TriggerID:23
Code:
1
2
3
4
on:trigger {
         msg "Bla bla bla!";
         create "unit" , 42 , x , z;
}


Code:
1
2
3
4
5
trigger, 23 {
       $pirate=create "unit" , 41;
       unitpath $pirate, 24,25,26,27,28;
       addstate $pirate "invulnerability";
}

Es sollte nach dem Trigger ein Krallenäffchen spawnen(in einer bestimmten Position) und ein Pirat(ebenfalls in einer Position),aber es funkt net.
us
21.06.13 05:20:53 pm
Up
Hurri04
Super User
Offline Off
schau dir noch einmal die von dir verwendeten befehle an und achte dabei auf klammern, sowie die anzahl und verwendung von parametern.
http://www.stranded.unrealsoftware.de/s2_commands.php?list=all

zudem ist die erste zeile im zweiten script totaler blödsinn.

und falls du an mehreren problem zu einer einzigen map arbeiten solltest, dann ist es nur bedingt sinnvoll, dazu mehrere threads aufzumachen:
thread stranded2 Questitem
22.06.13 12:46:26 pm
Up
Pehlivan
User
Offline Off
Das sind für verschiedene Maps
us
22.06.13 04:25:33 pm
Up
Kayren
User
Offline Off
Hast du eine spezielle Position wo du die Unit erschaffen möchtest oder möchtest du sie dort erschaffen wo das Skript ausgeführt wird? Für das zweite müsstest du getx("self") und getz("self") anstelle von x und z einfügen bei s2 cmd create .

Edit:
So müsste es klappen.
Code:
1
2
3
4
5
on:23 {
       $pirate=create "unit" , 41;
       unitpath $pirate, 24,25,26,27,28;
       addstate $pirate "invulnerability";
}
IMG:http://www.danasoft.com/sig/Luxemburgish242627.jpg
22.06.13 06:04:01 pm
Up
Pehlivan
User
Offline Off
Es wird von einem Path gespawnt, also wo das Script ausgeführt wird.Und Danke EDIT:Hab es mal versucht aber der Trigger funkt. garnicht, da kommt nicht mal die Nachricht.Und die Klammer kann man mal ja auslassen oder?
Code:
1
2
3
4
on:trigger {
         msg "Ahh tötet dieses Krallenäffchen!" [,4];
         create "unit" , 42 [,1];
}

Das obere ist der Code von Trigger(wie man sehen kann)
Der untere ist der Code von der Flagge
Code:
1
2
3
4
5
on:23 {
    $pirate=create "unit" , 37;
    unitpath $pirate, 25,26,27,28;
    addstate "invulnerability";
}

Hab grad einen Fehler gefunden die ID vom Piraten ist net 41 sondern 37.
edited 3×, last 22.06.13 06:31:28 pm
22.06.13 06:10:03 pm
Up
Hurri04
Super User
Offline Off
@user Kayren: ich würde dir empfehlen, dich ein klein wenig zurückzuhalten, wenn du selbst nicht die größte ahnung vom scripten hast. beispielsweise sehe ich in deinem 5-zeiligen script allein durch überfliegen schon 3 fehler.

@user Pehlivan: "wer fragt, dem wird geholfen", also frag ruhig, wenn du probleme hast oder sachen nicht verstehst.
wichtig dabei ist allerdings, dass du dein anliegen verständlich und mit möglichst vielen details erklärst.
zudem solltest du natürlich zeigen, dass du selbst auch an dem interessiert bist, was du erreichen möchtest, indem du auch selbst versuchst, nachzudenken und hinter die fehler zu kommen. dies erreichst du beispielsweise, indem du immer mal wieder postest, wie dein code mittlerweile aussieht, vorzugsweise natürlich mit der version, die am besten funktioniert.
23.06.13 11:50:12 am
Up
Pehlivan
User
Offline Off
Hmm habs immer noch nicht geschafft
us
23.06.13 02:29:57 pm
Up
-tony316-
User
Offline Off
@user Pehlivan: Ich gebe dir mal einen Tipp: Schau dir mal die Befehlsreferenz für den Befehl s2 cmd addstate an

Außerdem solltest du dir beim 5-Zeiligen Script deine 1. und 2. Zeile anschauen.
23.06.13 02:35:33 pm
Up
Pehlivan
User
Offline Off
Ok das mit dem addstate hab ich verstanden
,aber was meinste mit dem 5-Zeiligen Script das hab ich nicht richtig verstanden.
us
23.06.13 04:45:51 pm
Up
-tony316-
User
Offline Off
Solange du nicht ein eigenes Event deklariert hast das "23" heißt, kannst du es nicht verwenden. Schau mal hier nach; diese Ereignisse gibt es in s2: s2 cmd on

In der zweiten Zeile möchtest du einer Variable den Wert von einem Befehl zuordnen, deshalb muss der Befehl in Klammern.
So müsste es aussehen:
Code:
1
$pirate=create("unit",37);


Du kannst außerdem die Klammern [] bei den Zahlen weglassen. Die stehen in den Referenzen nur für optionale Werte
edited 1×, last 25.06.13 04:31:48 pm
24.06.13 06:00:56 pm
Up
Pehlivan
User
Offline Off
Danke, aber schon wie geschrieben die msg kommt nicht mal
EDIT:Das hatte ich ja völlig vergessen mit "setat",hier nochmal der vollständige Code:(vom Path, ID 24)
Code:
1
2
3
4
5
6
on:trigger {
          $pirate=(create "unit" , 37);
          setat "unit" , $pirate "info" , 24;
          unitpath $pirate , 25,26,27,28;
          addstate "unit" , $pirate , "invulnerability";
}


Und dann habe ich noch den Trigger editiert:(Doch ich weiß nicht ob es richtig ist)
Code:
1
2
3
4
5
on:trigger {
         msg "Ahh tötet dieses Krallenäffchen" , 1 , 4;
         create "unit" , 42;
         trigger 24 <---Ist das richtig?
}

us
edited 2×, last 24.06.13 06:32:57 pm
24.06.13 06:33:08 pm
Up
-tony316-
User
Offline Off
Poste mal die Einstellungen vom Trigger, also nicht das Script sondern die Bedingung oben, wann der Trigger ausgelöst wird.
24.06.13 06:35:11 pm
Up
Pehlivan
User
Offline Off
Der Trigger wird ausgelöst, wenn ein Spieler im Radius ist.
us
24.06.13 07:56:38 pm
Up
-tony316-
User
Offline Off
Hast du bei der Zeile mit Anzahl =1 und weiter unten einen vernünftigen Radius eingestellt? Hast du "sofort aktiv" aktiviert?

Der Befehl s2 cmd trigger sollte stimmen, wenn du ein Semikolon setzt und ein trigger event bei der Flagge mit der ID 24 ausführen willst

Ich verstehe noch nicht so ganz, wie du das Script von der Flagge 24 ausführen willst; willst du es aktivieren, wenn eine Einheit sie beim Unitpath passiert? Dann kannst du on:reach nehmen.

Weshalb hast du ein zusätzliches Script für die Flagge gemacht? So wie ich deine Scripts verstehe, müsste man das doch bequem mit einem Trigger Script (beim Trigger selbst) regeln können.

Außerdem: Achte in Zukunft auf Kommata. In der dritten Zeile bei s2 cmd setat fehlt z.B. eines. Das sind unnötige Syntaxfehler

Wenn dein Gebietstrigger in Zukunft nicht pausenlos spawnen soll, sondern nur einmal ausgelöst werden darf, dann füge am besten noch diese Zeile ganz unten hinzu:
Code:
1
free "self";

Dann löscht er sich nach Aktivierung.
25.06.13 11:10:55 am
Up
Pehlivan
User
Offline Off
Also, wenn es getriggert wird, dann spawnt ein Krallenäffchen(neben dir) und die Message kommt, danach spawnt ein Pirat in der Flagge bzw. neben der Flagge und der Pirat läuft die Paths.Der Trigger ist nicht "Sofort aktiv" der Radius beträgt 30.
us
25.06.13 01:15:37 pm
Up
-tony316-
User
Offline Off
Der Trigger muss sofort aktiv sein, sonst beachtet er alles andere nicht.
Ich würde an deiner Stelle alles in den Trigger schreiben, außer ein Teil des Scripts soll später beim Passieren vom Unitpath aktiviert werden.
25.06.13 01:21:46 pm
Up
Pehlivan
User
Offline Off
Aber wenn er sofort aktiv ist, dann spawnt das Krallenäffchen sofort und die Message kommt auch sofort.
us
25.06.13 01:43:55 pm
Up
-tony316-
User
Offline Off
Ich dachte du willst das Script ausführen, wenn der Spieler im Radius vom Trigger ist. Willst du jetzt einen Gebietstrigger verwenden oder nicht?

Hast du im Trigger oben bei Anzahl =1 bzw. größer 0?
Standard ist dort =0.
25.06.13 01:46:52 pm
Up
Pehlivan
User
Offline Off
Ja ich möchte das Script ausführen, wenn der Spieler im Radius ist, aber schon wie gesagt das Krallenäffchen spawnt genau, wenn ich auch spawne.Ich möchte ja nur, dass wenn der Spieler im Radius ist.Anzahl groß 0
us
25.06.13 01:49:29 pm
Up
-tony316-
User
Offline Off
Lies mal meinen letzten Post nochmal (editiert). Hast du alles gemacht?

Ansonsten schickst du mir mal deine Map Datei (filehoster), dann kann ich mir das mal ansehen. Ein wenig Einsatz von dir erwarte ich aber schon.
To the start Previous 1 2 Next To the start