Ich weiss das hört sich blöd an aber vielleicht gehts ja...
Forum
Stranded II Scripts Scripting - Fragen/ProblemeIch weiss das hört sich blöd an aber vielleicht gehts ja...
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
(Das musst du nicht so machen ich wills nur wissen )
http://www.onlyphpbb.de/board/nxtopicf27128087nx7568-4.html
Ich kann auf attack1 keinen Schusssound abspielen.
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.
Mr Ast has written
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
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
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"; }
1
$attackedclass,$attackedid,"bleeding";
1
$attackedclass,$attackedid,"intoxication";
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.
@Mr. Ast: wenn immer noch keine sounds kommen, schau nach ob die dateien/ordner mit den sounds innerhalb von des verzeichnisses sfx liegen.
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.
Kann sein das es diese Doppelklammern nicht mag.
Probier mal folgendes:
1
2
3
4
5
6
7
8
9
10
11
12
13
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"; } }
Buckelfips has written
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 lockbuilding ausführt einbauen.
Aber für Combis gibts sowas net und wirds vermutlich auch nie gebe.
Bei den Kombinationen von Werkzeugen werden aber sowieso per Scripts Ereignisse ausgelöst ( event in combinations_tools.inf). Du kannst einfach diese benutzen und musst somit nicht dauernd prüfen.
1
2
3
2
3
script=start skipevent: script=end