Jump to content
Archer_MT

[Question] differences in code implemented in editor and in MP games

Recommended Posts

private ["_cough"]; 
_cough = selectRandom RZ_HumanCoughArray;
[player, _cough] remoteExecCall ["say3D"];
[[1.5, 2, 10],player] remoteExecCall ["fnc_RyanZombies_AddCamShake"];

 

The above code works fine in the editor. however when i try to put this codes in my exile server, there is nothing happened.   Is there differences  in editor and in MP games

Share this post


Link to post
Share on other sites
Spoiler

private ["_exitA","_exitB","_exitWeather","_fatigue","_rainLevel","_damage","_uniform","_cover","_fire","_distanceToCover","_distanceToFire","_showSick","_showCold","_effectsCheck","_warm","_sick","_healthyInd","_cough"];

/** SETTINGS **/
/** Notifications **/

_showSick = true; //True to enable notifications "Eg You are getting sick"
_showCold = true; //True to enable notifications "Eg You are getting cold"
_effectsCheck = 5; //Time in seconds that the weather effects will apply. This time is x2, so 60 is actually 120. Due to the way the script works.
_healthyInd = true; // If true - will display a "You are healthy" status when the character is not sick or cold.

_coldClothes =
[
        "", //NAKED - DO NOT CHANGE
        "U_BasicBody",
        "U_AttisBody",
        "U_AntigonaBody",
        "Exile_Uniform_BambiOverall",
        //Civilian
        "U_C_Journalist",
        "U_C_Poloshirt_blue",
        "U_C_Poloshirt_burgundy",
        "U_C_Poloshirt_salmon",
        "U_C_Poloshirt_stripped",
        "U_C_Poloshirt_tricolour",
        "U_C_Poor_1",
        "U_C_Poor_2",
        "U_C_Poor_shorts_1",
        "U_OrestesBody",
        "U_Rangemaster",
        "U_NikosBody",
        "U_Competitor",
        //Soldier
        "U_B_CombatUniform_mcam_tshirt",
        "U_I_CombatUniform_shortsleeve",
        "U_I_CombatUniform_tshirt",
        "U_I_G_Story_Protagonist_F",
        //Guarilla
        "U_I_G_resistanceLeader_F",
        "U_BG_Guerilla1_1",
        "U_BG_Guerilla2_2",
        "U_BG_Guerilla2_3",
        "U_BG_Guerilla3_1",
        "U_BG_Guerilla2_1",
        "U_IG_Guerilla2_3",
        "U_IG_Guerilla2_2",
        "U_IG_Guerilla1_1",
        "U_IG_Guerilla2_1",
        //Special
        "U_B_survival_uniform",
        "U_I_Wetsuit",
        "U_O_Wetsuit",
        "U_B_Wetsuit",
        "Exile_Uniform_Woodland"
        ];

        sick = false;
        _warm = true;
        cold = 0;
        _sickChance = 0;
        sickValue = 0;
        _fatigue = 0;
        _rainLevel = rain;
        _damage = damage player;
        _uniform = uniform player;
        _cover = nearestBuilding player;
        _fire = nearestObject [player,"Exile_Construction_CampFire_Static"];
        _distanceToCover = player distance _cover;
        _distanceToFire = player distance _fire;

        [sick,sickValue,cold] spawn
        {
            _exitA = false;
            waituntil
            {

                if (!alive player) then
                {
                    sick = false;
                    cold = 0;
                    sickValue = 0;
                    player enableStamina false;
                    player allowSprint true;
                };
                uiSleep 1;
                _exitA
            };

        };

        [] spawn
        {
            _exitB = false;
            waituntil
            {
                if (damage player > 0.75) then
                {
                    playSound "SndExileHeartbeatStopping";
                    enableCamShake true;
                    addCamShake [5, 3, 30];
                    uiSleep 5;
                };
                uiSleep 1;
                _exitB
            };
        };

        _exitWeather = false;
        waitUntil
        {
            if (alive player) then
            {
                if (_healthyInd) then
                {
                    if ((!sick) && (_warm) && (sickValue <= 0)) then
                    {
                        hint format ["%1", player];
                        _cough = selectRandom RZ_HumanCoughArray;                        
                        [player, _cough] remoteExecCall ["say3D"];
                              
                            [[1.5, 2, 10],player] remoteExec ["fnc_RyanZombies_AddCamShake"];
                            titleText ["当前健康状况良好", "PLAIN DOWN",3];
                        };
                    };

                    if (sickValue <= 0) then
                    {
                        sickValue = 0;
                    }
                    else
                    {
                        if (sickValue >= 1) then
                        {
                            sickValue = 1;
                        };
                    };
                    if (cold <= 0) then
                    {
                        cold = 0;
                    }
                    else
                    {
                        if (cold >= 1) then
                        {
                            cold = 0.9;
                        };
                    };

                    uiSleep _effectsCheck;

                    _rainLevel = rain;
                    _damage = damage player;
                    _uniform = uniform player;
                    _cover = nearestBuilding player;
                    _fire = nearestObject [player,"Exile_Construction_CampFire_Static"];
                    _distanceToCover = player distance _cover;
                    _distanceToFire = player distance _fire;

                    if ((daytime >= 19 || daytime < 5) || (_rainLevel > 0.5 )) then {_warm = false};

                    if ((!_warm) && (_uniform in _coldClothes)) then {_warm = false};
                    if ((!_warm) && (_distanceToFire < 20) || (_distanceToCover < 50)) then {_warm = true};
                    if !(_uniform in _coldClothes) then {_warm = true};

                    if (_warm) then
                    {
                        _warm = true;
                        cold = cold - 0.1;
                        if (cold <= 0) then
                        {
                            if (sickValue >= 0) then
                            {
                                sickValue = sickValue - 0.05;
                                if (sickValue <= 0.25) then
                                {
                                    sick = false;
                                    enableCamShake false;
                                    player enableStamina false;
                                    player allowSprint true;
                                    uiSleep 1;
                                    if ((_showSick) && (sickValue >= 0 && sickValue <= 0.25)) then
                                    {
                                        titleText ["现在感觉好多了", "PLAIN DOWN",3];
                                    };
                                };
                            };
                        };
                    }
                    else
                    {
                        _warm = false;
                        cold = cold + 0.1;
                    };
                    if ((_showCold) && (cold >= 0 && cold <=0.1) && (!_warm)) then
                    {

                        titleText ["体温下降,请使用暖宝宝或者烤火", "PLAIN DOWN",2];
                    }
                    else
                    {
                        if ((_showCold) && (cold >= 0.2 && cold <= 0.3) && (!_warm)) then
                        {
                            _cough = selectRandom RZ_HumanCoughArray;
                            [player, _cough] remoteExecCall ["say3D"];

                            [[1.5, 2, 10],player] remoteExecCall ["fnc_RyanZombies_AddCamShake"];
                            titleText ["你的体温已经严重下降,身体冷得瑟瑟发抖", "PLAIN DOWN",2];
                        };
                    };

                    uiSleep _effectsCheck;

                    if ((cold > 0.3) && (!_warm)) then
                    {
                        cold = cold + 0.1;
                        player setDamage _damage +0.07;
                        enableCamShake true;
                        addCamShake [5, 3, 60];
                        if (_showCold) then
                        {

                            _cough = selectRandom RZ_HumanCoughArray;
                            [player, _cough] remoteExecCall ["say3D"];

                            [[1.5, 2, 10],player] remoteExecCall ["fnc_RyanZombies_AddCamShake"];
                            titleText ["你快要被冻僵了", "PLAIN DOWN",3];
                        };
                    };

                    if ((!_warm) && (cold > 0.3 )) then
                    {
                        _sickChance = random 1;

                        if ((_sickChance > 0.5) || (sickValue > 0)) then
                        {
                            sick = true;
                            sickValue = sickValue + 0.05;
                            if ((_showSick) && (sickValue < 0.25)) then
                            {

                                titleText ["你已经被冻感冒了", "PLAIN DOWN",1.5];
                                _cough = selectRandom RZ_HumanCoughArray;
                                [player, _cough] remoteExecCall ["say3D"];

                                [[1.5, 2, 10],player] remoteExecCall ["fnc_RyanZombies_AddCamShake"];

                            };
                            if ((sickValue > 0.25) && (sickValue < 0.50)) then
                            {
                                player enableStamina true;
                                player allowSprint false;
                                enableCamShake true;
                                addCamShake [5, 3, 30];


                                _cough = selectRandom RZ_HumanCoughArray;
                                [player, _cough] remoteExecCall ["say3D"];

                                [[1.5, 2, 10],player] remoteExecCall ["fnc_RyanZombies_AddCamShake"];

                                if (_showSick) then
                                {
                                    titleText ["你已经病入膏肓了", "PLAIN DOWN",2.5];
                                };
                            }
                            else
                            {
                                if (sickValue > 0.50) then
                                {
                                    player enableStamina true;
                                    player allowSprint false;
                                    enableCamShake true;
                                    addCamShake [10, 10, 15];
                                    [120] call BIS_fnc_bloodEffect;
                                    player setDamage _damage + 0.02;

                                    _cough = selectRandom RZ_HumanCoughArray;
                                    [player, _cough] remoteExecCall ["say3D"];

                                    [[1.5, 2, 10],player] remoteExecCall ["fnc_RyanZombies_AddCamShake"];
                                    if (_showSick) then
                                    {
                                        titleText ["你快要病死了", "PLAIN DOWN",2.5];
                                    };
                                };
                            };
                        };
                    };
                    if ((_warm) && (sick)) then
                    {
                        if ((_showSick) && (sickValue < 0.25)) then
                        {
                            titleText ["你生病了", "PLAIN DOWN",0.5];
                        };
                        if ((sickValue > 0.25) && (sickValue < 0.50)) then
                        {

                            enableCamShake true;
                            addCamShake [5, 3, 30];

                            _cough = selectRandom RZ_HumanCoughArray;
                            [player, _cough] remoteExecCall ["say3D"];

                            [[1.5, 2, 10],player] remoteExecCall ["fnc_RyanZombies_AddCamShake"];
                            if (_showSick) then
                            {
                                titleText ["你已经病入膏肓了", "PLAIN DOWN",0.5];
                            };
                        }
                        else
                        {
                            if (sickValue > 0.50) then
                            {
                                player enableStamina true;
                                player allowSprint false;
                                enableCamShake true;
                                addCamShake [10, 10, 15];
                                [120] call BIS_fnc_bloodEffect;
                                player setDamage _damage + 0.02;
                                _cough = selectRandom RZ_HumanCoughArray;
                                [player, _cough] remoteExecCall ["say3D"];

                                [[1.5, 2, 10],player] remoteExecCall ["fnc_RyanZombies_AddCamShake"];

                                if (_showSick) then
                                {
                                    titleText ["你快要病死了", "PLAIN DOWN",0.5];
                                };
                            };
                        };
                    };
                };
                uiSleep 1;
                _exitWeather
            };
 

this is the weather effects script made by JohnO.  I just want to add cough  to players when they get cold

Share this post


Link to post
Share on other sites

hm. maybe add this function to the CfgRemoteExec ? sometimes functions just blocked by mp protection, so it possible for things to work in eden and not work in MP server

Share this post


Link to post
Share on other sites

Add this to initplayerlocal.sqf

 

// Cold (runs every 60 seconds)
_cold = compileFinal preprocessFileLineNumbers "custom\Cold.sqf";
[60, _cold, [], true] call ExileClient_system_thread_addtask;


Cold.sqf

private["_bodyTemperature"];
_coughArray = ["cough1","cough2","cough3","cough4"];

_bodyTemperature = ExileClientPlayerAttributes select 5;    
    
if (_bodyTemperature >= 36 && _bodyTemperature < 36.4) then { systemChat "I'm getting cold..."; };     
if (_bodyTemperature >= 35.1 && _bodyTemperature < 36) then { systemChat "I'm freezing..."; };     
if (_bodyTemperature < 35.1) then 
{ 
	systemChat "I'm freezing to death...";  
	enableCamShake true;      
	addCamShake [3, 2, 6];
	playSound (selectRandom _coughArray);    
	
};

 

  • Like 1

Share this post


Link to post
Share on other sites

thanks chernaruski and  El' Rabito for your help!

I add the       

class say3d { allowedTargets=2; };    class fnc_RyanZombies_AddCamShake { allowedTargets=2; };       

 in the  CfgRemoteExec  and also change the target type. this still can not add cough to player. and i use the playsound it just works fine. And current i add 

[] execVM "Custom\WeatherEffects.sqf";

in the initplayerlocal to get it work , I am not sure whether it will affect the server performance or not.?
or can I use this codes to get the weathereffects to work?

_cold = compileFinal preprocessFileLineNumbers "custom\WeatherEffects.sqf";

[60, _cold, [], true] call ExileClient_system_thread_addtask;

Share this post


Link to post
Share on other sites

×