Page 1 sur 1

Ca sent bon la trahison .....

Posté : dim. 21 févr. 2010, 18:57
par =[TTK]= Freshmeat
J'aurais une petite question facile pour de vieux routards comme vous :
- Comment passer une unité alliée en ennemie (au moins en matière de comportement) ?
(note : j'ai essayé de faire un joinAsSilent du groupe avec un groupe ennemi...mais sans résultat)

Question subsidiaire :
- Comment changer le modèle du perso en cours de mission (civil -> soldat) ?

Mici Msieur qui me donnera la réponse.

FreshMeat.

Re: Ca sent bon la trahison .....

Posté : dim. 21 févr. 2010, 18:59
par Camille Caz
Va voir sur le wiki de bis tout ce qui se dit sur "join"

jean = unité blufor
yvan = unité opfor

[jean] join yvan

jean est blufor et devient opfor en rejoignant yvan

Mais ya beaucoup de choses interressantes sur le wiki


Dernière édition par == Camille Caz le Jeu 20 Aoû - 21:10, édité 1 fois

Re: Ca sent bon la trahison .....

Posté : dim. 21 févr. 2010, 19:00
par =[TTK]= Ha dOc
Changer le modèle, pas évident.

A ma connaissance une solution est d'avoir une unités du modèle de destination présente ailleurs sur la carte, d'intervertir la position de tes deux modèles, et en même temps de transférer le joueur d'une unité vers l'autre. Un peu comme un respawn.


Après, en pratique c'est surement plus compliqué.
Enfin un exemple existe dans la mission "blood sweat and tears" d'arma 1

Re: Ca sent bon la trahison .....

Posté : dim. 21 févr. 2010, 19:01
par =[TTK]= Freshmeat
C'est vers cette solution que je m'oriente, mais je ne suis pas certain du résultat, surtout si je veux que la mission reste jouable en multi.

Pour ma première question, le joinSilent fonctionne bien pour changer le comportement, mais il y a encore des ajustements à faire. Je vous donnerai la solution que je trouverai la meilleure.

Re: Ca sent bon la trahison .....

Posté : dim. 21 févr. 2010, 19:02
par =[TTK]= Grosminet
oui, hé bien, on te souhaite du courage pour ta mission.
a+ ;) ;)

Re: Ca sent bon la trahison .....

Posté : dim. 21 févr. 2010, 19:05
par =[TTK]= Clem
pour l'uniforme


la commande selectPlayer qui permet de switcher le joueur sur une autre unité

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

Pour que le joueur puisse rentre dans une unité faut qu'elle soit en "jouable".
Le soucis c'est qu'en multi les unités jouables sont accessibles dès le début.

Tu peux encore contourner ce problème avec la commande addSwitchableUnit.

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

pas besoin d'avoir l'unité "jouable" pour faire un selectPlayer dessus, tu peux le faire pour n'importe quel type d'unité, en SP comme en MP.
Le souci c'est qu'en MP, si tu switch sur une unité non locale, ca n'est pas toi qui la controle et tu te retrouve donc dans le corps d'un unité controllée par quelqu'un d'autre ou par le serveur

tu peux aussi :

1 faire spawner une unite sur ta position avec setpos etc....
2 te switcher dessus
3 effacer ton acienne unite deleteunit etc.. ou destroy et efface les corps >>> voir wiki ado

Re: Ca sent bon la trahison .....

Posté : dim. 21 févr. 2010, 19:06
par =[TTK]= Freshmeat
Ben pour le switchage d'uniforme des unités, j'ai laissé tombé pour le moment et opté pour le 'soldat sans arme'.
L'avantage en multi c'est que comme il dispose de moins de place d'équipement, chaque rôle prend une réelle importance : si tu prend le m136, tu n'auras qu'un pistolet....ET surtout il faudra être bien solidaire, parce que si celui qui porte les saccoches d'explosifs se fait dézinguer, faudra abandonner de l'équipement pour poursuivre....

Merci Clem pour ces infos tout de même, ce ne sera probablement pas perdu de toute façon, d'autant que même si ce n'est plus dans mes priorités du moment, si la mission que je fais plait assez, j'y regarderai de plus près

Re: Ca sent bon la trahison .....

Posté : dim. 21 févr. 2010, 19:07
par =[TTK]= Clem
c'est quoi que tu fait comme mision donne plus de precision a ce sujet ca me permetras de te donnais des infos plus utiles et moins vages

