Перейти к содержимому


Фотография

Что это значит _This


Лучший Ответ Lex , 06 November 2016 - 19:02

Подключает код из другого файла:

#include "setupServerPVars.sqf"

Здесь передается пустой массив в качестве аргументов:

[] execVM "server\functions\serverVars.sqf";

Или я не понял вопроса?

 

P.S. Советую длинный код сворачивать в спойлер на форуме

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 сообщений
  • Откуда:mscw

Отправлено 06 November 2016 - 16:30

_vehicle = _this;
_driver = driver _vehicle;
_eng = isengineon _vehicle;
_vehicle setVelocity [0,0,0];
 
 
 
 привет всем разбираюсь с кодом других сценариев и в каждом из них мне не понятно что означает переменная _this......они везде ее пишут и нигде нет ни слова что она означает!!!!так же вот тут не понятно полдностью!! 
 
if (!isServer) exitwith {}; >>>>> и что это означачет?
#include "sideMissionDefines.sqf" >>>>>и что вот это вложение означает?
 
private ["_nbUnits", "_wreckPos", "_wreck", "_box1", "_box2"];
 
_setupVars =
{
_missionType = "Aircraft Wreck";
_locationsArray = MissionSpawnMarkers;
_nbUnits = if (missionDifficultyHard) then { AI_GROUP_LARGE } else { AI_GROUP_MEDIUM };
};
 
