Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
ForenübersichtStranded II-Übersicht Scripts-ÜbersichtEinloggen, um zu antworten

Deutsch Scripting - Fragen/Probleme

6.780 Antworten
Seite
Zum Anfang Vorherige 1 262 63 64339 340 Nächste Zum Anfang

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Ja das tut mir leid. Aber ob mans glaubt oder nicht: Hinter dem was ich da gemacht habe steckt durchaus ein Sinn
Objects sind für statische, bewegungslose Dinge gedacht, welche in größeren Mengen vorkommen, während Units beweglich sind.
Intern werden diese Klassen daher auch komplett seperat und unterschiedlich gehandhabt und deswegen ist das einfach nicht möglich. Es würde die komplette Logik hinter dem System über den haufen werfen (und somit auch eine Menge Probleme im Code verursachen), wenn man dann fröhlich auf objects durch die gegend flitzt

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Ich sehe jetzt nicht direkt Fehler. Du kannst dir mich s2 cmd echo oder s2 cmd msg die Werte der Variablen ausgeben lassen (vor den Bedingungen) um zu gucken ob diese überhaupt zutreffen können und auch in die geschweiften Klammern der Bedingungen noch einen msg oder echo Befehl mit ner Ausgabe setzten um zu gucken ob der Inhalt der geschweiften Klammern ausgeführt wird oder nicht. Wenn er das wird musst du den Pfad prüfen. Oder die Sounddateien haben irgendein komisches Format bzw. nen komischen Codec der nicht klappt. Wobei das unwahrscheinlich ist.

Jedenfalls ist es eine gute Methode nach Fehlern zu suchen, wenn man alles mit Ausgaben zupflastert um die Ursache des Problems zu finden.

Über die Eingabe von vars in der Konsole kannst du dir auch alle Variablen mit Wert ausgeben lassen.

alt Re: Scripting - Fragen/Probleme

Mr Ast
User Off Offline

Zitieren
Ich hab vergessen zu sagen, dass die Console jedes mal in etwa die Fehlermeldung: else oder ifelse ohne gültiges if ausgibt.

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
Mr Ast hat geschrieben
Ich hab vergessen zu sagen, dass die Console jedes mal in etwa die Fehlermeldung: else oder ifelse ohne gültiges if ausgibt.


Das liegt daran das dieser Code mist ist:
1
2
3
4
if (($uspmodus==0) && (playergotitem(202)>1)) { play "Weapons\Pistols\USP\usp_unsil.wav"; } //addstate $attackedclass,$attackedid,"bleeding";
elseif (($uspmodus==1) && (playergotitem(202)>1)) { play "Weapons\Pistols\USP\usp_sil.wav"; } //addstate $attackedclass,$attackedid,"intoxication";
elseif (playergotitem(202)<1) { play "Weapons\dryfire_pistol.wav";}
else{}

richtig wäre:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (($uspmodus==0) && (playergotitem(202)>1)) {

play "Weapons\Pistols\USP\usp_unsil.wav";
//addstate $attackedclass,$attackedid,"bleeding";

} elseif (($uspmodus==1) && (playergotitem(202)>1)) { 

play "Weapons\Pistols\USP\usp_sil.wav";
//addstate $attackedclass,$attackedid,"intoxication";

} elseif (playergotitem(202)<1) {

play "Weapons\dryfire_pistol.wav";

}
Besser wäre es noch das komplizierter in die Blöcke zu fassen (PASCAL-Style, also ohne elseif), aber das wird uU etwas wüst.

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Hmm ich denke mal, dass das
1
$attackedclass,$attackedid,"bleeding";
bzw.
1
$attackedclass,$attackedid,"intoxication";
eigentlich zu den vorhergehenden, auskommentierten "//addstate"-Zeilen gehört und nur durch das Forum in die nächste Zeile umgebrochen wurde.
Zuerst hat mich das nämlich auch irritiert.

Falls das nicht der Fall ist, ist es natürlich falsch. Eine Zeile nur mit Variablen und Strings ohne Befehle oder eine Wertzuweisung ( = ), kann nicht richtig sein.

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
is mir auch klar gewesen, aber die beiden zeieln waren so oder so fehlplatziert (noch scriptkontext gehörten sie in die blöcke rein). Außerdem könnte es sein das Kommentare if-elseif-Statements unterbrechen.

@Mr. Ast: wenn immer noch keine sounds kommen, schau nach ob die dateien/ordner mit den sounds innerhalb von des verzeichnisses sfx liegen.

alt Re: Scripting - Fragen/Probleme

Mr Ast
User Off Offline

Zitieren
Die Ordner und Sounds sind alle an ihrer richtigen position.
Die Schalldämpfergeräusche funktionieren auch(also das auf und abschrauben).
Wenn ich jedoch mit dem von Bizzl vorgeschlagenem Script:

on:attack1
{
if (($uspmodus==0) && (playergotitem(202)>0)) { play "Weapons\Pistols\USP\usp_unsil.wav";}
elseif (($uspmodus==1) && (playergotitem(202)>0)) { play "Weapons\Pistols\USP\usp_sil.wav";}
elseif (playergotitem(202)<1) { play "Weapons\dryfire_pistol.wav";}
}

arbeite, meint die Konsole, dass die erste oder zweite Klammer bei dem ersten if und dem ersten nachfolgendem elseif unerwartet sei.

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
Ich glaube S2S hatte probleme mit boolschen ausdrücken.
Kann sein das es diese Doppelklammern nicht mag.

Probier mal folgendes:
1
2
3
4
5
6
7
8
9
10
11
12
13
on:attack1 {
 if (playergotitem(202)>0) {
  if ($uspmodus==0) {
   play "Weapons\Pistols\USP\usp_unsil.wav";
  }
  if ($uspmodus==1) {
   play "Weapons\Pistols\USP\usp_sil.wav";
  }
  //... platz für mehr modi
 } else {
  play "Weapons\dryfire_pistol.wav";
 }
}

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
Buckelfips hat geschrieben
Auch steht meine Frage (siehe oben ...) wie man einen "Lehrer" erschafft immer noch im Raum.

Du meinst das mit der Combi-Unterdrückung? Derzeit gar net, du kannst das höchstens für Gebäude implementieren, musst aber mit der Freischaltung nach dem bau bestimmter Gebäude aufpassen. Am besten timer der immerzu s2 cmd lockbuilding ausführt einbauen.
Aber für Combis gibts sowas net und wirds vermutlich auch nie gebe.

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Es ist natürlich immer die schlechteste Methode permanent ein Script laufen zu lassen (weil es langsam ist). Gehen würde das aber theoretisch.
Bei den Kombinationen von Werkzeugen werden aber sowieso per Scripts Ereignisse ausgelöst (s2 cmd event in combinations_tools.inf). Du kannst einfach diese benutzen und musst somit nicht dauernd prüfen.

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Ja. Genau. Allerdings wirkt es sich natürlich auf sämtliche Maps aus, wenn du in den inf Dateien rumwerkelst. Falls du nur eine Map machen möchtest, ist das also keine Lösung.
Zum Anfang Vorherige 1 262 63 64339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht