Jump to content

Monsada

Member
  • Content Count

    228
  • Joined

  • Last visited

  • Medals

Posts posted by Monsada


  1. Will this script be able to (or have an option to) make transport helicopters unload their troops at the patrol area regardless of enemy detection? I want to spawn helicopters far away and then send them to patrol in a small town by dropping off their troops somewhere in the area and then flying around supporting them while they patrol on the ground. Also I need to have similar behavior for trucks and APCs.

    Currently with the original UPS the helicopters will only unload their teams if they make enemy contact (same as when not using any scripts).

    I will implement this on next review.


  2. I don't really get this example mission. How do I set this up for the enemy to call the reinforcements?

    Also when I call the reinforcements and the guys get in the truck(I assume these are the reinforcements.) it takes forever for the driver to get to the drop off point. He doesn't take the roads and prefers to drive off road. I know the AI driving is bad but that is terrible. Do more wp's need to be added?

    I understand most stuff in the readme but the way the mission is setup confuses me. Can you make one that uses all the features but have it set up for the enemy side defending.

    Also one of the guys in the mission keeps getting hurt at mission start so he wouldn't enter the truck and the truck wouldn't move. I had to move the players group just a bit to stop this from happening.

    Hi Manzilla,

    for calling reinforcements all u need is to set true the variable u want KRON_UPS_reinforcement1 for groups with paramenter "reinforcement",1

    KRON_UPS_reinforcement2 for groups with paramenter "reinforcement",2

    KRON_UPS_reinforcement3 for groups with paramenter "reinforcement",3

    ....

    or KRON_UPS_reinforcement for all groups and all ones with parameter "reinforcement".

    for truck movement AI uses careles if far away of enemy or AWARE for avoiding roads if near. No waypoints will solve this.

    When getin in a vehicle low level commands of arma waits until all are inside. No way to solve this, this does arma by default. If driver is not inside, when pased a minute another soldier takes driver and goes on leaving people not inside.


  3. I assume because of this:

    KRON_UPS_Res_enemy = [east];

    That both sides cant run upsmon - limited to one side only?

    KRON_UPS_Res_enemy is a parameter for resistance squads.

    u need to especify the enemy of UPSMON resistance squads.

    In editor u can put east or opfor, west or bluefor and independent or resistance squads. If u put resistance squads u must especify wich one is resistance enemy:

    KRON_UPS_Res_enemy = [east];

    or

    KRON_UPS_Res_enemy = [west];

    or

    KRON_UPS_Res_enemy = [east,west];


  4. Ok, but I called in the reinforcement via radio trigger and the enemy hasn't detected me yet. In that case, where will the reinforcements go?

    If no enemy known squads Will go no no where else. Think at the situation, all squad gets a call by radio for getting reinforcement, then they ask, where is the enemy position? and answer, no there is no enemy. Nobody will go for this call.

    Minimalaco si tu no pides refuerzos "kron_ups_reinforcement=true" las unidades sin el parámetro "reinforcement" no acudiran a la llamada, otra cosa es que se encuentren dentro del radio de influencia y por su naturaleza movil acudan para atacar al enemigo. Lo que puedes hacer es reducir el área de influencia "kron_ups_sharedist" puedes bajarlo de 1500 metros a 1000, pero no recomiendo bajarlo mucho más o se perderán otras funcionalidades.

    If reinforcements are called "kron_ups_reinforcement=true" only units with reinforcement will go to atack enemy at enemy position. If u have units with "move" parameters and without reinforcement only will engage enemy if is in his inflence dist "kron_ups_sharedist". If u fell this área is so high u can reduce it, but dont recoment downloading less than 1000 for no losing other functionalities.


  5. This looks awesome Fer, maybe you would like to take a look at UPSMON its purpuse is to improve AI giving them intelligence for using empty vehicles, like cars, truks and helis. They talk eachothers comunicating if enemys near and flanking enemy, fortify in zone taking position in nearest buildings, multiple reinforcement..

    This and much more without doing nothing in editor, really simplifies mision creating.

    Maybe u would use it.

    See u


  6. Im not sure but try compile preprocess

    I supose this fucntions runs ok then try:

    SPAWN_WAVE	= compile preprocessFileLineNumbers ("scripts\spawn_wave.sqf");
    SPAWN_INF 	= compile preprocessFileLineNumbers ("scripts\spawn_infantry.sqf");
    SPAWN_VEC 	= compile preprocessFileLineNumbers ("scripts\spawn_vehicles.sqf");
    
    

    in yor trigger:

    sidechat format["inf1=%1", inf1];
    sidechat format["infantry_groups=%1", count infantry_groups];
    sidechat format["fb_hill=%1", getPos fb_hill];
    rawr=[getPos inf1, infantry_groups, getPos fb_hill, east] call SPAWN_INF; //this is basicly where it fails

    if u get troubles checks for errors in:

    C:\Users\"YOUR MACHINE"\AppData\Local\ArmA 2\arma2.RPT


  7. Hi, for begginers I recomend to use UPSMON, it simplifies a lot editing and greatly improves AI in combat.

    Well to answer you:

    This is a template of a briefing/objective.

    All u need is socceed each task with a trigger with this command:

    _tskKillSpongebob setTaskState "Succeeded"

    see wiki for mor info:

    http://community.bistudio.com/wiki/setTaskState

    /*
     *	Mikey's Briefing Template v0.03
     *
     *
     *	Notes: 
     *		- Use the tsk prefix for any tasks you add. This way you know what the varname is for by just looking at it, and 
     *			aids you in preventing using duplicate variable names.
     *
     *
     *		Required briefing commands:		
     *		- Create Note:			player createDiaryRecord ["Diary", ["*The Note Title*", "*The Note Message*"]]; 
     *		- Create Task:			tskExample = player createSimpleTask ["*The Task Title*"];
     *		- Set Task Description:	tskExample setSimpleTaskDescription ["*Task Message*", "*Task Title*", "*Task HUD Title*"];
     *
     *		Optional briefing commands:
     * 		- Set Task Destination:	tskExample setSimpleTaskDestination (getMarkerPos "mkrObj1");  // use an existing marker!
     *		- Set the Current Task:	player setCurrentTask tskExample;
     *		
     *		Formatting:
     *		- To add a newline: 		<br/>
     *		- To add a marker link:	<marker name='mkrObj1'>Attack this area!!!</marker>
     *		- To add an image: 		<img image='somePic.jpg'/> 
     *		   - custom width/height:	<img image='somePic.jpg' width='200' height='200'/>
     *		
     *		Commands to use in-game:
     *		- Set Task State:		tskExample setTaskState "SUCCEEDED";   // states: "SUCCEEDED"  "FAILED"  "CANCELED" "CREATED"
     *		- Get Task State:		taskState tskExample;
     *		- Get Task Description:	taskDescription tskExample;   // returns the *task title* as a string
     *		- Show Task Hint:		[tskExample] call mk_fTaskHint;  // make sure tskExample and the mk_fTaskHint function exist
     *							
     *
     *	Authors: Jinef & mikey
     */
    
    // since we're working with the player object here, make sure it exists
    waitUntil { !isNull player }; // all hip now ;-)
    waitUntil { player == player };
    
    switch (side player) do 
    {
    
    case WEST: // BLUFOR briefing goes here
    {
    
    };
    
    
    case EAST: // REDFOR briefing goes here
    {
    	player createDiaryRecord["Diary", ["Info", "<br/>Author - Monsada<br/>Version 1.00<br/>"]];
    	player createDiaryRecord["Diary", ["Fuerzas enemigas", "<br/>Creemos que solo hay medio centenar de infanteria por el pueblo y los alrededores y hemos podido ver algunas patrullas de jeeps controlando los accesos por carretera, la ONU tiene tropas en los pueblos de alrededor de modo que no se descarta que pidan refuerzos si se ven acorralados, estaremos alerta por si interceptamos alguna senal de radio."]];
    	player createDiaryRecord["Diary", ["Fuerzas amigas", "<br/>Las fuerzas rusas no nos atacaran porque.. bueno ya sabeis porque, pero tampoco espereis que nos ayuden.
    														  <br/>Sabemos que hay guerrilleros Chernorusos muy inquietos desde que la ONU tomo Dubrovka, los hemos visto merodeando por el oeste de Dubrovka observando los movimientos de la ONU, puede ser un buen punto de huida si las cosas se ponen feas."]];
    	player createDiaryRecord["Diary", ["Mision", "<br/>Bien, vayamos al grano, Las fuerzas de la ONU han tomado <marker name='TOWN'>Dubrovka</marker>, y estan construyendo una <marker name='m_o3'>base</marker> y varios puestos de defensa."]];
    	player createDiaryRecord["Diary", ["Situacion", "<br/>Parece que el pueblo les interesa y mucho por la cantidad de tropas que han destinado y las defensas que estan construyendo, es de vital importancia tomar Dubrovka ahora que todavia podemos, 
    													 <br/>Dubrovka esta muy bien comunicada y esta demasiado cerca de nuestra base, de no lograr el objetivo podrian intentar cortarnos los suministros y nuestra base se veria seriamente amenazada"]];
    
    
    	//>---------------------------------------------------------<														
    	// Secondary Objective		
    	tskObj4 = player createSimpleTask["Secundary: Encontrar informacion relevante"];     
    	tskObj4 setSimpleTaskDescription["Esta semana un importante sequito de los Estados Unidos ha visitado la nueva <marker name='m_o4'>base</marker> de la ONU en Dubrovka y creemos que han tenido una reunion en secreto, es posible que en esa base puede haber informacion importante, echad un vistazo haber que encontrais", "Encontrar informacion relevante", "Encontrar informacion relevante"];      
    	tskObj4 setSimpleTaskDestination (getMarkerPos "m_o3");   
    
    	//>---------------------------------------------------------<														
    	// Primary Objective
    	tskObj1 = player createSimpleTask["Primary: Expulsar a la ONU de Dubrovka"]; 
    	tskObj1 setSimpleTaskDescription["Eliminar las fuerzas americanas y de la ONU de <marker name='TOWN'>Dubrovka</marker>. Vigilar al acercaros, hay patrullas por las carreteras. Buena suerte chicos", "Expulsar a la ONU de Dubrovka", "Expulsar a la ONU de Dubrovka"];		
    	tskObj1 setSimpleTaskDestination (getMarkerPos "TOWN");		
    
    
    	// Third Objective
    	//tskObj3 = player createSimpleTask["Secundary: Destruir el radar",tskObj2]; 
    	//tskObj3 setSimpleTaskDescription["En la base que estan construyendo hemos podido ver un <marker name='m_o3'>radar</marker>, creemos que si ese radar es destruido no tendran forma de comunicarse con el centro de mando para pedir refuerzos", "Destruir radar", "Destruir el radar"];		
    	//tskObj3 setSimpleTaskDestination (getMarkerPos "m_o3");
    
    	//>---------------------------------------------------------<						
    	// Secondary Objective
    	tskObj2 = player createSimpleTask["Secundary: Recuperar la estacion de servicio"]; 
    	tskObj2 setSimpleTaskDescription["Hemos marcado una <marker name='m_b3'>Estacion de servicio</marker> que es de vital importancia para nuestros intereses y que ha sido tomada por fuerzas de la ONU, una vez mas han dejado patente los verdaderos intereses en la zona, o eso o preveen atacarnos en breve y tienen miedo de nuestros blindados, jajaja, jojojojo, jejejeje.... esto.. ejem, ejem, hay que recuperarla. ", "Recuperar la estacion de servicio", "Recuperar la estacion de servicio"];		
    	tskObj2 setSimpleTaskDestination (getMarkerPos "m_b3");
    	player setCurrentTask tskObj2;	
    	//tskObj2 setTaskState "Assigned";
    	//>---------------------------------------------------------<			
    
    	//Inicializamos las futuras tareas
    	tskObj5 = objnull;
    	tskObj6 = objnull;
    
    };
    
    
    case RESISTANCE: // RESISTANCE/INDEPENDENT briefing goes here
    {
    
    
    };
    
    
    case CIVILIAN: // CIVILIAN briefing goes here
    {
    
    };
    
    
    };
    
    if (true) exitWith {};


  8. New version 5.0.1 released

    MadMike.48th has a very good idea and told me to implement multiple reinfocement squads, thanks MadMike. Im uploading a video to show u how new functions "fortify" and "reinforcement:",1 runs, be aware

    //Version: 5.0.1

    // Added

    // Mulitiple reinforcement reinforcement:x, now you can put an id of reinforcement for calling only this groups later:

    // nul=[this,"town", "move","reinforcement:",1, "delete:",600] execVM "scripts\upsmon.sqf";

    // nul=[this,"town", "move","reinforcement:",2, "delete:",600] execVM "scripts\upsmon.sqf";

    // Modified:

    // Fixed fortify squads don't get defence positions until known enemys

    // Fortify squads leave fortify status when called for reinforcement

    video:

    download:

    http://www.simulacion-esp.com/v3/index.php?app=core&module=attach&section=attach&attach_id=1443


  9. @Monsada

    I found out something really strange. The script works even very well with the BWMod-Soldiers - but only if the players are ai-controlled. If the Soldiers are made "playable" in the editor (like my team of 5 soldiers) and are controlled by human players the ai don´t call "enemy detected" and no reinforcement is coming.

    Why don´t they detect "my squad" as an enemy? Maybe its because i gave them name p1, p2, p3, p4, and so on? I do this because of the revive_script.

    Maybe you have an idea?

    Ahhh then the problem is this!! UPSMON is for AI groups, no have sense with players, upsmon solves the relation between squads of AI, is made for gaving enemy AI more global intelillence and making easy mision editing.

    in any case u could put as a player in a UPSMON squad but not into leader, the leader must be an AI.

    ---------- Post added at 07:49 PM ---------- Previous post was at 07:46 PM ----------

    Version: 5.0.0

    Well I have implemented the upgrades demanded, closed version 4

    // Version: 5.0.0

    // Added

    // KRON_UPS_flyInHeight: Height that heli will fly this input will be randomiced in a 10%

    // KRON_UPS_paradropdist: Max distance to target for doing paradrop, will be randomiced between 0 and 100% of this value.

    // parameter "fortify" makes leader order to take positions on nearly buildings at distance 100 meters near leader,

    // squads with fortify will ignore "MOVE" rol.

    // Modified:

    // Fixed bug that eventually stoped hely when paradrops done.

    Downloads

    http://www.megaupload.com/?d=3EC1FQQG

    http://www.simulacion-esp.com/v3/index.php?app=core&module=attach&section=attach&attach_id=1439


  10. Hi MadMike, I'm glad UPSMON likes u.

    Well

    1. Is it possible to set the paradrop more accurate? (Heli flys in more height and don´t drop so early?

    Is a good idea, I will implement it in next revisión:

    KRON_UPS_flyInHeight=80;

    Then u will can put what u want.

    2. Usually we play as BLUFOR against OPFOR. If i use the german BWMod-Soldiers instead of USMC the script don´t work. They don´t call for reinforcement - i think they don´t see the BWMod-Soldiers as an real enemy. Of course the russians shoot at them, but they dont say "Enemy detected". If i change the german Soldiers to USMC and they enter the sensor it starts the heli for reinforcement. The BWMod soldiers don´t. Can i add them somewhere in the script to be detected as BLUFOR, too?

    There are 3 tipes that is recognized, BLUEFOR, OPFOR and resistance.

    Well for resistance AI's UPSMON needs to know who is the enemy, for it u have this parameter array:

    KRON_UPS_Res_enemy = [east];
    

    If u want resistance will be enemy to all put [east, west] instead, maybe this is the problem, if it not correct the problem, then may be a bug, please send me your mission to chs.monsada@gmail.com and explain me how to test it. I will correct the bug.

    ---------- Post added at 12:09 PM ---------- Previous post was at 11:53 AM ----------

    Hi Monsada. Thanks for the great script, I am having tons of fun playing my missions with it.

    I tried the last version, 4.2.6, but my units still paradrop early from the heli. Way short of target marker. Is there any parameter I can use to make them jump correctly?

    thanks.

    Hi bobrock,

    thats ok, Paradrop will do in a random distance from 0.2 * (safedist+closeenought), why? I don't want AI always paradroop on enemy because of fire and dinamice result, playes won't know when paradrop AI and don't know if they will land.

    I will implement a parameter KRON_UPS_paradropdist.

    AI will paradrop in a random distance with the max put in this parameter. Doing this u will fix it at 0 and other players as mine would put 400 meters.

    If there is no troubles will be post in next days


  11. Hi RonnieJ,

    There are two things to understand with variables:

    First:

    Local variables are all that begins with "_" and its visibility is only in the script that is runing.

    Example:

    //Local variable
    _myvar = 5;
    

    _myvar is local and it only is visible in the script that it isdefined.

    Global variables are all that not begins with "_"

    //Global variable
    Myvar =5;
    

    is a global variable, is visible in any side the game but only in the machine that is runing the script. What this means?

    If there are two machines playing a mission, one a server and another the client, if the server runs a scritp that sets Myvar =6; only the server has this value, the client not see the change.

    The correct thing to do when programing is setting value of global variables only in the server, and then propagate its value to all the clients:

    if (!isServer) exitwith{};
    
    Myvar =5;
    
    //Now propagates the value to all machines publicating de variable
    publicvariable "Myvar";
    

    publicvariable only must be done with global variables.

×