bitte die Suchfunktion verwenden: https://native-network.net/thread/916-lag…ng-integrieren/
du musst die Range im fn_keyHandler.sqf verändern
Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.
bitte die Suchfunktion verwenden: https://native-network.net/thread/916-lag…ng-integrieren/
du musst die Range im fn_keyHandler.sqf verändern
normal hätte ich jetzt einen Like vergeben, aber so muss ich doch einen Beitrag schreiben.
Die Idee gefällt mir +1
Bei Signaltransmitter hatte ich gemischte Erfahrungen:
Der Support ist mir ebenfalls positiv aufgefallen und die Webspaceangebote sind in der Preis/Leistung der Hammer.
Nur meine KVM vServer haben mich enttäuscht.
Diese sind an einer shared 5GB/s Leitung angebunden und ich hatte einen TS Server darauf laufen, auf dem es bei es egal bei wie viel Nutzern zu hohen Pings (1000m/s +) und einem Paketverlust nahe 100% vor allem in den Abendstunden mehrmals pro Stunde für einige Minuten gekommen ist.
Das Krankenhaus wird in der init.sqf des life_server gespawnt:
{
_hs = createVehicle ["Land_Hospital_main_F", [0,0,0], [], 0, "NONE"];
_hs setDir (markerDir _x);
_hs setPosATL (getMarkerPos _x);
_var = createVehicle ["Land_Hospital_side1_F", [0,0,0], [], 0, "NONE"];
_var attachTo [_hs, [4.69775,32.6045,-0.1125]];
detach _var;
_var = createVehicle ["Land_Hospital_side2_F", [0,0,0], [], 0, "NONE"];
_var attachTo [_hs, [-28.0336,-10.0317,0.0889387]];
detach _var;
if (worldName isEqualTo "Tanoa") then {
if (_forEachIndex isEqualTo 0) then {
atm_hospital_2 setPos (_var modelToWorld [4.48633,0.438477,-8.25683]);
vendor_hospital_2 setPos (_var modelToWorld [4.48633,0.438477,-8.25683]);
"medic_spawn_3" setMarkerPos (_var modelToWorld [8.01172,-5.47852,-8.20022]);
"med_car_2" setMarkerPos (_var modelToWorld [8.01172,-5.47852,-8.20022]);
hospital_assis_2 setPos (_hs modelToWorld [0.0175781,0.0234375,-0.231956]);
} else {
atm_hospital_3 setPos (_var modelToWorld [4.48633,0.438477,-8.25683]);
vendor_hospital_3 setPos (_var modelToWorld [4.48633,0.438477,-8.25683]);
"medic_spawn_1" setMarkerPos (_var modelToWorld [-1.85181,-6.07715,-8.24944]);
"med_car_1" setMarkerPos (_var modelToWorld [5.9624,11.8799,-8.28493]);
hospital_assis_2 setPos (_hs modelToWorld [0.0175781,0.0234375,-0.231956]);
};
};
} forEach ["hospital_2","hospital_3"];
Alles anzeigen
je nach AL Version kann der Teil ein wenig anders aussehen. Dort musst du dann eben das Krankenhaus am Flugfeld herausnehmen und den entsprechenden Marker auf der Map löschen.
ja wenn ich den Code richtig interpretiere in Minuten:
Beweis: ein Ausschnitt der fn_getPlayTime.sqf
_time = (time - _time_join); //return time
_time = _time + _time_gathered;
_time = round (_time/60);
und die Variable time wird in Sekunden angegeben
und time/60 = Zeit in Minuten
Ist in der 5.0 schon drinnen
das wäre mir neu
Hier mal ein Beispiel:
"[0,133,1566]"Das einzige was ich mir denken kann ist das es nach den Fraktionen sortiert ist...
genau so ist es.
Die erste Zahl ist für Cops, die zweite für Medics und die dritte für Civs.
@Crypto Geh Zu NTECHIT Die Haben ein Restartsystem
![]()
oder sprich ein Restartscript (ich hab meins mal hochgeladen: armalife.sh und im armalife.txt Dateianhang angehängt) mit crontab an.
Für jemanden, der nicht so gerne selbst herumbastelt ist ein Restartsystem bzw. NTECHIT die einfachere Lösung.
Wir benutzen die Altis Life 4.4. Müsste es dort auch geändert werden?
Und wenn wo? In config/german.php und config/english.php?
die 4.4 nutzt noch playerid also kann es daran nicht liegen
nutzt du die aller neuste AL Version? wenn ja musst du in Cyberworks playerid zu pid ändern
noch ne Ergänzung:
die Variable worldName der jeweiligen Map könnte man wahrscheinlich einfach durch ausführen dieses Befehls im Editor herausfinden:
copyToClipboard str worldName;
ich misch mich hier mal ein wenig ein
kann ich das erste von die direkt so in meine ersetzten?
weil ich nutze die 4.5 version
nein kannst du nicht.
Deine Dateien schauen standardmäßig folgend aus:
#include "..\..\script_macros.hpp"
/*
File: fn_spawnPointCfg.sqf
Author: Bryan "Tonic" Boardwine
Description:
Master configuration for available spawn points depending on the units side.
Return:
[Spawn Marker,Spawn Name,Image Path]
*/
params [["_side",civilian,[civilian]]];
_side = switch (_side) do {
case west: {"Cop"};
case independent: {"Medic"};
default {"Civilian"};
};
private _return = [];
private _spawnCfg = missionConfigFile >> "CfgSpawnPoints" >> worldName >> _side;
for "_i" from 0 to count(_spawnCfg)-1 do {
private _tempConfig = [];
private _curConfig = (_spawnCfg select _i);
private _conditions = getText(_curConfig >> "conditions");
private _flag = [_conditions] call life_fnc_levelCheck;
if (_flag) then {
_tempConfig pushBack getText(_curConfig >> "spawnMarker");
_tempConfig pushBack getText(_curConfig >> "displayName");
_tempConfig pushBack getText(_curConfig >> "icon");
_return pushBack _tempConfig;
};
};
if (playerSide isEqualTo civilian) then {
if (count life_houses > 0) then {
{
_pos = call compile format ["%1",(_x select 0)];
_house = nearestObject [_pos, "House"];
_houseName = getText(configFile >> "CfgVehicles" >> (typeOf _house) >> "displayName");
_return pushBack [format ["house_%1",_house getVariable "uid"],_houseName,"\a3\ui_f\data\map\MapControl\lighthouse_ca.paa"];
true
} count life_houses;
};
};
_return;
Alles anzeigen
#include "..\script_macros.hpp"
/*
File: fn_initCiv.sqf
Author: Bryan "Tonic" Boardwine
Description:
Initializes the civilian.
*/
private _altisArray = ["Land_i_Shop_01_V1_F","Land_i_Shop_01_V2_F","Land_i_Shop_01_V3_F","Land_i_Shop_02_V1_F","Land_i_Shop_02_V2_F","Land_i_Shop_02_V3_F"];
private _tanoaArray = ["Land_House_Small_01_F"];
private _spawnBuildings = [[["Altis", _altisArray], ["Tanoa", _tanoaArray]]] call TON_fnc_terrainSort;
civ_spawn_1 = nearestObjects[getMarkerPos "civ_spawn_1", _spawnBuildings,350];
civ_spawn_2 = nearestObjects[getMarkerPos "civ_spawn_2", _spawnBuildings,350];
civ_spawn_3 = nearestObjects[getMarkerPos "civ_spawn_3", _spawnBuildings,350];
civ_spawn_4 = nearestObjects[getMarkerPos "civ_spawn_4", _spawnBuildings,350];
waitUntil {!(isNull (findDisplay 46))};
if (life_is_alive && !life_is_arrested) then {
/* Spawn at our last position */
player setVehiclePosition [life_civ_position, [], 0, "CAN_COLLIDE"];
} else {
if (!life_is_alive && !life_is_arrested) then {
if (LIFE_SETTINGS(getNumber,"save_civilian_positionStrict") isEqualTo 1) then {
_handle = [] spawn life_fnc_civLoadout;
waitUntil {scriptDone _handle};
CASH = 0;
[0] call SOCK_fnc_updatePartial;
};
[] call life_fnc_spawnMenu;
waitUntil{!isNull (findDisplay 38500)}; //Wait for the spawn selection to be open.
waitUntil{isNull (findDisplay 38500)}; //Wait for the spawn selection to be done.
} else {
if (life_is_arrested) then {
life_is_arrested = false;
[player,true] spawn life_fnc_jail;
};
};
};
life_is_alive = true;
player addRating 9999999;
Alles anzeigen
/*
* Format:
* 3: STRING (Conditions) - Must return boolean :
* String can contain any amount of conditions, aslong as the entire
* string returns a boolean. This allows you to check any levels, licenses etc,
* in any combination. For example:
* "call life_coplevel && license_civ_someLicense"
* This will also let you call any other function.
*
*/
class CfgSpawnPoints {
class Altis {
class Civilian {
class Kavala {
displayName = "Kavala";
spawnMarker = "civ_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "!license_civ_rebel";
};
class Athira {
displayName = "Athira";
spawnMarker = "civ_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class Pyrgos {
displayName = "Pyrgos";
spawnMarker = "civ_spawn_2";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class Sofia {
displayName = "Sofia";
spawnMarker = "civ_spawn_4";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class RebelN {
displayName = "Northern Rebel Base";
spawnMarker = "Rebelop";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
class RebelS {
displayName = "Southern Rebel Base";
spawnMarker = "Rebelop_1";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
class RebelE {
displayName = "Eastern Rebel Base";
spawnMarker = "Rebelop_2";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
};
class Cop {
class Kavala {
displayName = "Kavala HQ";
spawnMarker = "cop_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class Athira {
displayName = "Athira HQ";
spawnMarker = "cop_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\fuelstation_ca.paa";
conditions = "";
};
class Pyrgos {
displayName = "Pyrgos HQ";
spawnMarker = "cop_spawn_2";
icon = "\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa";
conditions = "";
};
class Air {
displayName = "Air HQ";
spawnMarker = "cop_spawn_4";
icon = "\a3\ui_f\data\map\Markers\NATO\b_air.paa";
conditions = "call life_coplevel >= 2 && {license_cop_cAir}";
};
class HW {
displayName = "HW Patrol";
spawnMarker = "cop_spawn_5";
icon = "\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa";
conditions = "call life_coplevel >= 3";
};
};
class Medic {
class Kavala {
displayName = "Kavala Hospital";
spawnMarker = "medic_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
class Athira {
displayName = "Athira Regional";
spawnMarker = "medic_spawn_2";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
class Pyrgos {
displayName = "Pyrgos Hospital";
spawnMarker = "medic_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
};
};
class Tanoa {
class Civilian {
class Georgetown {
displayName = "Georgetown";
spawnMarker = "civ_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "!license_civ_rebel";
};
class Balavu {
displayName = "Balavu";
spawnMarker = "civ_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class Tuvanaka {
displayName = "Tuvanaka";
spawnMarker = "civ_spawn_2";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class Lijnhaven {
displayName = "Lijnhaven";
spawnMarker = "civ_spawn_4";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class RebelNW {
displayName = "North Western Rebel Base";
spawnMarker = "Rebelop";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
class RebelS {
displayName = "Southern Rebel Base";
spawnMarker = "Rebelop_1";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
class RebelNE {
displayName = "North Eastern Rebel Base";
spawnMarker = "Rebelop_2";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
};
class Cop {
class NAirport {
displayName = "North Airport HQ";
spawnMarker = "cop_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class SWAirport {
displayName = "South Western Airport HQ";
spawnMarker = "cop_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\fuelstation_ca.paa";
conditions = "";
};
class GeorgetownHQ {
displayName = "Georgetown HQ";
spawnMarker = "cop_spawn_2";
icon = "\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa";
conditions = "";
};
class Air {
displayName = "Air HQ";
spawnMarker = "cop_spawn_4";
icon = "\a3\ui_f\data\map\Markers\NATO\b_air.paa";
conditions = "call life_coplevel >= 2 && {license_cop_cAir}";
};
class HW {
displayName = "HW Patrol";
spawnMarker = "cop_spawn_5";
icon = "\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa";
conditions = "call life_coplevel >= 3";
};
};
class Medic {
class SEHospital {
displayName = "South East Hospital";
spawnMarker = "medic_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
class TanoukaHospital {
displayName = "Tanouka Regional";
spawnMarker = "medic_spawn_2";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
class NEAirportHospital {
displayName = "North East Airport Hospital";
spawnMarker = "medic_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
};
};
};
Alles anzeigen
in der aktuellsten Version, hast du die Möglichkeit eine Mission für mehrere Maps zu verwenden, indem je nach aktueller Map (worldName) andere Spawnpoints verwendet werden.
Um eine neue Map(hier: Lakeside) einzutragen, muss die initCiv.sqf folgend ergänzt werden:
private _lakesideArray = ["DEINE_HAUSCLASSES"];
private _spawnBuildings = [[["Altis", _altisArray], ["Tanoa", _tanoaArray], ["Lakeside", _lakesideArray]]] call TON_fnc_terrainSort;
oder wenn man direkt am Marker Spawnen soll und nicht in einem Haus, den Teil hier löschen:
private _altisArray = ["Land_i_Shop_01_V1_F","Land_i_Shop_01_V2_F","Land_i_Shop_01_V3_F","Land_i_Shop_02_V1_F","Land_i_Shop_02_V2_F","Land_i_Shop_02_V3_F"];
private _tanoaArray = ["Land_House_Small_01_F"];
private _spawnBuildings = [[["Altis", _altisArray], ["Tanoa", _tanoaArray]]] call TON_fnc_terrainSort;
civ_spawn_1 = nearestObjects[getMarkerPos "civ_spawn_1", _spawnBuildings,350];
civ_spawn_2 = nearestObjects[getMarkerPos "civ_spawn_2", _spawnBuildings,350];
civ_spawn_3 = nearestObjects[getMarkerPos "civ_spawn_3", _spawnBuildings,350];
civ_spawn_4 = nearestObjects[getMarkerPos "civ_spawn_4", _spawnBuildings,350];
Alles anzeigen
in der Config_Spawnpoints.hpp eine neue class für Lakeside erstellen:
class Lakeside {
class Civilian {
class Georgetown {
displayName = "Georgetown";
spawnMarker = "civ_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "!license_civ_rebel";
};
class Balavu {
displayName = "Balavu";
spawnMarker = "civ_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class Tuvanaka {
displayName = "Tuvanaka";
spawnMarker = "civ_spawn_2";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class Lijnhaven {
displayName = "Lijnhaven";
spawnMarker = "civ_spawn_4";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class RebelNW {
displayName = "North Western Rebel Base";
spawnMarker = "Rebelop";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
class RebelS {
displayName = "Southern Rebel Base";
spawnMarker = "Rebelop_1";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
class RebelNE {
displayName = "North Eastern Rebel Base";
spawnMarker = "Rebelop_2";
icon = "\a3\ui_f\data\map\MapControl\bunker_ca.paa";
conditions = "license_civ_rebel";
};
};
class Cop {
class NAirport {
displayName = "North Airport HQ";
spawnMarker = "cop_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa";
conditions = "";
};
class SWAirport {
displayName = "South Western Airport HQ";
spawnMarker = "cop_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\fuelstation_ca.paa";
conditions = "";
};
class GeorgetownHQ {
displayName = "Georgetown HQ";
spawnMarker = "cop_spawn_2";
icon = "\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa";
conditions = "";
};
class Air {
displayName = "Air HQ";
spawnMarker = "cop_spawn_4";
icon = "\a3\ui_f\data\map\Markers\NATO\b_air.paa";
conditions = "call life_coplevel >= 2 && {license_cop_cAir}";
};
class HW {
displayName = "HW Patrol";
spawnMarker = "cop_spawn_5";
icon = "\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa";
conditions = "call life_coplevel >= 3";
};
};
class Medic {
class SEHospital {
displayName = "South East Hospital";
spawnMarker = "medic_spawn_1";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
class TanoukaHospital {
displayName = "Tanouka Regional";
spawnMarker = "medic_spawn_2";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
class NEAirportHospital {
displayName = "North East Airport Hospital";
spawnMarker = "medic_spawn_3";
icon = "\a3\ui_f\data\map\MapControl\hospital_ca.paa";
conditions = "";
};
};
};
Alles anzeigen
Das ganze ist jetzt alles noch Theorie und muss getestet werden, denn ich weiß nicht wie die Variable "worldName" für Lakeside heißt. Das müsste man testen. Und je nachdem dort wo ich hier Lakeside eingetragen habe, durch meinetwegen Jackson_Country ersetzen.
Dass erstellen von Logs bzw. das richtige Automatisch benennen ist hier erstmals nebensächlich und wirft ggf. sogar noch neue, unnötige Fragen auf! Bedeutet, jetzt gerade Unnötig aber ein guter Anhaltspunkt und der erste Schritt einer Ordentlichen Administration.
meiner Meinung nach sollte man aber zuerst eine ordentliche Administrationsumgebung aufbauen, bevor man nach anderen Fehlern sucht, da v.a. Logs ja das A und O bei der Fehlersuche sind.
Ich habe aber im Moment nicht das Wissen und auch nicht die Zeit, um weiter zu helfen, also überlasse ich dir die weitere Vorgehensweise hier.
noch ein kleiner Tipp von mir zum Erstellen von Logdateien:
benutze doch einmal diesen Code:
DATE=$(date +%Y-%m-%d_%H-%M-%S);
LOGNAME="ARMA3"
LOG="${DATE}_${LOGNAME}"
logPath=/home/steam/steamcmd/arma3/life/log
./arma3server -name=Server -config=cfg/arma3-server.server.cfg -mod=@extDB2\;@life_server >$LOGPATH/$LOGNAME.rpt 2>&1
wobei du natürlich den Speicherort anpassen musst.
bei den restlichen Fragen ist @Pac der bessere Ansprechpartner, denn auch ich bin nur Linux Laie
das stimmt soweit. Der Log in Linux wird standardmäßig in der Konsole, in der der Server gestartet wurde, angezeigt.
werden auch keine [lexicon]extDB[/lexicon] Logs erstellt?
wie lautet dein Startcommando? bzw. wie schaut bei dir -mod= -servermod=aus?
ich habe gerade nochmals ein wenig nachgedacht: versuch mal in die leere Spalte der Datenbank "[]" einzufügen.