Jump to content
🛡️FORUMS ARE IN READ-ONLY MODE Read more... ×

zephyrdark

Member
  • Content Count

    59
  • Joined

  • Last visited

  • Medals

Everything posted by zephyrdark

  1. Background Image Source: Link This script is a development of TacticalGamer.com Check us out at http://www.tacticalgamer.com/armed-assault/ Summary: This script enables vehicles to be equipped with a Shot Detection System. The system is currently only able to detect RPG shots within 300m of the vehicle. The system will display a visual representation of the direction that the RPG was fired through the means of a clock-face and text stating the direction in clock-bearing. The system is based after the Boomerang Shot Detection that is currently in service around the world today. The script does not represent the system as true to real life, but uses it as a basis to work from. This script is ACE ready and will detect the various RPG projectiles included by the ACE Mod. Videos: yVLFwv6pIZw To Do: Add ability to detect rifle and other hand-held weapon shots Look into possible JIP issues Create Soldier mounted version with appropriate images and functionality Create non-vehicle based version for placement as a base defense system Make Boomerang model and turn into addon?? Credit: Scripting by Blackpython (Base script) & Hawke (Dialog) Audio by Unkl and Blackpython Images by LowSpeedHighDrag Instructions: Found in the ReadMe.txt in the file. Download: Mediafire Link (Please do not mirror without permission!)
  2. ACE Changed the default IFAK a while back. You no longer carry morphine or epinephrine. Also, there a couple new medical items (tourniquet namely) and some of them have been renamed. (IFAK is now Bandage, Bandage Kit (Elastic), and a tourniquet). A couple other things: Sparebarrel bag has no weight listed Satchels' weight is now increased in-game for ACE. They weight about 9.6kg iirc Just thought I'd point out the changes that have occurred in-game but have not been updated for the tool.
  3. zephyrdark

    Shotfinder Script 2.0

    I'll see what I can do with making a Non-ACE version. I won't guarentee it with the release of the ACE version, but I should be able to make one that will work. It will, however, still require CBA no matter what as a decent amount of the code relies on some of the CBA API.
  4. I am also looking for something along these lines. I'm in the process of making an addon and currently a lot of the function I would like to implement would best be designed with its own custom user interface.
  5. Currently running into a complete wall of a problem with the config for an addon I am working on. Currently the config contains: class CfgSounds{ sounds[] = {sf_1oclock_s}; class sf_1oclock_s { name = "1oclocks"; sound[] = {"tg_shotfinder\sounds\shot1oclock_2.ogg", 1, 1}; titles[] = {}; }; }; From what I can tell, I have no syntax errors and the class is basically just a template with the changes I needed to make in the strings and the class name. The issue arises when the the sound is called in a mission, it states that the sound does not exist despite the config saying it should. If it helps, the config.bin/cpp also contains a cfgVehicles, cfgVehicleClasses,CfgRadio, and some rscTitle's.
  6. haha! Thank you GNat! So, looking at it, it was the sounds[]= at the top of the class interfering with everything else, that and the inheriting. (It's working now)
  7. I already have a cfgPatches, possibly I'm doing something wrong there or elsewhere in the config. He's the full config.cpp as of right now. class CfgPatches { class tg_shotfinder { units[] = {}; weapons[] = {}; requiredVersion = 1.0; requiredAddons[] = {"CAData", "CBA_MAIN", "ACE_MAIN","ACE_SYS_INTERACTION"}; author[] = {"BlackPython","OPS"}; }; }; class CfgSounds { sounds[] = {SF 1oclock}; class oc1 { name = "SF 1oclock"; sound[] = {"tg_shotfinder\sounds\shot1oclock.ogg", 1, 1}; titles[] = {}; }; }; class CfgVehicleClasses { class tg_shotfinder_vc { displayName = "BoomeRange Objects"; }; }; class CfgVehicles { class HouseBase; class House: HouseBase { class DestructionEffects; class AnimationSources; }; class tg_shotfinder_mast: House { vehicleClass="tg_shotfinder_vc"; icon = "tg_shotfinder\object.paa"; accuracy = 0.200000; scope=2; simulation="House"; camouflage=10; Audible=10; mapSize=0.2; cost=100000000; threat[]={1,1,1}; armor = 1000; irtarget=0; destrType = "DestructYes"; lasertarget=0; side = 3; displayName = "BoomeRange Antenna"; animated = 1; model = "\tg_shotfinder\model\mast.p3d"; }; class sf_tripod : tg_shotfinder_mast { displayName = "BoomeRange Full Assembly"; model = "\tg_shotfinder\model\fullassembly.p3d"; }; class sf_carrycase : tg_shotfinder_mast { displayName = "BoomeRange Transport Case"; model = "\tg_shotfinder\model\case.p3d"; }; }; class Extended_PostInit_EventHandlers { class tg_shotfinderInit { clientInit = "sfnul = [] spawn compile preprocessFileLineNumbers 'tg_shotfinder\SF_clientInit.sqf'"; }; };
  8. No-Joy. Still running into the same issues with cfgSounds not even being registered. Would be great if anybody had any insight on this.
  9. This script pack features several scripts that missions makers who use ACE and ACRE will certainly benefit from. Contains: Template Description.ext File Template Init.sqf File InstaWall Script JIP Map Script JIP Radio Script Medical Gear Limitator Script ACRE Retransmit Script NoRespawn ScoreCard Current Version: v1.5.102412 Download Link: https://dl.dropbox.com/u/102400142/Python%20Script%20Pack%20v1.5.102412.zip (Link Updated: Oct, 24, 2012) Please contact me via PM on the BiForums, TacticalGamer.com forums, or email (TG Forums and Email listed in readme.html alongside script pack), if you have any questions, concerns, or bug reports, or if you wish to host this file on your own webhost. Thank you
  10. New Version: 1.5.102412 Download Link: https://dl.dropbox.com/u/102400142/Python%20Script%20Pack%20v1.5.102412.zip
  11. Working on a script that allows mission makers to easily set up a point based score system that judges player's performance based on players left alive and if side objectives were completed. It currently uses CBA functions for sake of ease. So far everything appears to work, but when it reaches the final global execute, it doesn't want to do anything. Through attempts of debugging, I also found that the variable bScore becomes useless once I define it via the call on the compiled string. I've attempted to use typeName to determine if its still a valid variable, but nothing has arisen from that. In the Case of: nul = [ [0,0,0,70],[ [sec1,10],[sec2,10],[sec3,10] ] ]execVM "scoreCard.sqf"; [/Code] the copyToClipboard returns: [Code] { _bsArray = []; tScore = 0; if (false) then {_bonusScore0 = 10;} else {_bonusScore0 = 0}; _bsArray = _bsArray + [_bonusScore0]; if (false) then {_bonusScore1 = 10;} else {_bonusScore1 = 0}; _bsArray = _bsArray + [_bonusScore1]; if (false) then {_bonusScore2 = 10;} else {_bonusScore2 = 0}; _bsArray = _bsArray + [_bonusScore2]; {tScore = tScore + _x} forEach _bsArray; tScore } [/Code] Here is the entire code. [Code] //ScoreCard.sqf private ["_numPlayers","_numAlive","_listNum","_newString","_bonusScoreString","_Q1","_Q2","_Q3","_Q4","_compiled"]; _Q1= _this select 0 select 0; _Q2= _this select 0 select 1; _Q3= _this select 0 select 2; _Q4= _this select 0 select 3; tScore = 0; _listNum = -1; _bonusScoreString = "#"; { _listNum = _listNum + 1; _newString = format ["if (%1) then {_bonusScore%2 = %3;} else {_bonusScore%2 = 0}; _bsArray = _bsArray + [_bonusScore%2]; #", _x select 0, _listNum, _x select 1]; _bonusScoreString = [_bonusScoreString, "#", _newString] call CBA_fnc_replace; sleep .1; } forEach (_this select 1); _bonusScoreString = ["_bsArray = []; tScore = 0; # {tScore = tScore + _x} forEach _bsArray; tScore", "#", _bonusScoreString ] call CBA_fnc_replace; _bonusScoreString = [_bonusScoreString, "#", ""] call CBA_fnc_replace; //copyToClipboard _bonusScoreString; _compiled = compile _bonusScoreString; copyToClipboard format ["%1",_compiled]; bScore = call _compiled; hint typeName bScore; //hintC _bonusScoreString; //sleep 1; _numPlayers = 0; _numAlive = 0; { if (isPlayer _x) then { _numPlayers = _numPlayers + 1; }; } forEach allUnits; { if (isPlayer _x && alive _x) then { _numAlive = _numAlive + 1; }; } forEach allUnits; switch (true) do { case ( (_numAlive / _numPlayers) <= 0.25 ): { baseScore = _Q1; }; case ( ((_numAlive / _numPlayers) > 0.25) && ((_numAlive / _numPlayers) <= 0.50) ): { baseScore = _Q2; }; case ( ((_numAlive / _numPlayers) > 0.50) && ((_numAlive / _numPlayers) <= 0.75) ): { baseScore = _Q3; }; case ( ((_numAlive / _numPlayers) > 0.75) && ((_numAlive / _numPlayers) <= 1) ): { baseScore = _Q4 }; }; //hint "resolving final score..."; sleep 1; finalScore = baseScore + bScore; hint str(finalScore); [ -2, { player globalChat "Mission Complete!"; sleep 2; player globalChat format ["Your Score: %1", _this]; sleep 4; endMission "END1"; }, finalScore ] call CBA_fnc_globalExecute; [/Code]
  12. Thanks BlackMamb, I'll have a look through my script and see if I can make some simplifications and comment up a bit of the variables. I keep forgetting that the count command has a condition argument to it. ---------- Post added at 09:08 AM ---------- Previous post was at 08:35 AM ---------- I appear to have solved it. //ScoreCard.sqf private ["_numPlayers","_numAlive","_newString","_bonusScoreString","_Q1","_Q2","_Q3","_Q4","_compiled","_aliveRatio"]; _Q1= _this select 0 select 0; //Quartile 1 (0-25% Alive Score) _Q2= _this select 0 select 1; //Quartile 2 (25-50% Alive Score) _Q3= _this select 0 select 2; //Quartile 3 (50-75% Alive Score) _Q4= _this select 0 select 3; //Quartile 4 (75-100% Alive Score) MEC_BP = false; //Mission End Condition Variable. Once true, allows script to finish. _bonusScoreString = "#"; //Base To-Be Compiled String. "#" will be replaced with _newString formatted text via CBA. //_bonusScoreString will result in creating a dynamic function that should return with variable tScore. _numPlayers = 0; _numAlive = 0; _numPlayers = {isPlayer _x} count allUnits; MEC_BP = true; //Debug. Allows for calling of script via trigger for testing purposes. waitUntil {MEC_BP}; _numAlive = {isPlayer _x && alive _x} count allUnits; _aliveRatio = _numAlive/_numPlayers; // Ratio of players alive at end of mission over the total players. switch (true) do { case ( (_aliveRatio) <= 0.25 ): //Quartile 1 { baseScore = _Q1; }; case ( (_aliveRatio > 0.25) && (_aliveRatio <= 0.50) ): //Quartile 2 { baseScore = _Q2; }; case ( (_aliveRatio > 0.50) && (_aliveRatio<= 0.75) ): //Quartile 3 { baseScore = _Q3; }; case ( (_aliveRatio > 0.75) && (_aliveRatio <= 1) ): //Quartile 4 { baseScore = _Q4 }; }; //hint "resolving final score..."; sleep 1; { _newString = format ["if (%1) then {_tScore= _tScore + %2}; #", _x select 0, _x select 1]; _bonusScoreString = [_bonusScoreString, "#", _newString] call CBA_fnc_replace; sleep .1; } forEach (_this select 1); //Loops through second script argument which is an array of arrays. (i.e., [[sec1,10][sec2,10]) where Element 1 is boolean variable and element 2 is a number. _bonusScoreString = ["_tScore = 0; # [-2, {hint str(_tScore)}] call CBA_fnc_globalExecute; _tScore", "#", _bonusScoreString ] call CBA_fnc_replace; _bonusScoreString = [_bonusScoreString, "#", ""] call CBA_fnc_replace; //copyToClipboard _bonusScoreString; _compiled = compile _bonusScoreString; //Compiles Above string producing Bonus Score function dependent on arguments of the string. copyToClipboard format ["%1",_compiled]; bScore = call _compiled; finalScore = baseScore + bScore; // Final Score = Base Score + Bonus Score [ -2, //Execute on Clients & Server { player globalChat "Mission Complete!"; sleep 2; player globalChat format ["Your Score: %1", _this]; sleep 4; endMission "END1"; }, finalScore ] call CBA_fnc_globalExecute; hint "End of Script Test"; [/Code] I moved around the compiled code to the bottom of the script to ensure it is run only at the end of the mission. I also changed the behaviour of the script-string, it no longer creates an array in which it adds up, but just adds onto the value, _tScore, if the conditions are met. I also added in a waitUntil{} to hold off the script to ensure it is accurate, making it required to run at mission start. Thanks for the help BlackMamb! I will probably be releasing this with my script pack later on with a little bit more refined version of this script in it.
  13. The issue there is then the mission maker is required to add that to their description. Preferably, I would like all the work to be done for the mission maker in the addon. I have seen pbo's with binarized configs that have cfgSounds in them. Issue is, I don't see any difference in what I have done compared to other addon devs.
  14. Hey everyone. I'm still pretty novice when comes to scripting. Lately been working on some new scripts. This script allows for hostile AI within the defined radius to detect players speaking and seek out the source of the sound. Its pretty rough in its current state, however it has proved to work. Requires CBA Requires ACRE /* I Hear You! Script by Blackpython of TacticalGamer.com ########################################## ***Requires CBA*** Script Call Line: [-1, {nul=[*radius*,*hostile side*]execVM "IHearYou.sqf";}] call CBA_fnc_globalExecute; *radius* = Radius Enemies can hear players *hostile side* = WEST , EAST, RESISTANCE , CIVILIAN. Depending on the side that can hear you and react. */ private ["_AIAry","_ret","_rad","_wpNew","_side","_pos","_posPlay"]; _rad = _this select 0; _side = _this select 1; _AIAry = []; while {true} do { if (isServer) exitWith {}; {if (side _x == _side) then {_AIAry = _AIAry + [_x]}} forEach allUnits; {if (_x in _AIAry) then {_AIAry = _AIAry - [_x]}} forEach allDead; { if ((_x distance player) <= _rad) then { {if (_x != player) then {_AIAry = _AIAry + [_x]}} forEach allUnits; {if (_x in _AIAry) then {_AIAry = _AIAry - [_x]}} forEach allDead; _ret = [player] call acre_api_fnc_isSpeaking; if (_ret) then { _x setBehaviour "AWARE"; _pos = getpos player; _posPlay = [(_pos select 0) + round(random 15),(_pos select 1) - round(random 15)]; _wpNew = (group _x) addWaypoint [_posPlay, 0]; _wpNew setWaypointType "MOVE"; (group _x) setCurrentWaypoint _wpNew; } } } forEach _AIAry; sleep 0.1; } Mediafire Download: http://www.mediafire.com/?j8mt8ht5x18unte
  15. zephyrdark

    Shotfinder Script 2.0

    I've been working on it on and off for now. I'll probably be putting a lot more work into it in the near future. I'm currently waiting on the models at the moment.
  16. zephyrdark

    Shotfinder Script 2.0

    WIP Update: Changes so far: Script is now an addon Ability to attach system to vehicle Ability to detach system from vehicle Attaching/Detaching enables/disables the system on the vehicle. WIP Model added Requires CBA and ACE Notes: Dependency on ACE may be removed in the future (TBD) CBA will be required no matter what.
  17. zephyrdark

    Shotfinder Script 2.0

    The script version will still be around, I'll probably update it one last time with some of the changes; however, I cannot/will not release a script version with the increased functionality and models, etc.
  18. zephyrdark

    Shotfinder Script 2.0

    Some WIP screens from the stationary version for base defense.
  19. zephyrdark

    Shotfinder Script 2.0

    New WIP video: Changes so far: I am working with some friends on making this into an addon. It will feature a usable microphone setup that can be attached to vehicles or placed on the ground. Will also start work on an individual soldier version. More to come.
  20. zephyrdark

    ACE for OA 1.13

    A lot of the updates do not have change long additions since a lot of the changes are just little things within the scripts. Check out https://dev-heaven.net/projects/ace-mod2/repository if you want to follow what they're working on. You'll need a Dev-Heaven account also. You can link the SOFLAM as well. It just doesn't provide you with a second menu option. Just use the Connect To.. > Vector 21B menu option on the DAGR.
  21. zephyrdark

    Clafghan Map 20x20 Beta Release

    Anyone else having issues with fog defying the mission maker in MP? Can't seem to force fog levels, even through scripting. The map eventually says "I'm going to make it foggy and rainy now, despite the forecast". Really makes CAS useless on this map and long range observation near impossible.
  22. zephyrdark

    ACE for OA 1.13

    Well to use the mortars without T&E, you need to use the aiming posts (well you could actually use anything, but the aiming posts do help since you can adjust for parallax with them). Here is a quick step-by-step: Find out the relative bearing the posts are from the center of the gun. Easiest way to do that is take a Vector-21B, turn it on, and press Alt-R ONCE to change the bearing indicator to 6400 Mils. You want to try to get the two posts directly in line on the center of the Vector's cross-hair. Write that bearing down. Get into the mortar and open up the sight-unit's dialog. Take take the Reset value and then add it to the bearing of the aiming posts. This should give you your Direction/Azimuth of Fire. Write this down. When you get a fire-mission, you will need to find the bearing of the target relative to the mortar. Write that down. Subtract the DoF/AoF from the bearing to target. You will then need to add this number to the gun's deflection (which should be at 3200. Also, remember, when 'adding' a negative number to a positive, you are subtracting the absolute value of negative number from the first. Ex. [ a + (-b) = c ] == [ a - b = c ] ). Set the gunsight's deflection reading to the number you got above. Now, align the gunsight with the aiming posts. To adjust for Parallax Error, you need to measure the distance of the rear post to the front post, in mils (horizontal distance), and then align the sight to the left/right depending on which side the rear post is in relation to the front post. (If left, align left ; if right, align right.) (See ACE Artillery Guide by TacticalGamer.com University - GoogleDocs Section 2 - Parallax Error ID & Adjustment for pictures and better explanation) To align elevation, you simply need to input the appropriate elevation into the elevation setting on the gunsight. Then use the "Barrel Elevation" bubble-level to align the barrel properly. (The bubble levels look like this: |---|o|---| , and yes, I do mean a bubble level, like the one used for carpentry and etc.) Note: It is possible to use the M1A1 Collimator as an aiming reference, but the set up is a little complicated for me to explain at this moment of time. I will see about writing up something soon.
  23. zephyrdark

    ACE for OA 1.13

    Try deleting it, then running "Verify and Repair" on SixUpdater. settings.ace shouldn't be a .zip file, nor should it cause BSODs. Also, I would suggest running a spyware/malware as well as a virus scan on your computer.
  24. zephyrdark

    ACE for OA 1.13

    That would explain why I've had so much trouble with my Active Countermeasure System. It was supposed to simulate the TROPHY system and take out RPGs heading for specific vehicles. Tried to make it so that if the rocket was to hit the vehicle, that it'd run through the rest of the script. I could never get the ballistics formulas to work out right. I might give you a PM with the problems I've been having. So far, I think its just the info that i've been getting with the vector commnds and the CBA command vectElev (or whatever it is) that have not been giving me the right numbers I need.
  25. zephyrdark

    ACE for OA 1.13

    Awesome. Also, not to dig in to much, but will we be getting a Pipper(CCRP/CCIP) for the rocket pods as well, or something similar? One of the things that I've always hated about fixed-wing rocket pods as having to get up close and personal and still missing because of the ballistics of the rockets.
×