-
Hier eine überarbeitete Variante des scriptes das jetzt als Funktion funktioniert.
- class CfgFunctions
- {
- class fix
- {
- class myCatergory
- {
- class bloodloss {file = "fixbloodloss.sqf";};
- };
- };
- };
In der descripton.ext wird der Funktion ein Nahme gegeben
- #include "\z\ace\addons\main\script_mod.hpp"
- #include "\z\ace\addons\medical_engine\script_macros_medical.hpp"
- #include "\z\ace\addons\main\script_macros.hpp"
- #include "\x\cba\addons\xeh\script_xeh.hpp"
- #include "\x\cba\addons\main\script_macros_common.hpp"
- params [["_unit", objNull, [objNull]]];
- private _bloodVolume = _unit getVariable[VAR_BLOOD_VOL,6.0];
- if (_bloodVolume < 3.5) then
- {
- _unit setVariable [VAR_BLOOD_VOL, 3.5];
- };
Alles anzeigen
An der Funktion hat sich nicht viel geändert.
- addMissionEventHandler ["EachFrame", { [player] call fix_fnc_bloodloss;}];
Der Aufruf ist etwas ander dadurch das wir die Funktion jetzt Aufrufen und nicht mehr das Script.
-
Danke erstmal für das Feedback
Ich werde mich gleich mal mit Funktionen beschäftigen und schauen das ich das so ändere.
Macht natürlich mehr sinn es in eine Funktion zu packen wenn ich sonst das Script jedes mal neu kompilieren muss.
-
So ich habe mich auch einmal intensiv mit dem Thema befasst.
Zur Verblutung, Je nach Verletzung verliert der Patient Blut. Wenn der Patient kein Puls und Blutdruck hat fließt Blut Sehr Verlangsamt aus.
Wenn ein Patient unter 3,0 Liter fällt stirbt er sofort. (kritische Menge)
Mögliche Lösungen sind entweder das Verbluten sehr stark heruntersetzen.
Das Limit verändern (was nur etwas tiefer in den Ace Dateien möglich ist) oder ein externes Script schreiben was den Blutwert festsetzt.
Das habe ich vor knapp einem Monat gemacht.
- #define COMPONENT medical
- #define COMPONENT_BEAUTIFIED Medical Core
- #include "\z\ace\addons\main\script_mod.hpp"
- #ifdef DEBUG_ENABLED_MEDICAL
- #define DEBUG_MODE_FULL
- #endif
- #ifdef DEBUG_SETTINGS_MEDICAL
- #define DEBUG_SETTINGS DEBUG_SETTINGS_MEDICAL
- #endif
- #include "\z\ace\addons\medical_engine\script_macros_medical.hpp"
- #include "\z\ace\addons\main\script_macros.hpp"
- params ["_unit"];
- private _bloodVolume = GET_BLOOD_VOLUME(_unit);
- _bloodVolume = 0 max _bloodVolume min DEFAULT_BLOOD_VOLUME;
- if (_bloodvolume < 3.5) then
- {
- _unit setVariable [VAR_BLOOD_VOL, 3.5];
- };
Alles anzeigen
So das Script muss dann nur noch in der Init player local aufgerufen werden.
Wenn ihr das selber "installieren" wollt einfach beide Dateien in den Missionsordner ziehen.
- //Jedem Spieler ein Event Handler geben
- addMissionEventHandler
- ["EachFrame", { [player] spawn compile preprocessFileLineNumbers "Script.sqf"
- }];
Hat mit der letzten Ace Version im Lan funktioniert hatte noch keine Möglichkeit im im MP zu testen.
-
Die Einstellung die ich dir Mitgeteilt habe war nur die für die Kurzsstrecke Langstrecke lässt sich etwas weiter unten einstellen. Aber gut das sich das Problem in Luft aufgelöst hat. Hoffen wir mal das das so bleibt.
-
Guten Morgen
Den Server kannst du über CBA-Settings konfigurieren
1.Als Admin anmelden
2.Mission laden und sloten ein mal auf weiter drücken
3.Karte erscheint und unten links erscheint ein Button Modifikationen anpassen
4.Drauf drücken schon bist du im CBA-Settings Menü
5.Oben Auswählen das du Server einstellungen änderst
5.Im Reiter TFAR die Einstellung Kurzstrecken Frequenz für unterschiedliche Fraktion ein Häckchen machen und Clint und Mission überschreiben auch noch
Ich hoffe das hilft dir weiter