Visa ämne
Anrop » ArmA 3 » Editing
 Skriv ut ämne
MP Dedicated Skills skript
Ett skript jag knåpat på ett tag. Testat med 40+ spelare.

Skriptet gör TRE saker, alla inställningsbara via Parameters-knappen när du är i Role Assignment:
1. Tid på dagen, standard är 12:00
2. CSAT NVG Av/På, standard är av. CSAT har ficklampor
3. AI Skills:
Ett stor problem med Arma3 är att serverns .arma3profile, där AI skills ska sättas, inte används. Detta betyder att all Ai kommer in på banan med ett skillfinal på 1 och skjuter skallen av dig på 400 meter så fort de ser dig. Många AI skript sätter AI skills en gång vid mission start, problemet är att system som Zeus, ALiVE, EOS etc. spawnar AI under uppdraget och dessa får då inte justerade skills.
Mitt skript kollar efter nya AI var 5 sekund och justerar skills enbar en gång per AI, så du kan justera själv via t.ex. Zeus senare utan att skriptet ställer tillbaka den.


kör med execvm "skills.sqf"; från init.sqf
Kod Källa  


//Params ar pulled for settings
if (isServer) then {
skiptime (((paramsarray select 1) - daytime + 24) % 24);
};
NVG = paramsarray select 2;
SKILLS = paramsarray select 3;

//This is the AI skills
//Made by eRazeri & Magoo      Range:
_asp = 0.3;  //Aiming Speed     [0.5,1]
_aac = 0.2;  //Aiming Accuracy  [0,1]
_ash = 0.2;  //Aiming Shake     [0,1]
_com = 0.8;  //Commanding       [0,1]
_gen = 0.2;  //General          [0,1]
_cou = 0.7;  //Courage          [0,1]
_rls = 0.7;  //Reload Speed     [0,1]
_sti = 0.2;  //Spot Time        [0,0.7]
_sdi = 0.1;  //Spot Distance    [0.2,0.4]

//Here we loop through all units and tag them with skills and a check variable
While {true} do {
{
if (side _x == east) then {
 
 if ((SKILLS==1) && isNil {_x getVariable "Skill_already_defined"}) then
{
_x setVariable ["Skill_already_defined", true];
 
_x setSkill ["aimingSpeed", _asp];
_x setSkill ["aimingAccuracy", _aac];
_x setSkill ["aimingShake", _ash];
_x setSkill ["commanding", _com];
_x setSkill ["general", _gen];
_x setSkill ["courage", _cou];
_x setSkill ["reloadSpeed", _rls];
_x setSkill ["spotdistance", _sdi];
_x setSkill ["spottime", _sti];
};

 //Here we set if AI should have NVGs
if ((NVG==1) && isNil {_x getVariable "NVG_already_defined"}) then
{
_x setVariable ["NVG_already_defined", true];

_x unassignItem "NVGoggles_OPFOR";
_x removeItem "NVGoggles_OPFOR";
_x addPrimaryWeaponItem "acc_flashlight";
_x enableGunLights "forceOn";
};

sleep 0.01;
};
} forEach allUnits;
sleep 5;

};





description.ext
Kod Källa  


class Params
{
   // Example Parameter
   class EmtpyLine0 {
      title = ":: Mission Settings";
      values[]={0,0};
      texts[]={ "",""};
      default = 0;
   };
   class PARAM_TimeOfDay
   {
      title = "    Tidsförskjutning från mission start";
      values[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23};
      texts[] = {"00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"};
      default = 12; //Standard 12:00 på dagen
   };
   
   class PARAM_NO_NVG
   {
      title = "Nightvision for EAST";
      values[]={0,1};
      texts[]={ "Enable NVG","Disable NVG"};
      default = 1; //Standard CSAT utan NVG
   };
   
   class PARAM_AI_SKILLS
   {
      title = "Use spawn safe AI Skills";
      values[]={0,1};
      texts[]={ "Disable","Enable"};
      default = 1; //Standard skills körs
   };

};
Jag tog = 1 och tog bort param för jag tänkte inte ha med det i description, vi kör ju aldrig om OPn. Men härligt att se, mera nyttiga saker Smile
Stay frosty !
annars funkar ju detta i .init

{
if (side _x == east) then {
_x setSkill ["aimingShake",0.85];
_x setSkill ["aimingAccuracy",0.85];
};

---------------------------------------------------------
Bug #351: Can hear dead people.
Tricket här är att även justera AI som spawnas in via t.ex. Zeus, Alive under uppdraget. Då duger tyvärr inte init.sqf eftersom den redan kört klart. Så tyvärr måste man köra någon form av loop, vilket inte låter sig göras i init.sqf
Dessutom måste man kolla skillFinal för att få det slutgiltiga värdet på AI skills.
Fungerar inte den inbyggda Alive AI skills modulen?
---------------------------------------------------------
Bug #351: Can hear dead people.
Alive AI skills, som inte fungerat förrän nyligen, fungerar på alla AI som plockats up av Profiler-modulen. Mitt AI skript skapades för att hantera AI i alla situationer, med eller utan Alive. Sen att BI inte fixat AI skills på dedicated servers än gör ju skriptet i princip livsviktigt om man inte kör Alive missions eftersom all AI då spawnas med max skills, oavsett om de placeras med editor eller Zeus.

Naturligtvis kan man inte använda både Alive skills och skriptet samtidigt, men mitt skript ger samma kontroll men med större säkerhet i uppdrag med blandade tekniker, typ Alive+Zeus.