-
Content Count
228 -
Joined
-
Last visited
-
Medals
-
[WIP] Urban Patrol Modification
Monsada replied to oscarmolinadev's topic in ARMA 3 - ADDONS & MODS: DISCUSSION
for spawning units using upsmon u need to call the mon_spawn function nul = [[b]TEMPLATE,POSITION,UNITS[/b],[mark, upsmon optional params]] execVM "SCRIPTS\UPSMON\MON_SPAWN.SQF"; 1. First u need a template squad, create a squad in editor and run upsmon on init setting the TEMPLATE parameter: nul = [this,"town","TEMPLATE:",1] execVM "scripts\upsmon.sqf"; This will set this squad with template id 1 with the patrol area of the mark named "town" 2. Now u can spawn squad template 1 where u need, comonly used in triggers, calling the upsmon spawn function: nul = [TEMPLATE,POSITION,UNITS,[mark, upsmon optional params]] execVM "SCRIPTS\UPSMON\MON_SPAWN.SQF"; nul = [1,position player,2,["town2","respawn"]] execVM "SCRIPTS\UPSMON\MON_SPAWN.SQF"; This will spawn 2 copies of template 1 squad on player position, this squad patrol area is mark name town2. note: spawned parameter on upsmon will not spawn any soldier! is only must be used when creating units at runtime that use upsmon. spawned = use only with squads created in runtime, this feature will add squad to UPSMON correctly. For more details and examples with upsmon s see wiki https://dev.withsix.com/projects/upsmon/wiki/MON_spawn https://dev.withsix.com/projects/upsmon/wiki/UPSMONsqf -
[WIP] Urban Patrol Modification
Monsada replied to oscarmolinadev's topic in ARMA 3 - ADDONS & MODS: DISCUSSION
Hi Oscar, I'm Monsada, the UPSMON autor and another catalonian programer like u. I created UPSMON for arma 1 and I'm surprissed that UPSMON is still running and adapted in ARMA3. We could take a beer in Figueres if u like ;), send me email if u come to figueres some day. Congratulations and good luck, Monsada -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
Hi Hebreu, can u test "respawn" parameter? nul=[this,"island","fortify","delete:",600,"respawn"] execVM "scripts\upsmon.sqf"; you can add it in the spawn module too. If you want only to respawn x times set "respawn:",x i spect this can help u, Monsada -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
When spawned a group with vehicles, soldiers and crew are created out of vehicle, then when leader orders to move to any position all will get inside. I don't understand if that is the problem or maybe when squad are moving they get out with no sense. The last I have seen some time when leader has contact to enemy. -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
UPSMON has no sense if player is the leader because leader is who orders fire team soldiers. -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
If i understand you have test it on falulla and ambush works fine, then the problem is in your mission, so without sample mission could see nothing. As told Rafalsky provide the sample mission so we can check it. -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
in current version of UPSMON can not be changed, but you can try reinforcement spot instead. You can set a position to go when reinforcement is demanded. It Only can be done especifying groups of reinforcement. When you call for especific reinforcement you can especify a position too. KRON_UPS_reinforcementx = true; KRON_UPS_reinforcementx_pos = [0,0,0]; Sample of groups of reinforcement: 1. Create a squad in editor and put this on init: nul=[this,"airport","reinforcement:",1] execVM "scripts\UPSMON.sqf"; this code will exec upsmon on squad and set as reinforcement id 1. you cand assign various squads to the same reinforcement id. 2. Create a void mark in map and name it "rfpos1" 3. Execute next code in a trigger or where ever you want KRON_UPS_reinforcement1 = true; KRON_UPS_reinforcement1_pos = getMarkerPos "rfpos1"; When you set KRON_UPS_reinforcement1= true; reinforcement squad 1 is called for reinforcement and will be sent to position of mark "rfpos1" -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
Init_uspmon must run on all client because of eventhandlers, but only for that, all resting code only executes on server, so after eventhandlers declaration for all clients, a check of server is executed //Adding eventhandlers "KRON_UPS_EAST_SURRENDED" addPublicVariableEventHandler { if (_this select 1) then { nul=[east] execvm "scripts\UPSMON\MON_surrended.sqf";};}; "KRON_UPS_WEST_SURRENDED" addPublicVariableEventHandler { if (_this select 1) then { nul=[west] execvm "scripts\UPSMON\MON_surrended.sqf";};}; "KRON_UPS_GUER_SURRENDED" addPublicVariableEventHandler { if (_this select 1) then { nul=[resistance] execvm "scripts\UPSMON\MON_surrended.sqf";};}; "MON_LOCAL_EXEC" addPublicVariableEventHandler { if (local ((_this select 1)select 0)) then { call ( compile format[(_this select 1)select 1,(_this select 1)select 0] ); }; }; if (!isServer) exitWith {}; -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
SEEK squad will patrol to random point, as MOVE does, then will patrol buildings there, will wait a time, and then will go to another random point. you want another parameter fortify2 that squad goes to random position and then fortify there no? ok is easy only must add fortify2 parameter and put this code before buiding usage //If fortify2 must change role to fortify when reached target position if (_fortify2 && _targetdist <= _closeenough ) then { _fortify = fortify2; _nomove="NOMOVE"; _minreact = KRON_UPS_minreact * 3; _buildingdist = _buildingdist * 2; _makenewtarget = false; _wait = 3000; }; //Buildings usage. .... ------------------------------------------- UPSMON runs only on server if (!isServer) exitWith {}; there is 2 types of server, dedicated server an client server, someone does as server and loads a mission this machine acts as server and client. on dedicated server there is no problem but on client server sometimes player is not initialized when init is executed this command makes init to wait until player is ready because if not player has not value and condition not matchs. waitUntil {player==player} you are all right if player is not used may be is not necessary, I used it for security reasons, if player is not initialiced yet, is posible that upsmon fails? -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
Hello galzohar, When I created upsmon I had two posibilities when search for buildings, a- search one time for leader and order soldiers to take positions. b- search for near buildings on each soldier. think in a mission with 100 soldiers each of them looking for near buildings each 10 seconds or 5. I think in terms of performance that was only leader that does it. On the other hand may be posible to make a parameter for setting buildings use on eachs upsmon squad so you can parametrice one or two scuads to be more defensive but less than fortify. Or create another role. SEEK for example that patrols but using much more buildings SEEKING for enemies. in terms of programing, SEEK squad would be a MOVE squad but with a percentage of patrolling buildings greater. _buildingdist = 80 instead of 60 Really only patrol if distance to enemy is close enough //If we are close enough patrol in buildings for searching enemies if ((( _wptype != "HOLD" && vehicle _npc == _npc && (random 100) < 90 ) && _npc == vehicle _npc && _dist <= ( _closeenough ))) then { [_npc,_buildingdist,true] spawn MON_moveNearestBuildings; }; }; in SEEK squads will patrol buildings if close enough of _targetdist (distance to destination point) so new code will be like this: if ((( _wptype != "HOLD" && vehicle _npc == _npc && (random 100) < 90 ) && _npc == vehicle _npc && ( _dist <= ( _closeenough ) || ( _targetdist <= _closeenough && _seek )))) then { [_npc,_buildingdist,true] spawn MON_moveNearestBuildings; }; on init of upsmon file get seep parameter: //seek group in near places _seek= if ("SEEK" in _UCthis) then {true} else {false}; if (_seek) then { _nomove="MOVE"; _buildingdist = 80; _wait = 90; }; Rafalski I had troubles with developmen machine, can u try this for me please? -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
upsmon is much more than a patrol script: http://dev-heaven.net/projects/upsmon/wiki What can AI do with UPSMON?¶ * There is a General commander that organize the attack and defence of all UPSMON squads in the same side: o Squads of AI fights together as an army, so they comunicate each other by radio the enemy known positions. o flanking manauvers are taken depending on friendly position. o General commander can order to surrender entire side if army is seriously damaged * AI has enhanced actions and movements in combat: o AI can use smoke grenades. o AI run crouched when enemy is near or under fire. o AI uses combat formations depending on the situation. o AI does fire suppression and squad movement can be supressed by fire too. o AI moves are influenced by morale, so in low morale they can retreat. o AI can lay mines if enemy tanks are near. o AI avoid snipers when fired by uknown enemy. o AI does paratroop near objectives if they take an hely, may land too. * AI take use of enviroment: o AI may use static weapons you place on map. o AI may use empty land vehicles for moving and or to attack. o AI may use empty helys for moving and or to attack. o AI uses buildings to take defence positions,AI patrol them when leader thinks that enemy is near or using it. 2. What else can be done with UPSMON?¶ * You can define diferent roles to your squads: o MOVE squads are patrol squads, they moves inside mark and in fight are more agressive. o NOMOVE if no enemies they do not move, in fight tends to hold position. o FORTIFY squads do not move , get defence positions in nearly buildings, and static weapons. * You can do a squad to respawn when entirely squad dead. * You can add UPSMON artillery module for allowing AI to do support artillery fire to known position. * You can set REINFORCEMENT squads and send to battle when you need in your mission. * You can create squads dinamically using the UPSMON spawn module. -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
Hi demonized, seems that match the condition to search for vehicles, then I can not understand why is getting in again, may be when executing upsmon in the heli joins pilot to group, I think this may be the problem, but if is so with 5.7 would fail too. mmm.. Can you put this lines of code? looks for this in upsmon.sqf: ------------------------ //Search for vehicle if ((!_gothit && _targetdist >= ( KRON_UPS_searchVehicledist )) && _isSoldier && !_noveh) then { if ( vehicle _npc == _npc && _dist > _closeenough ) then { ---------------------------- then add these two lines please and report if executes and the results: player sidechat format["%1: _gothit=%2 _targetdist=%3 _isSoldier=%4",_grpidx, _gothit, _targetdist,_isSoldier]; player sidechat format["%1: _noveh=%2 _dist=%3 _closeenough=%4 _npc=%5",_grpidx, _noveh, _dist, _closeenough, _npc]; Could you mind to test again with 5.0.8 R3 to see if problem persist?, if problem desapear we will search in changes to find the bug. -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
Hello Demonized, I have been reading your problem and maybe could be solved with settings in init_upsmon parámeters. If I understood well the problem is that when upsmon squad leave transport heli, leader orders soldiers to get in again. Well, the leader orders to get in hely because distance to destination is larger than KRON_UPS_searchVehicledist. Destination point may be patrol point into area marker or nearest known enemy. When under fire should not get in. //Search for vehicle if ((!_gothit && _targetdist >= ( KRON_UPS_searchVehicledist )) && _isSoldier && !_noveh) then { if ( vehicle _npc == _npc && _dist > _closeenough ) then { _unitsIn = [_grpid,_npc] call MON_GetIn_NearestVehicles; The problem is that _targetdist is > KRON_UPS_searchVehicledist, we must evaluate why _targetdist is greater. _targetdist may be distance to patrol point or distance to nearest target. If hely has transported to patrol point this distance should not be greatest unless: a- land point is too far from patrol mark position or b- area to patrol is so bigger. If a, landing position is far than patrol mark try to aproach mark or put a larger value on KRON_UPS_searchVehicledist. If b, patrol area is bigger increase KRON_UPS_searchVehicledist to 1000 or 1200 or reduce area of patrol mark. In any case I think in your case you will solve the proble puting a larger value on KRON_UPS_searchVehicledist. Let me know if this solves your problem and which are the parámeters of your mission. KRON_UPS_searchVehicledist? KRON_UPS_sharedist? how big is area of patrol marker, larger than KRON_UPS_searchVehicledist? units land on patrol mark? -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
Hi, there is a garbage collector on upsmon, try to put 'delete' param, You can set time to remove dead bodies too. Visit wiki on dev heaven for more info. delete:n = Delete dead units after 'n' seconds. when using spawn script set delete nul = [this,"town","TEMPLATE:",1] execVM "scripts\upsmon.sqf"; nul = [1,position player,1,["town2","respawn","DELETE:",30]] execVM "SCRIPTS\UPSMON\MON_SPAWN.SQF"; this will create a squad like "TEMPLATE" and will set DELETE param on leader, so units will be removed after 30 seconds if no players near. GREAT JOB RAFALSKI!! -
UPSMON - Urban Patrol Script Mon
Monsada replied to Monsada's topic in ARMA 2 & OA : MISSIONS - Editing & Scripting
Fantastic job Rafalsky, I let you rights on upsmon project so u can work on it. http://dev-heaven.net/projects/upsmon If you need something or have any question, email me to chs.monsada@gmail.com ---------- Post added at 03:56 PM ---------- Previous post was at 03:50 PM ---------- May be this is not the place, but I want to explain why Im out of programing improvements on UPSMON script all that time. I was working on two board games, now Im ready to sell it but I have no sense how to do it. If any forum reader works in a game board editorial or have contacts or money can contact me? Thanks for all, Monsada