du musst die side in der config von string in array ändern und das natürlich dann auch bei der gather und mine von
playerSide isEquals config(side)
auf
playerSide in config(side)
ändern dann kannst du das pro resource festlegen
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.
du musst die side in der config von string in array ändern und das natürlich dann auch bei der gather und mine von
playerSide isEquals config(side)
auf
playerSide in config(side)
ändern dann kannst du das pro resource festlegen
blackfisch basics ja aber ordentlich was zu ändern
ja das geht allerdings musst du da diverse sachen anpassen, z.b. lizenzen bauen und die verarbeiter auch für east zulassen. das ganze ist ein wenig aufwändiger. welche version verwendest du?
also ich hatte gestern auch das problem, dass mit einem anderen gameport als 2302 nix ging. ist zwar völliger bullshit aber bedanke dich bei bughemia
nimm die MySQL 5.7 es ist kein problem mit extdb3, der treiber kommt auch damit zurecht
Moin,
so also ich habe unseren Server wieder zum fliegen gebracht. Und zwar müsst ihr folgendes beachten.
1. Euer Gameport muss zwingend die 2302 sein, wir hatten die 2303 und damit geht es nicht.
2. rcon sollte auf den Port 2305 verlegt werden
3. Ihr müsst den Port 2306 in der Firewall für das Protokoll UDP freigeben
So ich hoffe das hilft.
Gruß,
moeck
naja kann man so oder so sehen , habe es auch in der alten variante schon deaktiviert und mit der geänderten config wird es halt einffacher und man vergisst es nicht
seit wann kann man feststoffe im Tanke lagern, also entweder oder
dann würde ich das auch mal so machen
#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",350];
civ_spawn_2 = nearestObjects[getMarkerPos "civ_spawn_2",350];
civ_spawn_3 = nearestObjects[getMarkerPos "civ_spawn_3",350];
civ_spawn_4 = nearestObjects[getMarkerPos "civ_spawn_4",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
Fehlen die Marker auf der Karte oder sind im Umkreis von 350 metern keine Gebäude?
Moin,
Du hast aber schon die Marker auf der Karte platziert und diese in der Config eingetragen? Hänge bitte mal die SpawnPointCfg hier an .
Gruß,
moeck
Moin,
da ich aktuell mal wieder in der Entwicklung für ein neues Update stecke und so einiges umbaue bzw. einfacher mache habe ich mir gedacht ich lasse Euch mal eine Kleinigkeit da. Wir haben aktuell schon die Möglichkeit flüssige Stoffe (Bier, Oil, Kerosin) nur in Tankwagen zu lagern, allerdings ist mir das Ganze zu umständlich und fehleranfällig gewesen, daher habe ich das System mal ein wenig modifiziert. Im folgendem möchte ich Euch kurz zeigen wie man das relativ einfach umsetzen kann.
Wie immer gilt, das Tutorial darf gern verwendet allerdings nicht in andere Foren kopiert werden
Gut fangen wir einfach mal an.
1. Config_vItems.hpp
Achtung das ist nur ein Auszug und Ihr müsst alle Eure Items dahingehend erweitern!
class VirtualItems {
//Virtual Items
//SellItems
//Legal
class cement { //Reifen
variable = "cement";
displayName = "STR_Item_CementBag";
weight = 5;
buyPrice = -1;
sellPrice = 2000;
illegal = false;
edible = -1;
icon = "icons\ico_cement.paa";
showPrice = true;
liquid=false;
};
class oilp { //Öl
variable = "oilp";
displayName = "STR_Item_OilP";
weight = 4;
buyPrice = -1;
sellPrice = 5000;
illegal = false;
edible = -1;
icon = "icons\ico_oilProcessed.paa";
liquid=true;
};
};
Alles anzeigen
Die VirtualItems werden um ein Attribut erweitert. Dieses lautet liquidund ist true oder false.
2. Config_Vehicle.hpp
Auch hier müsste ihr die Änderung für alle Fahrzeuge vornehmen
class LifeCfgVehicles {
/*
* Vehicle Configs (Contains textures and other stuff)
*
* "price" is the price before any multipliers set in Master_Config are applied.
*
* Default Multiplier Values & Calculations:
* Civilian [Purchase, Sell]: [1.0, 0.5]
* Cop [Purchase, Sell]: [0.5, 0.5]
* Medic [Purchase, Sell]: [0.75, 0.5]
* ChopShop: Payout = price * 0.25
* GarageSell: Payout = price * [0.5, 0.5, 0.5, -1]
* Cop Impound: Payout = price * 0.1
* Pull Vehicle from Garage: Cost = price * [1, 0.5, 0.75, -1] * [0.5, 0.5, 0.5, -1]
* -- Pull Vehicle & GarageSell Array Explanation = [civ,cop,medic,east]
*
* 1: STRING (Condition)
* Textures config follows { Texture Name, side, {texture(s)path}, Condition}
* Texture(s)path follows this format:
* INDEX 0: Texture Layer 0
* INDEX 1: Texture Layer 1
* INDEX 2: Texture Layer 2
* etc etc etc
*
*/
class Default {
vItemSpace = -1;
conditions = "";
price = -1;
storeLiquid= false;
textures[] = {};
};
class C_Offroad_01_F {
vItemSpace = 80;
conditions = "";
price = 10000;
storeLiquid= false;
textures[] = {};
};
class C_Van_01_fuel_F {
vItemSpace = 150;
conditions = "";
price = 30000;
storeLiquid= true;
textures[] = {};
};
};
Alles anzeigen
Auch hier wurde ein zusätzliches Attribute eingefügt storeLiquidmit den Werten true oder false
3. fn_vehStoreItem.sqf
#include "..\..\script_macros.hpp"
#define ctrlSelData(ctrl) (lbData[##ctrl,(lbCurSel ##ctrl)])
/*
File: fn_vehStoreItem.sqf
Author: Bryan "Tonic" Boardwine
modified by moeck
Description:
Used in the vehicle trunk menu, stores the selected item and puts it in the vehicles virtual inventory
if the vehicle has room for the item.
*/
private ["_ctrl","_num","_totalWeight","_itemWeight","_veh_data","_inv","_index","_val"];
disableSerialization;
if ((life_trunk_vehicle getVariable ["trunk_in_use_by",player]) != player) exitWith { closeDialog 0; hint localize "STR_MISC_VehInvUse"; };
_ctrl = ctrlSelData(3503);
_num = ctrlText 3506;
if (!([_num] call TON_fnc_isnumber)) exitWith {hint localize "STR_MISC_WrongNumFormat";};
_num = parseNumber(_num);
if (_num < 1) exitWith {hint localize "STR_MISC_Under1";};
_totalWeight = [life_trunk_vehicle] call life_fnc_vehicleWeight;
_itemWeight = ([_ctrl] call life_fnc_itemWeight) * _num;
_veh_data = life_trunk_vehicle getVariable ["Trunk",[[],0]];
_inv = _veh_data select 0;
//Hier wird geprüft ob das auch in Fahrzeug passt
_fueltruck = M_CONFIG(getNumber,"LifeCfgVehicles",(typeOf life_trunk_vehicle),"storeLiquid");
_liquidItem = M_CONFIG(getNumber,"VirtualItems",_ctrl,"liquid");
if ((_liquidItem isEqualTo 1) && (_fueltruck isEqualTo 0)) exitWith {hint "BISSU IRRE? Dat Zeug wuerde ueberall auslaufen! Das Fahrzeug kann nur feste Stoffe transportieren!"}; //kann man noch lokalisieren :-P
if ((_liquidItem isEqualTo 0) && (_fueltruck isEqualTo 1)) exitWith {hint "Ey Jung! Dat passt nich durch den Stutzen! Tankwagen sind für Flüssigkeiten da!"}; //kann man noch lokalisieren :-P
if (_ctrl == "goldbar" && {!(life_trunk_vehicle isKindOf "LandVehicle")}) exitWith {hint localize "STR_NOTF_canOnlyStoreInLandVeh";};
if (_ctrl == "money") then {
_index = [_ctrl,_inv] call TON_fnc_index;
if (CASH < _num) exitWith {hint localize "STR_NOTF_notEnoughCashToStoreInVeh";};
if (_index isEqualTo -1) then {
_inv pushBack [_ctrl,_num];
} else {
_val = _inv select _index select 1;
_inv set[_index,[_ctrl,_val + _num]];
};
CASH = CASH - _num;
[0] call SOCK_fnc_updatePartial;
life_trunk_vehicle setVariable ["Trunk",[_inv,(_veh_data select 1) + _itemWeight],true];
[life_trunk_vehicle] call life_fnc_vehInventory;
} else {
if (((_totalWeight select 1) + _itemWeight) > (_totalWeight select 0)) exitWith {hint localize "STR_NOTF_VehicleFullOrInsufCap";};
if (!([false,_ctrl,_num] call life_fnc_handleInv)) exitWith {hint localize "STR_CouldNotRemoveItemsToPutInVeh";};
_index = [_ctrl,_inv] call TON_fnc_index;
if (_index isEqualTo -1) then {
_inv pushBack [_ctrl,_num];
} else {
_val = _inv select _index select 1;
_inv set[_index,[_ctrl,_val + _num]];
};
life_trunk_vehicle setVariable ["Trunk",[_inv,(_veh_data select 1) + _itemWeight],true];
[life_trunk_vehicle] call life_fnc_vehInventory;
};
Alles anzeigen
Damit sind wir auch schon fertig
Ist nichts Großes aber ganz hilfreich wenn man nicht nur Sand / Kupfer / ... als Route machen möchte. Natürlich könnte man das auch noch weiterspinnen und die Fahrzeugauswahl auf weitere Sachen einschränken. Dem Ganzen sind eigentlich keine Grenzen gesetzt
Gruß,
moeck
Moin,
und da die 3.1.4.8 schon etwas angestaubt ist hier mal die Änderungen für die 5.0
Ihr müsste eigentlich nur 2 Dateien etwas anpassen und dann sollte das auch mit der 5.0 bzw. 4.4+ laufen.
/*
File: empVehicles.sqf
Author: © 2014 nano2K
*/
private["_index","_vehicle"];
disableSerialization;
if(!isNull (findDisplay 3494)) then {
if(nn_empInUse) exitWith { hint "Das EMP warnt grade schon ein Fahrzeug oder die Batterie muss sich erst wieder aufladen"; };
nn_empInUse = true;
_index = lbCurSel (2902);
_vehicle = nn_last_vehicles select _index;
if(isNull _vehicle) exitWith {};
(vehicle player) say3D "empacsound";
[_vehicle] remoteExec ["life_fnc_vehicleEmpd",crew _vehicle];
sleep (3 * 60);
nn_empInUse = false;
};
Alles anzeigen
/*
File: warnVehicles.sqf
Author: © 2014 nano2K
*/
private["_index","_vehicle"];
disableSerialization;
if(!isNull (findDisplay 3494)) then {
if(nn_empInUse) exitWith { hint "Das EMP warnt grade schon ein Fahrzeug"; };
nn_empInUse = true;
_index = lbCurSel (2902);
_vehicle = nn_last_vehicles select _index;
if(isNull _vehicle) exitWith {};
[_vehicle] remoteExec ["life_fnc_vehicleWarned",crew _vehicle];
sleep 10;
nn_empInUse = false;
};
Alles anzeigen
Und zusätzlich müsst ihr natürlich die beiden Funktionen noch in der CfgRemoteExec.hpp freischalten.
So damit sollte es auch unter 5.0 mit remoteexec laufen.
Viel Spass und raus,
moeck
TaktischerSpeck jepp, bis auf die Höhe das Spawns wird hier nix verändert. Daher sollte der Rest so funktionieren wie bsiher . Es kann nur sein, dass sich ein Fehler eingeschlichen hat und eventuell andere Dinge nicht mehr das tun was sie sollen
Ole bitte hänge mal deine fn_vehicleShopBuy.sqf und deine fn_unimpound.sqf hier an
Hast das auch im Kaufmenü angepasst?
Moin,
und was hat das mit dem Spawn zu tun? Ich glaube da liegt der Fehler in der Abfrage bei den Cops
Moin,
für die Uniformen solltest Du Dir mal \core\medical\fn_medicLoadout.sqf anschauen und die Tazer der Cops muss Du zum einen in den Shops einfügen und natürlich in der \core\functions\fn_handleDamage.sqf entsprechend ändern.
Achtung Du musst nicht nur die Waffe sondern auch das Projektil anpassen sonst wird das nix.