-
Content Count
436 -
Joined
-
Last visited
-
Medals
-
AEG - ArmA Electrical Grids (Script Pack and Addon)
shezan74 replied to loyalguard's topic in ARMA 2 & OA - ADDONS & MODS: COMPLETE
As say in private post: YEAH! Go ahead mate! :) you've full rights to make the best power grid ever seen on ArmA2 world :) Thanks -
Which islands support ambient civilians/vehicles/life?
shezan74 replied to tpw's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
True But if you overfly the city the civs spawns. If many teams are wandering around the city the civ spawns a lot and stay alive, in any case. You can create a custom object that allows the civilian spawn and place several of those in the city with the editor, then check by yourself :) -
If i collect a number of requests i can take the map out of the box again. Actually i don't have so much time for working on and no issues to fix (as far as i know) or improvements requested. Some things could include naming several objects like road barriers to allow interactions with script and something like, but nothing that could effectively justify a 100mb release :)
-
Which islands support ambient civilians/vehicles/life?
shezan74 replied to tpw's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
number of civilian spawn points is very limited in Fallujah due the size of the city. Having a spawn ratio like chernarus will create massive locks on your server due the huge amount of wandering citizens on the map. -
World Tools forest tutorial
shezan74 replied to shezan74's topic in ARMA 2 & OA : TERRAIN - (Visitor)
And to the best sponsor in the ArmA2 world, Mr. B ;) -
M109A6 Paladin v1.1 (UPDATED)
shezan74 replied to soul_assassin's topic in ARMA 2 & OA - ADDONS & MODS: COMPLETE
Yep, when i've some time i'll probably release an update to fix this on Spritz Island. In the meanwhile i'm searching for some time to dedicate to CWR2. Best -
No ideas about... the hotel building is in the same pbo of other houses from A1.
-
Did you have a screenshot of what you mean for looks terrible? Ok for coordinates, i'll give an eye if you send them to me.
-
Bella :)
-
bisign is 1.1
-
digits are a "big" headache :) everyone needs them made in a different way for specific addons. I've tried to understand what is the most common request, but if i've failed something i can update it.
-
Great release! Nice work Solo & Socrate!
-
problem importing wordltools SQM
shezan74 replied to minimalaco's topic in ARMA 2 & OA : TERRAIN - (Visitor)
this happens when you click on Get Script for V3? probably the script extension is mapped with Visitor 3 and the application tries to open the V3.exe... Here the script, it's also saved in your personal settings folder (where WT saves settings and other infos): // ************************************************************************************************************* // Copyright (C) 2007 Bohemia Interactive // ************************************************************************************************************* // This script is free software for any non commercial use; you can redistribute it and/or modify as long as you // include this licensing notice. This script is distributed in the hope that it will be useful, but without any // warranty; without even the implied warranty of merchantability or fitness for a particular purpose. // ************************************************************************************************************* // // ImportObjectsAbsHeight.vis // // ************************************************************************************************************* // This script allows to load objects from file using absolute height. // ************************************************************************************************************* // This script expects to read an ascii file (no matter what extension) with the following format of records // (colon separated data): // "templatename";X;Y;Z;orientation; // example: // "misc\water_tank";12064.1;17650.2;-0.841085;0; // ************************************************************************************************************* // This script reads the file and inserts in the current document all the object whose template is already in the // document. All the other objects are rejected. // The number of inserted and rejected objects is shown when the script ends running. // ************************************************************************************************************* // In the current implementation the script doesn't do any validation of the numerical values expected from the // file (X, Y, Z and orientation). // ************************************************************************************************************* // In the current implementation the script uses the current setDir function, which works with opposite // orientation than the getDir function [for this reason orientations are considered with the minus (-) sign.] // ************************************************************************************************************* // --------------------- // functions definitions // --------------------- // ********************************************************************************************************** // GetNaturalTemplateNamesInDoc // ********************************************************************************************************** GetNaturalTemplateNamesInDoc = { private["_doc", "_templates", "_templateNames"]; // gets the document _doc = _this; // gets 'natural' templates in the document _templates = _doc getObjectTemplates "natural"; _templates sortBy {getName(_x) strCmp getName(_y)}; // core - gets template names _templateNames = []; { _templateNames = _templateNames + [getName _x]; } forEach _templates; // return value _templateNames }; // ********************************************************************************************************** // GetArtificialTemplateNamesInDoc // ********************************************************************************************************** GetArtificialTemplateNamesInDoc = { private["_doc", "_templates", "_templateNames"]; // gets the document _doc = _this; // gets 'artificial' templates in the document _templates = (_doc getObjectTemplates "artificial"); _templates sortBy {getName(_x) strCmp getName(_y)}; // core - gets template names _templateNames = []; { _templateNames = _templateNames + [getName _x]; } forEach _templates; // return value _templateNames }; // ********************************************************************************************************** // WarningDialog // ********************************************************************************************************** WarningDialog = { private["_type", "_title", "_messageRow1", "_messageRow2", "_dlgWarning", "_result"]; // gets the type of warning _type = _this; // sets title and message _title = ""; _messageRow1 = ""; _messageRow2 = ""; switch(_type) do { case 1: { _title = "Warning - No area selected."; _messageRow1 = "This script requires that you select an area before you run it."; _messageRow2 = "Please select an area and then rerun the script."; }; case 2: { _title = "Warning - No templates in document."; _messageRow1 = "This script requires that templates are already in the document."; _messageRow2 = "Please define the needed templates and then rerun the script."; }; default { _title = "Warning - Error in dialog setting"; _messageRow1 = "Error in WarningDialog function."; }; }; // sets dialog _dlgWarning = [220, 55, _title, ["label", 200, 13, _messageRow1, 0], ["break"], ["label", 200, 13, _messageRow2, 0], ["break"], ["ok-button", 50, 13]]; // shows the dialog _result = dialogBox _dlgWarning; // return value _result }; // ********************************************************************************************************** // ErrorDialog // ********************************************************************************************************** ErrorDialog = { private["_type", "_title", "_messageRow1", "_messageRow2", "_dlgError", "_result"]; // gets the type of warning _type = _this; // sets title and message _title = ""; _messageRow1 = ""; _messageRow2 = ""; switch(_type) do { case 1: { _title = "Error in script execution"; _messageRow1 = "Error in opening the specified file."; }; case 2: { _title = "Error in script execution"; _messageRow1 = "Bad data format in the specified file."; }; default { _title = "Warning - Error in dialog setting"; _messageRow1 = "Error in ErrorDialog function."; }; }; // sets dialog _dlgError = [220, 55, _title, ["label", 200, 13, _messageRow1, 0], ["break"], ["label", 200, 13, _messageRow2, 0], ["break"], ["ok-button", 50, 13]]; // shows the dialog _result = dialogBox _dlgError; // return value _result }; // ********************************************************************************************************** // SetTemplatesList // ********************************************************************************************************** SetTemplatesList = { private["_params", "_naturalTemplsInDoc", "_artificialTemplsInDoc", "_templateNames"]; // gets the params _params = _this; _naturalTemplsInDoc = _params select 0; _artificialTemplsInDoc = _params select 1; // core - gets template names _templateNames = []; _templateNames = _naturalTemplsInDoc; _templateNames = _templateNames + _artificialTemplsInDoc; // return value _templateNames }; // ********************************************************************************************************** // ParseLine // ********************************************************************************************************** ParseLine = { private["_line", "_pos", "_name", "_XX", "_YY", "_ZZ", "_orient", "_result"]; // gets the line to parse _line = _this; _name = ""; _XX = ""; _YY = ""; _ZZ = ""; _orient = ""; // core - parse the line // first gets object template name _pos = _line find ";"; if (!isnil "_pos") then { _name = _line @ [0, _pos]; // then gets object X coord _line = _line @ [_pos + 1]; _pos = _line find ";"; if (!isnil "_pos") then { _XX = _line @ [0, _pos]; // then gets object Y coord _line = _line @ [_pos + 1]; _pos = _line find ";"; if (!isnil "_pos") then { _YY = _line @ [0, _pos]; // then gets object Z coord _line = _line @ [_pos + 1]; _pos = _line find ";"; if (!isnil "_pos") then { _ZZ = _line @ [0, _pos]; // finally gets object orientation _line = _line @ [_pos + 1]; _pos = _line find ";"; if (!isnil "_pos") then { _orient = _line @ [0, _pos]; } else // bad data format orientation { // shows error dialog _errorNum = 2; _errorNum call ErrorDialog; }; } else // bad data format Z { // shows error dialog _errorNum = 2; _errorNum call ErrorDialog; }; } else // bad data format Y { // shows error dialog _errorNum = 2; _errorNum call ErrorDialog; }; } else // bad data format X { // shows error dialog _errorNum = 2; _errorNum call ErrorDialog; }; } else // bad data format name { // shows error dialog _errorNum = 2; _errorNum call ErrorDialog; }; // sets the result _result = []; _result = _result + [_name]; _result = _result + [_XX]; _result = _result + [_YY]; _result = _result + [_ZZ]; _result = _result + [_orient]; // return value _result }; // --------------------------------- // internal variables default values // --------------------------------- _scriptName = "Import Objects using absolute height 1.0.0"; _naturalTemplateNamesInDoc = []; _artificialTemplateNamesInDoc = []; _nNaturalTemplateNamesInDoc = 0; _nArtificialTemplateNamesInDoc = 0; _fileName = ""; _insCounter = 0; // counter for inserted objects _rejCounter = 0; // counter for rejected objects echo "-----------------"; echo "ImportObjects.vis"; echo "-----------------"; // ------------------------ // gets the active document // ------------------------ _doc = getActiveDoc; // ------------------------------ // gets the templates in document // ------------------------------ _naturalTemplateNamesInDoc = _doc call GetNaturalTemplateNamesInDoc; _artificialTemplateNamesInDoc = _doc call GetArtificialTemplateNamesInDoc; _nNaturalTemplateNamesInDoc = count _naturalTemplateNamesInDoc; _nArtificialTemplateNamesInDoc = count _artificialTemplateNamesInDoc; // -------------------- // verify the templates // -------------------- _thereAreNaturalTemplateNames = false; if(_nNaturalTemplateNamesInDoc > 0) then { _thereAreNaturalTemplateNames = true; }; _thereAreArtificialTemplateNames = false; if(_nArtificialTemplateNamesInDoc > 0) then { _thereAreArtificialTemplateNames = true; }; // ----------------------- // sets the templates list // ----------------------- _templatesList = [_naturalTemplateNamesInDoc, _artificialTemplateNamesInDoc] call SetTemplatesList; // ------------------- // dialogs definitions // ------------------- _dlgInput = [330, 60, _scriptName, ["init", { _id = 1; _id dlgEnableControl false; }], ["begin-subframe", 320, 30, " Source file "], ["label", 40, 13, "File name:", 0], ["textline", 220, 13, "_fileName", 4], ["onchange", { if((count _fileName) != 0) then { _id = 1; _id dlgEnableControl true; } else { _id = 1; _id dlgEnableControl false; }; }], ["browse-button", 40, 13, "All files|*.*|", false, "Open file"], ["break"], ["end-subframe"], ["break"], ["ok-button", 50, 13], ["cancel-button", 50, 13]]; _dlgOutput = [220, 80, _scriptName, ["dynlabel", 200, 13, "_insCounter", 2], ["break"], ["label", 200, 13, "objects imported", 2], ["break"], ["dynlabel", 200, 13, "_rejCounter", 2], ["break"], ["label", 200, 13, "objects rejected", 2], ["break"], ["ok-button", 50, 13]]; // ----------- // script core // ----------- if(_thereAreNaturalTemplateNames || _thereAreArtificialTemplateNames) then // there are templates in document { // shows the input dialog _res = dialogBox _dlgInput; if(_res == 1) then { // open the input file _file = openFile [_fileName, 1]; if (!isnil "_file") then // file has been found { // gets data from file while{!eof(_file)} do { //get next record from file _line = getLine _file; if((count _line) > 0) then // not empty line { _data = _line call ParseLine; _name = _data select 0; _coordX = _data select 1; _coordY = _data select 2; _coordZ = _data select 3; _orient = _data select 4; // // data conversion // // template name _len = count _name; _name = _name @ [1, _len - 1]; // converts to numbers coordinates _xP = val (_coordX); // MISSING _yP = val (_coordY); // ERROR CHECKING _zP = val (_coordZ); // // object orientation // converts to number // WARNING // uses the minus sign because there is a bug in the visitor // scripting language _orP = -val (_orient); // MISSING ERROR CHECKING // finally creates the imported object if(_name in _templatesList) then // template recognized { // cretes new object _obj = _doc createPosEdObject _name; // sets object position _insPos = [_xP, _yP]; _obj setPos _insPos; // sets object relative height //_obj setRelHeight _zP; _pos = getZeroPos _obj; _landHeight = (_doc getLandHeight _pos) select 0; _offset = _zP - _landHeight; _obj setRelHeight _offset; // sets object orientation _obj setDir _orP; _insCounter = _insCounter + 1; } else // template not recognized { _rejCounter = _rejCounter + 1; }; }; }; // shows the output dialog _result = dialogBox _dlgOutput; } else { // shows error dialog _errorNum = 1; _errorNum call ErrorDialog; }; }; } else // no templates in document { // shows warning dialog _warningNum = 2; _warningNum call WarningDialog; }; -
problem importing wordltools SQM
shezan74 replied to minimalaco's topic in ARMA 2 & OA : TERRAIN - (Visitor)
it's strange... i'll check for this issue and i'll add the script here. -
Friends, this was Bushlurker in "I HAVE A DREAM" mode. It's a pleasure to work with him... a lot of work raises everyday. Is this the reason for waiting his fantastic Scotland territory for ages? :) C'mon Bushlurker, let us have your fantastic work on our desktops :D