_setupObjects =
{
_missionPos = markerPos _missionLocation; >>>>>> откуда он ее взял вообще!?что она значит здесь?мб это глобальная переменная!?
 
_wreckPos = _missionPos vectorAdd ([[25 + random 20, 0, 0], random 360] call BIS_fnc_rotateVector2D);
 
// Class, Position, Fuel, Ammo, Damage, Special
_wreck = ["O_Heli_Light_02_unarmed_F", _wreckPos, 0, 0, 1] call createMissionVehicle;
 
 
 
 
 
 
 
 
 
if (!isServer) exitwith {};
 
private ["_validLocations", "_selectedMarker", "_markerIndex"]; и зачем вот  это вообще писать????
 
_validLocations = [MissionSpawnMarkers, { !(_x select 1) }] call BIS_fnc_conditionalSelect;
 
_selectedMarker = (_validLocations call BIS_fnc_selectRandom) select 0;
_markerIndex = [MissionSpawnMarkers, _selectedMarker] call BIS_fnc_findInPairs;
 
(MissionSpawnMarkers select _markerIndex) set [1, true];
 
[markerPos _selectedMarker, _markerIndex]
 
 
 
 
 
 
 
 
 
#define compile(file) [_path, file] call mf_compile
private "_path";
_path = _this;>>>>>>>>> откуда это????????
 
mf_player_actions = [];
mf_player_actions_definitions = [];
 
mf_player_actions_set = compile("set.sqf");
mf_player_actions_refresh = compile("refresh.sqf");
 
a3w_actions = [];
 
a3w_actions_start = compile("start.sqf");
a3w_actions_notify = compile("notify.sqf");
a3w_actions_mutex = false;
 
 
 
 
 
 
вот еще это самое начало скрипта 
 
 
 
 
if (!isNil "storePurchaseHandle" && {typeName storePurchaseHandle == "SCRIPT"} && {!scriptDone storePurchaseHandle}) exitWith {hint "Please wait, your previous purchase is being processed"};
 
#include "dialog\gunstoreDefines.sqf";
//#include "addons\proving_ground\defs.hpp"
#define GET_DISPLAY (findDisplay balca_debug_VC_IDD)
#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a)
#define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)})
#define KINDOF_ARRAY(a, B) [##a,##b] call {_veh = _this select 0;_types = _this select 1;_res = false; {if (_veh isKindOf _x) exitwith { _res = true };} forEach _types;_res}    
 
 
 
откуда он берет эту переменную если она приватная для этого скрипта?!?!?!?!?!??!?!?!?!?!?!?!?!?!?!?!?!?!?!??!?!?!?!?!?!? он в добавко еще выбирает что то в массиве.................я вообще не могу понять
 ЭТО КуСОК КОДА ИЗ СКРИПТА В ПАПКЕ С ДРУГИМИ СКРИПТАМИ!!!!!
 

Сообщение отредактировал lopster102: 06 November 2016 - 17:16

  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 06 November 2016 - 17:45

https://arma3.ru/for...kriptopisaniiu/


  • 0

#3 OFFLINE   Lex

Lex

    Рядовой

  • Пользователи
  • 8 сообщений
  • Откуда:Samara
  • Отряд:SW

Отправлено 06 November 2016 - 18:24

_this это служебная переменная, содержащая переданные аргументы.

 

Например, есть некий скрипт myScript.sqf. Пусть его вызывают из другого кода:

[1, _car] execVm "myScript.sqf";

Как видишь, при вызове скрипта, я передаю в него массив [1, _car] аргументов.

Теперь, допустим, в файле myScript.sqf такой код:

_state = _this select 0;
_vehicle = _this select 1;

При вызове этого кода, переменная _this будет содержать переданный в этот код массив [1, _car]

Соответственно, после выполнения переменная _state = 1 и _vehicle = _car

 

Надеюсь объяснил доступно.

P.S. А вообще очень рекомендую почитать уроки, на которые скинул ссылку SteelRat


  • 0

#4 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 сообщений
  • Откуда:mscw

Отправлено 06 November 2016 - 18:40

спасибо ты объяснил как нужно просто добрейший ты человек !!!а уроки эти без конкретных примеров мне не понятны я так не могу понять.........теперь ясно к чему это _this ... только вот вопрос а сколько скриптов можно вызвать для одного и того же массива !? тут просто в каждом скрипте это переменная служебная получается ребята положили в скрипт массив из аргументов и применили его ко всем скриптам чтобы потом не назначать переменные?!и вопрос  как узнать что это служебная переменная она может называться только _this что ли?


Сообщение отредактировал lopster102: 06 November 2016 - 18:42

  • 0

#5 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 сообщений
  • Откуда:mscw

Отправлено 06 November 2016 - 18:50

вот нашел эти аргументы откуда они их берут только как ??? тут не один массив как узнает что он выбирает нужны аргумент в другом скрипте????
 
 
if (!isServer) exitWith {};
 
 
 
diag_log "WASTELAND SERVER - Initializing Server Vars";
 
#include "setupServerPVars.sqf"  и что означает вот это строчка вообще не понять....
 
currentStaticHelis = []; // Storage for the heli marker numbers so that we don't spawn wrecks on top of live helis
 
//Civilian Vehicle List - Random Spawns
civilianVehicles =
[
"C_Quadbike_01_F",
"C_Hatchback_01_F",
"C_Hatchback_01_sport_F",
"C_SUV_01_F",
"C_Offroad_01_F",
"I_G_Offroad_01_F",
"C_Van_01_box_F",
"C_Van_01_transport_F"
];
 
//Light Military Vehicle List - Random Spawns
lightMilitaryVehicles =
[
"B_Quadbike_01_F",
"O_Quadbike_01_F",
"I_Quadbike_01_F",
"I_G_Quadbike_01_F",
// "O_Truck_02_covered_F",
"I_Truck_02_covered_F",
// "O_Truck_02_transport_F",
// "I_Truck_02_transport_F",
"I_G_Offroad_01_armed_F"
];
 
//Medium Military Vehicle List - Random Spawns
mediumMilitaryVehicles =
[
// "I_Truck_02_Fuel_F",
// "O_Truck_02_Fuel_F",
// "I_Truck_02_medical_F",
// "O_Truck_02_medical_F",
"B_MRAP_01_F",
"O_MRAP_02_F",
"I_MRAP_03_F"
];
 
//Water Vehicles - Random Spawns
waterVehicles =
[
// "B_Lifeboat",
// "O_Lifeboat",
// "C_Rubberboat",
// "B_SDV_01_F",
// "O_SDV_01_F",
// "I_SDV_01_F",
"B_Boat_Transport_01_F",
// "O_Boat_Transport_01_F",
// "I_Boat_Transport_01_F",
// "I_G_Boat_Transport_01_F",
"B_Boat_Armed_01_minigun_F",
"O_Boat_Armed_01_hmg_F",
"I_Boat_Armed_01_minigun_F",
"C_Boat_Civil_01_F",
"C_Boat_Civil_01_police_F",
"C_Boat_Civil_01_rescue_F"
];
 
//Essential List - Random Spawns.
essentialsList =
[
"B_supplyCrate_F",
"Land_Sacks_goods_F",
"Land_BarrelWater_F"
];
 
//Object List - Random Spawns.
objectList =
[
"CamoNet_INDP_open_F",
"CamoNet_INDP_open_F",
"Land_BagBunker_Large_F",
"Land_BagBunker_Large_F",
"Land_BagBunker_Small_F",
"Land_BagBunker_Small_F",
"Land_BagBunker_Tower_F",
"Land_BagBunker_Tower_F",
"Land_BarGate_F",
"Land_Canal_Wall_Stairs_F",
"Land_Canal_WallSmall_10m_F",
"Land_Canal_WallSmall_10m_F",
"Land_CncBarrierMedium4_F",
"Land_CncShelter_F",
"Land_CncWall4_F",
"Land_HBarrier_1_F",
"Land_HBarrier_3_F",
"Land_HBarrier_5_F",
"Land_HBarrier_5_F",
"Land_HBarrier_5_F",
"Land_HBarrierBig_F",
"Land_HBarrierBig_F",
"Land_HBarrierBig_F",
"Land_HBarrierBig_F",
"Land_HBarrierTower_F",
"Land_HBarrierWall4_F",
"Land_HBarrierWall4_F",
"Land_HBarrierWall6_F",
"Land_HBarrierWall6_F",
"Land_MetalBarrel_F",
"Land_Mil_ConcreteWall_F",
"Land_Pipes_large_F",
"Land_RampConcrete_F",
"Land_RampConcreteHigh_F",
"Land_LampHalogen_F",
"Land_LampHalogen_F",
"Land_Shoot_House_Wall_F"
];

в вот что в init.sqf 

if (!isServer) exitWith {};
 
externalConfigFolder = "\A3Wasteland_settings";
 
vChecksum = compileFinal str call A3W_fnc_generateKey;
 
// Corpse deletion on disconnect if player alive and player saving on + inventory save
addMissionEventHandler ["HandleDisconnect",
{
_unit = _this select 0;
_id = _this select 1;
_uid = _this select 2;
_name = _this select 3;
 
diag_log format ["HandleDisconnect - %1", [_name, _uid]];
 
if (alive _unit) then
{
if (!(_unit call A3W_fnc_isUnconscious) && {!isNil "isConfigOn" && {["A3W_playerSaving"] call isConfigOn}}) then
{
if (!(_unit getVariable ["playerSpawning", false]) && typeOf _unit != "HeadlessClient_F") then
{
[_uid, [], [_unit, false] call fn_getPlayerData] spawn fn_saveAccount;
};
 
deleteVehicle _unit;
};
}
else
{
if (vehicle _unit != _unit && !isNil "fn_ejectCorpse") then
{
_unit spawn fn_ejectCorpse;
};
};
 
false
}];
 
//Execute Server Side Scripts.
call compile preprocessFileLineNumbers "server\antihack\setup.sqf";
[] execVM "server\admins.sqf";
[] execVM "server\functions\serverVars.sqf";
_serverCompileHandle = [] spawn compile preprocessFileLineNumbers "server\functions\serverCompile.sqf"; // scriptDone stays stuck on false when using execVM on Linux
[] execVM "server\functions\broadcaster.sqf";
[] execVM "server\functions\relations.sqf";
[] execVM (externalConfigFolder + "\init.sqf");

Сообщение отредактировал lopster102: 06 November 2016 - 18:51

  • 0

#6 OFFLINE   Lex

Lex

    Рядовой

  • Пользователи
  • 8 сообщений
  • Откуда:Samara
  • Отряд:SW

Отправлено 06 November 2016 - 19:02   Лучший Ответ

Подключает код из другого файла:

#include "setupServerPVars.sqf"

Здесь передается пустой массив в качестве аргументов:

[] execVM "server\functions\serverVars.sqf";

Или я не понял вопроса?

 

P.S. Советую длинный код сворачивать в спойлер на форуме


Сообщение отредактировал Lex: 06 November 2016 - 19:03

  • 0

#7 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 сообщений
  • Откуда:mscw

Отправлено 06 November 2016 - 19:11

спасибо тебе Lex!! я просто  делаю свой проект  и учусь на примерах из других сценариев....... Спасибо за функцию удаления техники Все работает в скрипте как я и хотел теперь !!!!!!!приглашаю тебя кстати ко мне на сервер если интересно .....в стиме меня просто добавь и я всегда онлайн свой сервер заходи в любое время ....ваня лучший в стиме добавляй


  • 0




Яндекс.Метрика