Moin,
wo hast Du die Mission her? Irgendwas passt da nicht und die Strings sind auch nicht im normalen Stringtable mit drin.
Gruß,
moeck
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.
Moin,
wo hast Du die Mission her? Irgendwas passt da nicht und die Strings sind auch nicht im normalen Stringtable mit drin.
Gruß,
moeck
so ich versuchs nochmal, ich habe Dir mal die fn_mine.sqf angepasst, dass unterschiedliche Sounds abgespielt werden je nachdem welches Item du benötigst/verwendest. Zusätzlich habe ich mal die Switch case für das benötigte Item richtig gemacht, weil das was da drin stand war suboptimal
#include "..\..\script_macros.hpp"
/*
File: fn_mine.sqf
Author: Devilfloh
Editor: Dardo
Description:
Same as fn_gather,but it allows use of probabilities for mining.
*/
private ["_maxGather", "_resource", "_amount", "_requiredItem", "_mined","_minesound"];
if (life_action_inUse) exitWith {};
if !(isNull objectParent player) exitWith {};
if (player getVariable "restrained") exitWith {
hint localize "STR_NOTF_isrestrained";
};
_exit = false;
if (player getVariable "playerSurrender") exitWith {
hint localize "STR_NOTF_surrender";
};
life_action_inUse = true;
_zone = "";
_requiredItem = "";
_resourceCfg = missionConfigFile >> "CfgGather" >> "Minerals";
_percent = (floor random 100) + 1; //Make sure it's not 0
for "_i" from 0 to count(_resourceCfg)-1 do {
_curConfig = _resourceCfg select _i;
_resources = getArray(_curConfig >> "mined");
_maxGather = getNumber(_curConfig >> "amount");
_zoneSize = getNumber(_curConfig >> "zoneSize");
_resourceZones = getArray(_curConfig >> "zones");
_requiredItem = getText(_curConfig >> "item");
_mined = "";
if (_resources isEqualTo []) exitWith {}; //Smart guy :O
for "_i" from 0 to count (_resources) do {
if (count _resources isEqualTo 1) exitWith {
if (!((_resources select 0) isEqualType [])) then {
_mined = _resources select 0;
} else {
_mined = (_resources select 0) select 0;
};
};
_resource = (_resources select _i) select 0;
_prob = (_resources select _i) select 1;
_probdiff = (_resources select _i) select 2;
if ((_percent >= _prob) && (_percent <= _probdiff)) exitWith {
_mined = _resource;
};
};
{
if ((player distance(getMarkerPos _x)) < _zoneSize) exitWith {
_zone = _x;
};
} forEach _resourceZones;
if (_zone != "") exitWith {};
};
if (_zone isEqualTo "") exitWith {
life_action_inUse = false;
};
if (_requiredItem != "") then {
_valItem = missionNamespace getVariable "life_inv_" + _requiredItem;
if (_valItem < 1) exitWith {
switch (_requiredItem) do {
case "pickaxe": {
titleText[(localize "STR_NOTF_Pickaxe"), "PLAIN"];
};
case "schaufel": {
titleText[(localize "STR_NOTF_schaufel"), "PLAIN"];
};
case "Sieb": {
titleText[(localize "STR_NOTF_Sieb"), "PLAIN"];
};
};
life_action_inUse = false;
_exit = true;
};
};
_minesound = switch(_requiredItem) do {
case "pickaxe": {"mining"};
case "schaufel": {"Shovel"};
case "sieb": {"Goldnuggets"};
default {"harvest"};
};
if (_exit) exitWith {
life_action_inUse = false;
};
//SCHLEIFE
while {true} do {
//ABFRAGE
if(life_interrupted) exitWith {life_interrupted = false;}; // Damit ist die Zeile hier gemeint
_amount = round(random(_maxGather)) + 1;
_diff = [_mined, _amount, life_carryWeight, life_maxWeight] call life_fnc_calWeightDiff;
if (_diff isEqualTo 0) exitWith {
hint localize "STR_NOTF_InvFull";
life_action_inUse = false;
};
player say3D _minesound;
for "_i" from 0 to 4 do {
player playMoveNow "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
waitUntil {
animationState player != "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon";
};
sleep 0.5;
};
if (([true, _mined, _diff] call life_fnc_handleInv)) then {
_itemName = M_CONFIG(getText, "VirtualItems", _mined, "displayName");
titleText[format [localize "STR_NOTF_Mine_Success", (localize _itemName), _diff], "PLAIN"];
};
};
sleep 2.5;
life_action_inUse = false;
Alles anzeigen
Moin,
auf jeden Fall fehlt irgendwie die stringtable.xml das wäre das erst was du fixen musst. Als nächstes würde ich mal den alten life_server.old.pbo aus den Verzeichnis schmeißen. So und dann bitte neustarten und wieder Logs anhängen.
Gruß,
moeck
schau mal da, da bekommst du ein script bei raus
hast du mad an den rohstoffen bzw. vitems geändert? und den fehler findest du im clientlog
So hier mal die Änderung und damit sollte das geklärt sein. Nimm mal die Orginale fn_openInventory.sqf und ersetze deine fn_vehicleWeight.sqf
durch den folgenden Code. Damit sollte das funktionieren.
/*
File: fn_vehicleWeight.sqf
Author: Bryan "Tonic" Boardwine
Description:
Calculates Vehicle Weight.
*/
private ["_vehicle","_weight","_used"];
_vehicle = [_this,0,objNull,[objNull]] call BIS_fnc_param;
if (isNull _vehicle) exitWith {};
_weight = -1;
_used = (_vehicle getVariable "Trunk") select 1;
_weight = [(typeOf _vehicle)] call life_fnc_vehicleWeightCfg;
if (count (attachedObjects _vehicle) > 0)then {
{
_container_weight= [typeOf _x] call life_fnc_vehicleWeightCfg;
_weight = _weight + _container_weight;
} count (attachedObjects _vehicle);
};
if (isNil "_used") then {_used = 0};
[_weight,_used];
Alles anzeigen
Ok, also laut Log ist da ein Container drauf jetzt müssen wir mal schauen was der Kofferraum dazu sagt nachdem ich jetzt auch nochmal mir die Scripte näher angeschaut habe hier mal eine geänderte Version
#include "..\..\script_macros.hpp"
private ["_vehicle","_veh_data"];
if (dialog) exitWith {};
_vehicle = [_this,0,objNull,[objNull]] call BIS_fnc_param;
if (isNull _vehicle || !(_vehicle isKindOf "Car" || _vehicle isKindOf "Air" || _vehicle isKindOf "Ship" || _vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F" || _vehicle isKindOf "Land_CargoBox_V1_F" || _vehicle isKindOf "Land_WaterTank_F" || _vehicle isKindOf "Land_Cargo20_yellow_F")) exitWith {};
if ((_vehicle getVariable ["trunk_in_use",false])) exitWith {hint localize "STR_MISC_VehInvUse"};
_vehicle setVariable ["trunk_in_use",true,true];
_vehicle setVariable ["trunk_in_use_by",player,true];
if (!createDialog "TrunkMenu") exitWith {hint localize "STR_MISC_DialogError";};
disableSerialization;
if (_vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F") then {
ctrlSetText[3501,format [(localize "STR_MISC_HouseStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
} else {
ctrlSetText[3501,format [(localize "STR_MISC_VehStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
};
_veh_data = [_vehicle] call life_fnc_vehicleWeight;
_anzahl = 0;
{
_anzahl = _anzahl+1;
hint format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
diag_log format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
_container_weight= [typeOf _x] call life_fnc_vehicleWeightCfg;
_veh_weight = _veh_data select 0;
_total_weight = _veh_weight + _container_weight;
_veh_data = [_total_weight,(_veh_data select 1)];
} count (attachedObjects _vehicle);
if (_veh_data select 0 isEqualTo -1) exitWith {closeDialog 0; _vehicle setVariable ["trunk_in_use",false,true]; hint localize "STR_MISC_NoStorageVeh";};
ctrlSetText[3504,format [(localize "STR_MISC_Weight")+ " %1/%2",_veh_data select 1,_veh_data select 0]];
[_vehicle] call life_fnc_vehInventory;
life_trunk_vehicle = _vehicle;
_vehicle spawn {
waitUntil {isNull (findDisplay 3500)};
_this setVariable ["trunk_in_use",false,true];
if (_this isKindOf "Box_IND_Grenades_F" || _this isKindOf "B_supplyCrate_F") then {
if (life_HC_isActive) then {
[_this] remoteExecCall ["HC_fnc_updateHouseTrunk",HC_Life];
} else {
[_this] remoteExecCall ["TON_fnc_updateHouseTrunk",2];
};
};
};
if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
_vehicle spawn {
waitUntil {isNull (findDisplay 3500)};
_this setVariable ["trunk_in_use",false,true];
if ((_this isKindOf "Car") || (_this isKindOf "Air") || (_this isKindOf "Ship")) then {
[] call SOCK_fnc_updateRequest;
if (life_HC_isActive) then {
[_this,2] remoteExecCall ["HC_fnc_vehicleUpdate",HC_Life];
} else {
[_this,2] remoteExecCall ["TON_fnc_vehicleUpdate",2];
};
};
};
};
Alles anzeigen
so hier mal mit den daten aus der 3.1.4.8
#include "..\..\script_macros.hpp"
private ["_vehicle","_veh_data"];
if (dialog) exitWith {};
_vehicle = [_this,0,objNull,[objNull]] call BIS_fnc_param;
if (isNull _vehicle || !(_vehicle isKindOf "Car" || _vehicle isKindOf "Air" || _vehicle isKindOf "Ship" || _vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F" || _vehicle isKindOf "Land_CargoBox_V1_F" || _vehicle isKindOf "Land_WaterTank_F" || _vehicle isKindOf "Land_Cargo20_yellow_F")) exitWith {};
if ((_vehicle getVariable ["trunk_in_use",false])) exitWith {hint localize "STR_MISC_VehInvUse"};
_vehicle setVariable ["trunk_in_use",true,true];
_vehicle setVariable ["trunk_in_use_by",player,true];
if (!createDialog "TrunkMenu") exitWith {hint localize "STR_MISC_DialogError";};
disableSerialization;
if (_vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F") then {
ctrlSetText[3501,format [(localize "STR_MISC_HouseStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
} else {
ctrlSetText[3501,format [(localize "STR_MISC_VehStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
};
_veh_data = [_vehicle] call life_fnc_vehicleWeight;
_anzahl = 0;
{
_anzahl = _anzahl+1;
hint format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
diag_log format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
_veh_data = _veh_data + ([_x] call life_fnc_vehicleWeight);
} count (attachedObjects _vehicle);
if (_veh_data select 0 isEqualTo -1) exitWith {closeDialog 0; _vehicle setVariable ["trunk_in_use",false,true]; hint localize "STR_MISC_NoStorageVeh";};
ctrlSetText[3504,format [(localize "STR_MISC_Weight")+ " %1/%2",_veh_data select 1,_veh_data select 0]];
[_vehicle] call life_fnc_vehInventory;
life_trunk_vehicle = _vehicle;
_vehicle spawn {
waitUntil {isNull (findDisplay 3500)};
_this setVariable ["trunk_in_use",false,true];
if (_this isKindOf "Box_IND_Grenades_F" || _this isKindOf "B_supplyCrate_F") then {
if (life_HC_isActive) then {
[_this] remoteExecCall ["HC_fnc_updateHouseTrunk",HC_Life];
} else {
[_this] remoteExecCall ["TON_fnc_updateHouseTrunk",2];
};
};
};
if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
_vehicle spawn {
waitUntil {isNull (findDisplay 3500)};
_this setVariable ["trunk_in_use",false,true];
if ((_this isKindOf "Car") || (_this isKindOf "Air") || (_this isKindOf "Ship")) then {
[] call SOCK_fnc_updateRequest;
if (life_HC_isActive) then {
[_this,2] remoteExecCall ["HC_fnc_vehicleUpdate",HC_Life];
} else {
[_this,2] remoteExecCall ["TON_fnc_vehicleUpdate",2];
};
};
};
};
Alles anzeigen
das sollte zwar keinen Einfluss haben aber schaden kann es auch nicht. Wichtig wäre das Clientlog um zusehen ob die Container überhaupt attached sind. Ansonsten muss man mal in dias iigiload Script reinschauen wie die Container auf dem Lkw montiert werden.
ja sorry, da ist mir ein ; durch gerutscht.
#include "..\..\script_macros.hpp"
private ["_vehicle","_veh_data"];
if (dialog) exitWith {};
_vehicle = [_this,0,objNull,[objNull]] call BIS_fnc_param;
if (isNull _vehicle || !(_vehicle isKindOf "Car" || _vehicle isKindOf "Air" || _vehicle isKindOf "Ship" || _vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F")) exitWith {};
if ((_vehicle getVariable ["trunk_in_use",false])) exitWith {hint localize "STR_MISC_VehInvUse"};
_vehicle setVariable ["trunk_in_use",true,true];
_vehicle setVariable ["trunk_in_use_by",player,true];
if (!createDialog "TrunkMenu") exitWith {hint localize "STR_MISC_DialogError";};
disableSerialization;
if (_vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F") then {
ctrlSetText[3501,format [(localize "STR_MISC_HouseStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
} else {
ctrlSetText[3501,format [(localize "STR_MISC_VehStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
};
_veh_data = [_vehicle] call life_fnc_vehicleWeight;
_anzahl = 0;
{
_anzahl = _anzahl+1;
hint format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
diag_log format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
_veh_data = _veh_data + ([_x] call life_fnc_vehicleWeight);
} count (attachedObjects _vehicle);
if (_veh_data select 0 isEqualTo -1) exitWith {closeDialog 0; _vehicle setVariable ["trunk_in_use",false,true]; hint localize "STR_MISC_NoStorageVeh";};
ctrlSetText[3504,format [(localize "STR_MISC_Weight")+ " %1/%2",_veh_data select 1,_veh_data select 0]];
[_vehicle] call life_fnc_vehInventory;
life_trunk_vehicle = _vehicle;
_vehicle spawn {
waitUntil {isNull (findDisplay 3500)};
_this setVariable ["trunk_in_use",false,true];
if (_this isKindOf "Box_IND_Grenades_F" || _this isKindOf "B_supplyCrate_F") then {
if (life_HC_isActive) then {
[_this] remoteExecCall ["HC_fnc_updateHouseTrunk",HC_Life];
} else {
[_this] remoteExecCall ["TON_fnc_updateHouseTrunk",2];
};
};
};
if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
_vehicle spawn {
waitUntil {isNull (findDisplay 3500)};
_this setVariable ["trunk_in_use",false,true];
if ((_this isKindOf "Car") || (_this isKindOf "Air") || (_this isKindOf "Ship")) then {
[] call SOCK_fnc_updateRequest;
if (life_HC_isActive) then {
[_this,2] remoteExecCall ["HC_fnc_vehicleUpdate",HC_Life];
} else {
[_this,2] remoteExecCall ["TON_fnc_vehicleUpdate",2];
};
};
};
};
Alles anzeigen
so hier mal die korrigierte Version.
gut dann wollen wir mal schauen ob die Container auch wirklich attached sind . Dazu werden wir einfach mal ausgeben was meine Abfrage als ergebnis bringt.
#include "..\..\script_macros.hpp"
private ["_vehicle","_veh_data"];
if (dialog) exitWith {};
_vehicle = [_this,0,objNull,[objNull]] call BIS_fnc_param;
if (isNull _vehicle || !(_vehicle isKindOf "Car" || _vehicle isKindOf "Air" || _vehicle isKindOf "Ship" || _vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F")) exitWith {};
if ((_vehicle getVariable ["trunk_in_use",false])) exitWith {hint localize "STR_MISC_VehInvUse"};
_vehicle setVariable ["trunk_in_use",true,true];
_vehicle setVariable ["trunk_in_use_by",player,true];
if (!createDialog "TrunkMenu") exitWith {hint localize "STR_MISC_DialogError";};
disableSerialization;
if (_vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F") then {
ctrlSetText[3501,format [(localize "STR_MISC_HouseStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
} else {
ctrlSetText[3501,format [(localize "STR_MISC_VehStorage")+ " - %1",getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")]];
};
_veh_data = [_vehicle] call life_fnc_vehicleWeight;
_anzahl = 0;
{
_anzahl = _anzahl+1
hint format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
diag_log format ["Anzahl: %1, Container: %2",_anzahl,(typeOf _x)];
_veh_data = _veh_data + ([_x] call life_fnc_vehicleWeight);
} count (attachedObjects _vehicle);
if (_veh_data select 0 isEqualTo -1) exitWith {closeDialog 0; _vehicle setVariable ["trunk_in_use",false,true]; hint localize "STR_MISC_NoStorageVeh";};
ctrlSetText[3504,format [(localize "STR_MISC_Weight")+ " %1/%2",_veh_data select 1,_veh_data select 0]];
[_vehicle] call life_fnc_vehInventory;
life_trunk_vehicle = _vehicle;
_vehicle spawn {
waitUntil {isNull (findDisplay 3500)};
_this setVariable ["trunk_in_use",false,true];
if (_this isKindOf "Box_IND_Grenades_F" || _this isKindOf "B_supplyCrate_F") then {
if (life_HC_isActive) then {
[_this] remoteExecCall ["HC_fnc_updateHouseTrunk",HC_Life];
} else {
[_this] remoteExecCall ["TON_fnc_updateHouseTrunk",2];
};
};
};
if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
_vehicle spawn {
waitUntil {isNull (findDisplay 3500)};
_this setVariable ["trunk_in_use",false,true];
if ((_this isKindOf "Car") || (_this isKindOf "Air") || (_this isKindOf "Ship")) then {
[] call SOCK_fnc_updateRequest;
if (life_HC_isActive) then {
[_this,2] remoteExecCall ["HC_fnc_vehicleUpdate",HC_Life];
} else {
[_this,2] remoteExecCall ["TON_fnc_vehicleUpdate",2];
};
};
};
};
Alles anzeigen
so bitte mal testen und den Client log gleich mit anhängen. Danke
Schaue Dir mal das an
https://askubuntu.com/questions/1346…le-php-on-nginx
hier wird erklärt wie man PHP im Nginx aktiviert
Also ich würde das auch in der Init des NPCs prüfen ob man auch Eisen dabei hat, allerdings ist das nicht ganz so wichtig aber bitte benutze für Code schnipsel auch den Code Tag und nicht den Spoiler!
</> das bitte nehmen, dann kann man das einfacher rausholen
this enableSimulation false;
this allowDamage false;
this addAction[localize"STR_Process_Sieb",life_fnc_processAction,"Sieb",0,false,false,"",' life_inv_Holz > 0 && life_inv_iron_refined > 0 && !life_is_processing && !life_action_inUse && vehicle player isEqualTo player'];
this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "Bau" >> "displayName")), [(getNumber(missionConfigFile >> "Licenses" >> "Bau" >> "price"))] call life_fnc_numberText],life_fnc_buyLicense,"Bau",0,false,false,"",' !license_civ_Bau && playerSide isEqualTo civilian '];
des Weiteren habe ich mal noch hinzugefügt, dass man nicht aus dem Fahrzeug heraus verarbeiten kann.
Aber können wir jetzt bitte auch mnal auf des eigentliche Thema zurückkommen?
dann ist kein php eingerichtet
hast Du eine htaccess datei da raum fliegen? bzw. sind .php und .html seiten als seiten definiert?