le truc pour changer l'uniforme c'est de scripter la meme chose que fait l'editeur quand ta une unite jouable blufor et que tu appuis sur T et que tu choisis une unite jouable opfor

a te lire j'ai l'impresion que tu fais un remake de stalingrad ,"un homme a le fusil un autre un chargeur,celui qui a le chargeur suit l'homme au fusil quand l'homme au fusil est tue,l'homme qui le suit prend le fusil et tire" je sens que ton truc ca etre une boucherie .

Re: Ca sent bon la trahison .....

Posté : dim. 28 févr. 2010, 23:57
par =[TTK]= Freshmeat
C'est tout con : je voulais que les joueurs soient 'habillés' en civil pour jouer une partie infiltration, puis passent en 'militaires' pour la partie action.
Pas plus compliqué que ça.

Re: Ca sent bon la trahison .....

Posté : dim. 4 avr. 2010, 14:14
par =[TTK]= Clem

Code : Tout sélectionner

/*
======================================================================================
Version: 1.02 @ 08.01.2010
Parameters: unit addAction ["Change Uniform", "uniformchange.sqf", [newunit,side]];
	_unit = unit which gets the action to change the uniform
	_newunit = classname of the new unit
	_side = side of the new unit
Example: this addAction ["Change uniform", "uniformchange.sqf", ["GUE_Soldier_1",guerr]];
Example 2: player addAction ["Change uniform", "uniformchange.sqf", ["FR_GL",west,true]];

The new unit has the same weapons, magazines and the same name as the old unit
=======================================================================================
*/

// Variables
_unit = _this select 1;		// old unit
_action = _this select 2;	// action id 
_sideold = side _unit;		// side of old unit
_type = typeOf _unit;		// classname of old unit
_posunit = getPos _unit;	// position of the old unit
_VarName = (vehicleVarName _unit);	// Editorname of the old unit
_array = _this select 3;	// the new soldier array => ["FR_GL",west]
_newunit = _array select 0;	// classname of the new unit
_side = _array select 1;	// side of the new unit
_exit = _array select 2;	// if set to true the script will exit
_weapons = ((weapons _unit) - (items _unit));	// weapons of the old unit
_primweap = primaryWeapon _unit;	// primaryWeapon of the old unit
_magazines = magazines _unit;	// magazines of the old unit

_unit setPos [0,0,0];	// teleport the old unit to [0,0,0]
titleText ["Changing uniform ...", "BLACK FADED"];	// Black Screen
_unit removeAction _action;

// Create the new unit
_uniform = group _unit createUnit [_newunit, _posunit, [], 0, "NONE"];
setPlayable _uniform;
sleep 0.5;
If (!isnil ("_uniform")) then {selectPlayer _uniform};

// New Unit gets the sames weapons as the old unit
removeAllWeapons _uniform;
{_uniform addMagazine _x} forEach _magazines;
{_uniform addWeapon _x} forEach _weapons;

// Select the primaryWeapon	
_uniform selectWeapon _primweap;
// Fix for weapons with grenade launcher
_muzzles = getArray(configFile>>"cfgWeapons" >> _primweap >> "muzzles");
_uniform selectWeapon (_muzzles select 0);

sleep 0.2;
deleteVehicle _unit;			// delete old unit
sleep 1;
titleText [" ", "BLACK IN"];	// delete Black Screen
_uniform SetVehicleVarName _VarName;
_uniform call Compile Format ["%1=_This ; PublicVariable ""%1""",_VarName];
If (!isNil ("_exit") && _exit) exitWith{};
_uniform addAction ["Change uniform", "uniformchange.sqf", [_type,_side,true], 0, false, false, ""]; 

//hint format ["Unit: %1\nType: %2\nPosUnit: %3\nArray: %4\nNewUnit: %5\nSide: %6\nVarNameOld: %7\nVarNameNew: %8",_unit,_type,_posunit,_array,_newunit,_side,_VarName,(vehicleVarName _uniform)];

Re: Ca sent bon la trahison .....

Posté : ven. 9 avr. 2010, 21:01
par =[TTK]= Freshmeat
@Clem : Je regarde comment le faire tourner et je te dis ce qu'il en est.

Simple à utilliser :
dans l'init d'un objet tu mets :

Code : Tout sélectionner

this addAction ["Change uniform", "uniformchange.sqf", ["GUE_Soldier_1",guerr]];
Quand un joueur approche de l'objet, il aura le menu 'change uniform' ce qui lui permettra de se changer.
Attention à sauvegarder la mission avant de prévisualser, sinon arma ne trouvera pas le script.