Inicialización amunicionamiento unidades

Resultados 1 al 5 de 5
  1. #1

    Inicialización amunicionamiento unidades

    Por algún motivo, en servidor no funciona el llamar un script en cada unidad en su inicialización para amunicionarlos. Ya se comentó en ts y no encontramos solución...

    Probé llamando un script en el init.sqf que lo hacia por cada unidad (por nombres) reutilizando el script de la caja de roles.

    Código:
    _lideres=[Alpha_1,Bravo_1,Charlie_1,Delta_1];_rtos=[Alpha_5,Bravo_5,Charlie_5,Delta_5];
    _fusileros=[Alpha_2,Bravo_2,Charlie_2,Delta_2,Charlie_3,Delta_3];
    _apoyo=[Alpha_3,Bravo_3];
    _medicos=[Alpha_4,Bravo_4,Charlie_4,Delta_4];
    
    
    {
        _unidadVacia = _x execVM "scriptsMision\vaciarUnidad.sqf";
        waitUntil {scriptDone _unidadVacia};
        _x execVM "scriptsMision\preSetsArmamento\sargento.sqf";
    }forEach _lideres;
    
    
    {
        _unidadVacia = _x execVM "scriptsMision\vaciarUnidad.sqf";
        waitUntil {scriptDone _unidadVacia};
        _x execVM "scriptsMision\preSetsArmamento\RTO.sqf";
    }forEach _rtos;
    
    
    {
        _unidadVacia = _x execVM "scriptsMision\vaciarUnidad.sqf";
        waitUntil {scriptDone _unidadVacia};
        _x execVM "scriptsMision\preSetsArmamento\fusileroGranadero.sqf";
    }forEach _fusileros;
    
    
    {
        _unidadVacia = _x execVM "scriptsMision\vaciarUnidad.sqf";
        waitUntil {scriptDone _unidadVacia};
        _x execVM "scriptsMision\preSetsArmamento\ligera.sqf";
    }forEach _apoyo;
    
    
    {
        _unidadVacia = _x execVM "scriptsMision\vaciarUnidad.sqf";
        waitUntil {scriptDone _unidadVacia};
        _x execVM "scriptsMision\preSetsArmamento\TES.sqf";
    }forEach _medicos;


    Y nada, muy bonito en el editor, pero ni caso en servidor.

    Leyendo la wiki de bis, vi información sobre el 'initPlayerLocal.sqf' y me dio por probar a partir de él. Aún así, entiendo que hace la misma función que la inicialización de cada unidad en el servidor pero de manera general... Así, que ahí llamo a este script:

    Código:
    _player=_this select 0;
    
    _unidadVacia = _player execVM "scriptsMision\vaciarUnidad.sqf";
    waitUntil {scriptDone _unidadVacia};
    
    
    switch (_player) do {
      case (Alpha_1 || Bravo_1 || Charlie_1 || Delta_1)  : {
        _player execVM "scriptsMision\preSetsArmamento\sargento.sqf"; };
      case (Alpha_5 || Bravo_5 || Charlie_5 || Delta_5) : {
        _player execVM "scriptsMision\preSetsArmamento\RTO.sqf"; };
      case (Alpha_2 || Bravo_2 || Charlie_2 || Delta_2 || Charlie_3 || Delta_3) : {
        _player execVM "scriptsMision\preSetsArmamento\fusileroGranadero.sqf"; };
      case (Alpha_3 || Bravo_3) : {
        _player execVM "scriptsMision\preSetsArmamento\ligera.sqf"; };
      case (Alpha_4 || Bravo_4 || Charlie_4 || Delta_4) : {
        _player execVM "scriptsMision\preSetsArmamento\TES.sqf"; };
      default {
        _player execVM "scriptsMision\preSetsArmamento\fusileroGranadero.sqf"; };
    };


    Y nada...

    Se me ocurre también hacerlo mediante un activador, pero no se si sería correcto.

    Alguna idea? Porque no en todas las misiones puede tener sentido que te esté esperando una bonita caja...



    --



    EDITO: A parte de algunos errores en los dos scripts, ya se me comentó que no hay solución simple, así que nada, por cajas.
    Última edición por NeGoov; 19/02/2014 a las 23:14

  2. #2
    Siempre nos queda meterlo en el init a pelo...


  3. #3
    Cita Iniciado por Artur Ver mensaje
    Siempre nos queda meterlo en el init a pelo...

    Lo siento, pero soy incapaz de dejarlo así de guarro xD

  4. #4

    Inicialización amunicionamiento cajas

    Para no empezar un nuevo tema y aprovechar que está relacionado,

    Antes eran las unidades, ahora también las cajas. Parece que el tradicional:
    Código:
    clearItemCargo this;
    clearWeaponCargo this;
    clearMagazineCargo this;
    clearBackpackCargo this;
    this addWeaponCargo["loQueSea",5];
    en servidor no hace ni caso, y parece ser que tiene que ser cambiado por los scripts globales, sincronizados en cada uno de los clientes en MP:
    Código:
    clearItemCargoGlobal this;
    clearWeaponCargoGlobal this;
    clearMagazineCargoGlobal this;
    clearBackpackCargoGlobal this;
    this addWeaponCargoGlobal["loQueSea",5];
    Esto afecta a todos los scripts/funciones que quitan/añaden objetos en cajas, incluido, por ejemplo, el GXAddons con su gx_asp_addradio
    Código:
     this addWeaponCargoGlobal ["gx_supportradio", 5];
    Entiendo que esto está relacionado con la inicialización de armamento de las unidades, pero no están los scripts de vaciado global (sí de quitar una arma en concreto -removeWeaponGlobal-), así que eso sigue igual.

    Que alguien lo confirme (Colum...), aunque así lo he comprobado.


    Última edición por NeGoov; 09/03/2014 a las 23:30

  5. #5
    Después de una rápida búsqueda, parece que se ha comentado en los foros de BIS.

    Hemos hecho unas pruebas, y así es. Pero hacer incapié en que se tiene que llamar entre if(isServer) then { ... }; , ya que sino lo haría cada vez que entre alguien, provocando además un gran desincronismo. Aún así, no se si es lo correcto...


    De nuevo, invoco a Colum...

    [EDITO: Confirmado.]
    Última edición por NeGoov; 10/03/2014 a las 12:18

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •