Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * ExileServer_object_player_createBambi
- *
- * Exile Mod
- * www.exilemod.com
- * © 2015 Exile Mod Team
- *
- * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
- * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
- */
- private["_sessionID","_requestingPlayer","_spawnLocationMarkerName","_thugToCheck","_HaloSpawnCheck","_bambiPlayer","_accountData","_direction","_position","_spawnAreaPosition","_spawnAreaRadius","_clanID","_clanData","_clanGroup","_player","_devFriendlyMode","_devs","_parachuteNetID","_spawnType","_parachuteObject"];
- _sessionID = _this select 0;
- _requestingPlayer = _this select 1;
- _spawnLocationMarkerName = _this select 2;
- _bambiPlayer = _this select 3;
- _accountData = _this select 4;
- _direction = random 360;
- if ((count ExileSpawnZoneMarkerPositions) isEqualTo 0) then
- {
- _position = call ExileClient_util_world_findCoastPosition;
- if ((toLower worldName) isEqualTo "namalsk") then
- {
- while {(_position distance2D [76.4239, 107.141, 0]) < 100} do
- {
- _position = call ExileClient_util_world_findCoastPosition;
- };
- };
- }
- else
- {
- _spawnAreaPosition = getMarkerPos _spawnLocationMarkerName;
- _spawnAreaRadius = getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "spawnZoneRadius");
- _position = [_spawnAreaPosition, _spawnAreaRadius] call ExileClient_util_math_getRandomPositionInCircle;
- while {surfaceIsWater _position} do
- {
- _position = [_spawnAreaPosition, _spawnAreaRadius] call ExileClient_util_math_getRandomPositionInCircle;
- };
- };
- _name = name _requestingPlayer;
- _clanID = (_accountData select 3);
- if !((typeName _clanID) isEqualTo "SCALAR") then
- {
- _clanID = -1;
- _clanData = [];
- }
- else
- {
- _clanData = missionNamespace getVariable [format ["ExileServer_clan_%1",_clanID],[]];
- if(isNull (_clanData select 5))then
- {
- _clanGroup = createGroup independent;
- _clanData set [5,_clanGroup];
- _clanGroup setGroupIdGlobal [_clanData select 0];
- missionNameSpace setVariable [format ["ExileServer_clan_%1",_clanID],_clanData];
- }
- else
- {
- _clanGroup = (_clanData select 5);
- };
- [_player] joinSilent _clanGroup;
- };
- _bambiPlayer setPosATL [_position select 0,_position select 1,0];
- _bambiPlayer disableAI "FSM";
- _bambiPlayer disableAI "MOVE";
- _bambiPlayer disableAI "AUTOTARGET";
- _bambiPlayer disableAI "TARGET";
- _bambiPlayer disableAI "CHECKVISIBLE";
- _bambiPlayer setDir _direction;
- _bambiPlayer setName _name;
- _bambiPlayer setVariable ["ExileMoney", 0, true];
- _bambiPlayer setVariable ["ExileScore", (_accountData select 0)];
- _bambiPlayer setVariable ["ExileKills", (_accountData select 1)];
- _bambiPlayer setVariable ["ExileDeaths", (_accountData select 2)];
- _bambiPlayer setVariable ["ExileClanID", _clanID];
- _bambiPlayer setVariable ["ExileClanData", _clanData];
- _bambiPlayer setVariable ["ExileHunger", 100];
- _bambiPlayer setVariable ["ExileThirst", 100];
- _bambiPlayer setVariable ["ExileTemperature", 37];
- _bambiPlayer setVariable ["ExileWetness", 0];
- _bambiPlayer setVariable ["ExileAlcohol", 0];
- _bambiPlayer setVariable ["ExileName", _name];
- _bambiPlayer setVariable ["ExileOwnerUID", getPlayerUID _requestingPlayer];
- _bambiPlayer setVariable ["ExileIsBambi", true];
- _bambiPlayer setVariable ["ExileXM8IsOnline", false, true];
- _bambiPlayer setVariable ["ExileLocker", (_accountData select 4), true];
- _devFriendlyMode = getNumber (configFile >> "CfgSettings" >> "ServerSettings" >> "devFriendyMode");
- if (_devFriendlyMode isEqualTo 1) then
- {
- _devs = getArray (configFile >> "CfgSettings" >> "ServerSettings" >> "devs");
- {
- if ((getPlayerUID _requestingPlayer) isEqualTo (_x select 0))exitWith
- {
- if((name _requestingPlayer) isEqualTo (_x select 1))then
- {
- _bambiPlayer setVariable ["ExileMoney", 500000, true];
- _bambiPlayer setVariable ["ExileScore", 100000];
- };
- };
- }
- forEach _devs;
- };
- _parachuteNetID = "";
- _thugToCheck = _sessionID call ExileServer_system_session_getPlayerObject;
- _HaloSpawnCheck = _thugToCheck getVariable ["playerWantsHaloSpawn", 0];
- if (_HaloSpawnCheck isEqualTo 1) then
- {
- _position set [2, getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "parachuteDropHeight")];
- if ((getNumber(configFile >> "CfgSettings" >> "BambiSettings" >> "haloJump")) isEqualTo 1) then
- {
- _bambiPlayer addBackpackGlobal "B_Parachute";
- _bambiPlayer setPosATL _position;
- _spawnType = 2;
- }
- else
- {
- _parachuteObject = createVehicle ["Steerable_Parachute_F", _position, [], 0, "CAN_COLLIDE"];
- _parachuteObject setDir _direction;
- _parachuteObject setPosATL _position;
- _parachuteObject enableSimulationGlobal true;
- _parachuteNetID = netId _parachuteObject;
- _spawnType = 1;
- };
- }
- else
- {
- _spawnType = 0;
- };
- _bambiPlayer addMPEventHandler ["MPKilled", {_this call ExileServer_object_player_event_onMpKilled}];
- _bambiPlayer call ExileServer_object_player_database_insert;
- _bambiPlayer call ExileServer_object_player_database_update;
- [
- _sessionID,
- "createPlayerResponse",
- [
- _bambiPlayer,
- _parachuteNetID,
- str (_accountData select 0),
- (_accountData select 1),
- (_accountData select 2),
- 100,
- 100,
- 0,
- (getNumber (configFile >> "CfgSettings" >> "BambiSettings" >> "protectionDuration")) * 60,
- _clanData,
- _spawnType
- ]
- ]
- call ExileServer_system_network_send_to;
- [_sessionID, _bambiPlayer] call ExileServer_system_session_update;
- true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement