Jump to content

shurix

Member
  • Posts

    119
  • Joined

  • Last visited

Posts posted by shurix

  1. on server:

    missionNamespace setVariable ["WAI_Mission_Message", _text];
    publicVariable "WAI_Mission_Message";
     
    on client:
    "WAI_Mission_Message" addPublicVariableEventHandler {hint (_this select 1)};
  2. This function is overwritten in Epoch with the following:

    _uhLol = "everything is outcommit! - Skaronator ;)";
    

    Everything else is commented out. You need to find another way to do what needs to be done.

  3. egamestudio - try to play around with settings in fn_autopop.sqf to set number of zombies to a manageable number

    [_myZone,_markName,20,false,true,true] spawn INF_fnc_spawner;

     

    currently, Infected script is running on a server and can slow it down considerably.

    I'm working on moving zombies to a headless client. Will share when completed.

  4. The only caveat with Infected mod is that it's based on hard set markers identified in the mission file. In the init file, triggers are added to each marker location. I don't think this would be a hard thing to change though.

     

    You may wanna start with

    _locations = (nearestLocations [getArray (configFile >> "CfgWorlds" >> worldName >> "centerPosition"), ["NameCityCapital","NameCity","Airport","NameVillage","CityCenter"], 20000]);

    to get all your map locations.

    Next I would put a trigger 300x300 on each location which would trigger as per the Infected mod's settings when player enters the trigger zone.

     

    I'm running my main server on Altis but once 0.3.0.1 is released I want to move to M.S.K.E islands (this is where the video was made) http://forums.bistudio.com/showthread.php?189416-M-S-K-E-4-Islands-Map

     

    Due to so many differences between Z scripts and maps and other scripts you are already using, no one can give you a perfectly working scenario to make this work. My post was intended for admins who already are using some sort of Z script but struggle to put actual zombie faces on the models.

  5. I was able to make my zombies look like zombies

     

    https://www.youtube.com/watch?v=r5SBC4JPjzs

     

    I used Infected script as the platform http://forums.bistudio.com/showthread.php?181485-Infected-Script-by-Gulozwood

     

    You will need golozwood's additional skins as well https://drive.google.com/file/d/0B2eMttqo9un-eGtQZUNqYVVQQjQ/edit?usp=sharing

     

    When you spawn a zombie with your server-side script you need to set the face on each MP client. To do that you will need to send Z object as a public variable

    _object = infectedattacker createUnit ["O_soldier_F",_buildingPos, [], 1, "PRIVATE"];
    
    missionNamespace setVariable ["infected", _object];
    publicVariable "infected";
    

    Then on your mission side I have a handler

     

    init.sqf:

    [] execVM "custom\remote.sqf";
    

    MPMissions\epoch.MSKE\custom\remote.sqf:

    if(!isDedicated) then {
    	setZomboyFace =  
    	{  
    		_me = _this; 
    		_chosenFace = ["zombi","zomboy"] call BIS_fnc_selectRandom; 
    		//diag_log format["_me=%1",_me];
    		_me setFace _chosenFace; 
    		_mimic = ["dead","danger","hurt"]  call BIS_fnc_selectRandom; 
    		_me setMimic _mimic;
    		enablesentences false; 
    		_me setObjectMaterial [0, "A3\Characters_F\Common\Data\basicbody_injury.rvmat"]; 
    	};  
    	
    	"infected" addPublicVariableEventHandler {(_this select 1) call setZomboyFace;};
    };
    
  6. try moving server part on top of init.sqf file. maybe the error happens in one of the earlier statements and init.sqf simply exits before it reaches the end

    if (isServer) then {
     
    //place new server-side objects
    diag_log "Loading Custom Buildings";
    execVM "\q\addons\custom_server\objects\airplane.sqf"
    diag_log "Finished Loading Custom Buildings";
    };
    
    
    // Welcome Credits
    [] execVM "welcome\welcome.sqf";
     
    [] execVM "EventMenu\eventmenu_loop.sqf";
     
    [] execVM "wai\remote.sqf";
     
    [] execVM "scripts\fn_statusBar.sqf";
     
    [] execVM "zcp.sqf";
     
    //Supply Drop Alert Event
    "SDROP_Alert" addPublicVariableEventHandler {
    hint parseText format["%1", _this select 1];
    };
     
    if(hasInterface)then{execVM "semClient.sqf"};
     
    if (!isDedicated) then {
    "VEMFChatMsg" addPublicVariableEventHandler {
    systemChat ((_this select 1) select 0);
    [
    [
    [((_this select 1) select 0),"align = 'center' size = '1' font='PuristaBold'"],
    ["","<br/>"],
    [((_this select 1) select 1),"align = 'center' size = '0.5'"]
    ]
    ] spawn BIS_fnc_typeText2;
    VEMFChatMsg = nil;
    };
    };
     
    
  7. Tried everything, its still not loading the damn plane xD

     

     your init.sqf contains an extra closing bracket in the end that should go above "if (isServer)" part

    // Welcome Credits
    [] execVM "welcome\welcome.sqf";
     
    [] execVM "EventMenu\eventmenu_loop.sqf";
     
    [] execVM "wai\remote.sqf";
     
    [] execVM "scripts\fn_statusBar.sqf";
     
    [] execVM "zcp.sqf";
     
    //Supply Drop Alert Event
    "SDROP_Alert" addPublicVariableEventHandler {
    hint parseText format["%1", _this select 1];
    };
     
    if(hasInterface)then{execVM "semClient.sqf"};
     
    if (!isDedicated) then {
    "VEMFChatMsg" addPublicVariableEventHandler {
    systemChat ((_this select 1) select 0);
    [
    [
    [((_this select 1) select 0),"align = 'center' size = '1' font='PuristaBold'"],
    ["","<br/>"],
    [((_this select 1) select 1),"align = 'center' size = '0.5'"]
    ]
    ] spawn BIS_fnc_typeText2;
    VEMFChatMsg = nil;
    };
    };
     
    if (isServer) then {
     
    //place new server-side objects
    diag_log "Loading Custom Buildings";
    execVM "\q\addons\custom_server\objects\airplane.sqf"
    diag_log "Finished Loading Custom Buildings";
    };
    
  8. Hey again!

    I did what you said now, but nothing is spawning on the server. Can it have anything to do with the fact that im trying to get a vehicle on the server and the template you posted here are calling for objects?

     

    If you are spawning a vehicle using this script, you need to set

    _veh call EPOCH_server_setVToken;
    

    so that the cleanup script does not delete your vehicles. This piece of script can only run on the server-side. If you try to run it on the mission (client) side you will get an error.

  9. try moving your custom buildings file to a server-side pbo file called custom_server.pbo

     

    MPMissions\epoch.Altis\init.sqf is calling script files from \@EpochHive\Addons\custom_server.pbo

    if (isServer) then {
    	
    	//place new server-side objects
    	diag_log "Loading Custom Buildings";
    	execVM "\q\addons\custom_server\objects\alt_light.sqf"
    	diag_log "Finished Loading Custom Buildings";
    
    };
    

    @EpochHive\Addons\custom_server\objects\alt_light.sqf

    private ["_objs"];
    _objs = [
    	["Land_LampAirport_F",[16714.1,13624.6,0],0,[[0,1,0],[0,0,1]],false],
    	["Land_LampAirport_F",[16721.5,13528.5,-9.53674e-007],0,[[0,1,0],[0,0,1]],false],
    	["Land_LampAirport_F",[16639.6,13532.4,-9.53674e-007],0,[[0,1,0],[0,0,1]],false],
    	["Land_LampAirport_F",[16805.7,13677.2,0],0,[[0,1,0],[0,0,1]],false],
    	["Land_LampAirport_F",[16832.2,13561,-9.53674e-007],0,[[0,1,0],[0,0,1]],false]
    ];
    
    {
    	private ["_obj"];
    	_obj = createVehicle [_x select 0, [0,0,0], [], 0, "CAN_COLLIDE"];
    	if (_x select 4) then {
    		_obj setDir (_x select 2);
    		_obj setPos (_x select 1);
    	} else {
    		_obj setPosATL (_x select 1);
    		_obj setVectorDirAndUp (_x select 3);
    	};
    } foreach _objs;
    
  10. Thanks, I am using A3EAI at the moment, but will take a look at WAI. 

     

    Using WAI, do the vehicles persist over server restarts if a player has snagged one?

     

    there is a script to custom_publish a vehicle. however, I found that there is some sort of vehicle limit imposed by Epoch and if your EPOCH_VehicleSlotCount==0 there is no way to add a new database slot.So the workaround that I use is to look for a rubber boat or a kart nearby, remove it and use it's database slot to publish the vehicle that the player has won from AI on a mission

     

    If someone has any idea on how to add a new vehicle slot to the database, please share

    _instanceID = call EPOCH_fn_InstanceID;
    diag_log format["WAI: _instanceID:%1",_instanceID];
    diag_log format["WAI: EPOCH_VehicleSlotCount:%1",EPOCH_VehicleSlotCount];
    diag_log format["WAI: EPOCH_VehicleSlots:%1",EPOCH_VehicleSlots];
    // _allowedVehicleList = EPOCH_allowedVehiclesList;
    // diag_log format["WAI: EPOCH_allowedVehiclesList:%1",_allowedVehicleList];
    _vehObj = _this;
    _randomVehicleIndex = -1;
    
    if (EPOCH_VehicleSlotCount==0) then {
    	
    	if (!isNil "EPOCH_allowedVehiclesList") then {
    		_countAllowedVeh=count EPOCH_allowedVehiclesList;
    		_randomVehicleIndex=floor(random(_countAllowedVeh));
    		_randomVehicle=EPOCH_allowedVehiclesList select _randomVehicleIndex;
    		_vehClass=_randomVehicle select 0;
    		_velimit=_randomVehicle select 1;
    		_vehicleCount={typeOf _x==_vehClass}count vehicles;
    		if(_vehicleCount >=_velimit)then{
    			EPOCH_allowedVehiclesList deleteAt _randomVehicleIndex;
    		} else {
    			if(_vehicleCount==(_velimit-1))then{
    				EPOCH_allowedVehiclesList deleteAt _randomVehicleIndex;
    			};
    		};
    	} else {
    		_vehlist = nearestObjects [position _vehObj, ["C_Rubberboat_EPOCH","C_Rubberboat_02_EPOCH","C_Rubberboat_03_EPOCH","C_Rubberboat_04_EPOCH""C_Boat_Civil_01_EPOCH","K01","K02","K03","K04","jetski_epoch"], 10000];
    		diag_log format["WAI: count _vehlist:%1 | _randomVehicle:%2",count _vehlist,_vehlist select 0];
    		_vehToDelete = _vehlist select 0;
    		_randomVehicleIndex = _vehToDelete getVariable["VEHICLE_SLOT","ABORT"];
    		deleteVehicle _vehToDelete;
    	};
    
    };
    _slot = "";
    if !(EPOCH_VehicleSlots isEqualTo[]) then {
    	_slot = EPOCH_VehicleSlots select 0;
    	EPOCH_VehicleSlots = EPOCH_VehicleSlots - [_slot];
    	EPOCH_VehicleSlotCount = count EPOCH_VehicleSlots;
    	publicVariable 'EPOCH_VehicleSlotCount';
    } else {
    	diag_log format["WAI: _slot = _randomVehicleIndex:%1",_randomVehicleIndex];
    	_slot = _randomVehicleIndex;
    };
    	
    if (str(_slot) != "") then {
    	_vehObj setVariable["VEHICLE_SLOT",_slot,true];
    
    	private["_aa","_ab","_ac","_ad","_ae","_af","_ag","_ah","_ai","_aj","_ak","_al","_am","_an","_ao","_ap","_aq","_ar"];
    	if(!isNull _vehObj) then {
    		_aa=_vehObj;
    		// _ac=_vehObj getVariable["VEHICLE_SLOT","ABORT"];
    		// if(_ac !="ABORT")then{
    			_ad=format["%1:%2",(call EPOCH_fn_InstanceID),_slot];
    			_aj=[];
    			_ak=_aa call EPOCH_getHitpoints;
    			{
    				_aj pushBack(_aa getHitPointDamage _x);
    			}forEach _ak;
    			_wepsItemsCargo=weaponsItemsCargo _aa;
    			if(isNil "_wepsItemsCargo")then{
    				_wepsItemsCargo=[];
    			};
    			_magsAmmoCargo=magazinesAmmoCargo _aa;
    			if(isNil "_magsAmmoCargo")then{
    				_magsAmmoCargo=[];
    			};
    			_aq=[[],[]];
    			{
    				_ar=_aq find(_x select 0);
    				if(_ar >=0)then{
    				(_aq select 1)set[_ar,((_aq select 1)select _ar)+(_x select 1)];}
    				else{(_aq select 0)pushBack(_x select 0);(_aq select 1)pushBack(_x select 1);};
    			}forEach _magsAmmoCargo;
    			_al=[_wepsItemsCargo,_aq,getBackpackCargo _aa,getItemCargo _aa];
    			_ap=_aa getVariable["VEHICLE_TEXTURE",0];
    			_am=[typeOf _aa,[getposATL _aa,vectordir _aa,vectorup _aa],damage _aa,_aj,fuel _aa,_al,magazinesAmmo _aa,_ap];
    			["Vehicle",_ad,EPOCH_expiresVehicle,_am] call EPOCH_server_hiveSETEX;
    		//};
    	};
    
    	_vehObj call EPOCH_server_vehicleInit;
    
    };
    
×
×
  • Create New...