|
| | Problème de briefing qui disparait après respawn | |
| | Auteur | Message |
---|
=[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Problème de briefing qui disparait après respawn Sam 7 Nov - 2:28 | |
| J'ai trouvé un truc sur le site arma-fr, ça vaut ce que ce ça vaut, comme j'y pipe que dalle je vous le met : - Code:
-
waitUntil { !isNil {player} }; waitUntil { player == player };
if ( isNil {player getVariable "mk_briefingEH"} ) then { player addEventHandler ["killed", { [] spawn { waitUntil { alive player }; execVM "briefing.sqf"; }; }]; player setVariable ["mk_briefingEH", true]; }; c'est à mettre dans le briefing.sqs juste à la fin EDIT: j'ai collé le code sur mes deux missions, mais à mon avis cette technique ne fonctionne que pour les objectifs définis au départ et pas pour les objectifs créés en cours de partie à l'aide de déclencheurs, il faudrait donc déporter ces ajouts de briefing dans des fichiers sqf supplémentaires et les appeler à l'aide du même code ci dessus RE EDIT : ça à pas l'air de fonctionner leur machin, j'ai trouvé un autre truc qui à l'air plus simple : - Code:
-
A mettre dans l'init de toutes les unités jouables : this addEventHandler ["killed", {_this execVM "respawn_player.sqf";}];
respawn_player.sqf: sleep playerRespawnTime; player exec "briefing.sqf"; après dans respawn_player.sqf faudrai bricoler un truc qui vérifie que obj1 et obj2 sont bien sur true pour afficher obj3 qui est dans un sqf a part sources : http://www.arma-fr.net/forum/index.php?showtopic=8192sources : http://www.tacticalgamer.com/armed-assault-mod-mission-development/143398-briefing-disappears-after-respawn-mp-armed-assault-2-a.html | |
| | | =[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Sam 7 Nov - 16:21 | |
| ou encore : - Code:
-
init.sqf :
_KilledHandler = player addEventHandler ["killed", {_this execVM "playerkilled.sqf"}]; - Code:
-
playerkilled.sqf :
waituntil {(alive player)};
execVM "briefing.sqf"; Quelle méthode vous semble la plus prometteuse ? | |
| | | =[TTK]= Camille Caz TranKilou
Nombre de messages : 937 Age : 83 Localisation : La Rochelle Humeur : libertaire Date d'inscription : 27/11/2008
| Sujet: Re: Problème de briefing qui disparait après respawn Sam 7 Nov - 17:05 | |
| J'ai choisi la dernière pour la mettre dans "Crash" | |
| | | =[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Sam 7 Nov - 17:55 | |
| Je viens de voir que j'avais oublié un petit détail qui a son importance, il faut ajouter sur la carte une logique de jeu nommé "killed" pour que cette méthode fonctionne | |
| | | =[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Sam 7 Nov - 18:56 | |
| je monologue un peu mais je crois que j'avance sur ce problème :
En fait les Respawn "GROUP" et "SIDE" ne sont pas des respawn a proprement parler pour arma 2, il s'agit en fait de teamswitch déguisé (vous pouvez vous en apercevoir en appuyant sur la touche "T" dans 'éditeur qui vous propose le changement d'équipe.
Donc vous démarrer votre mission, sur le premier joueur le briefing s'affiche, vous appuyez sur "T", vous selectionnez n'importe quel joueur et la boom le briefing et les notes disparaissent.
En fait lorsque la partie débute le briefing.sqf est envoyé uniquement aux joueurs humains et pas aux IA.
Donc en rajoutant dans l'init.sqf : onTeamSwitch {execVM "briefing.sqf";};
on résout le problème, cependant deux problèmes persistent :
- le 1er si on s'amuse (mais là ya pas de raison en multi) à reswitcher sur un joueur ayant déjà eu le briefing, on double toutes les entrées. - le 2ème : avec cette technique les objectifs ne sont pas cochés quand ils ont été réalisés, malgré le publicVariable (tout du moins en local, pas testé sur le serveur) | |
| | | =[TTK]= MoreBack Manitou
Nombre de messages : 444 Age : 62 Localisation : à coté de chez Camille Date d'inscription : 29/11/2008
| Sujet: Re: Problème de briefing qui disparait après respawn Sam 7 Nov - 19:13 | |
| tout cela est très intéressant Memphis !
Camille, il faudrait que tu ajoute, dans ton raccourci arma, le paramètre -winxp. beaucoup de personnes ont résolus leurs problèmes sous vista / arma avec ce paramètre. | |
| | | =[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Sam 7 Nov - 19:14 | |
| vous noterez qu'il n'y pas de problèmes de briefing avec respawn = "BASE" | |
| | | =[TTK]= Clem Manitou
Nombre de messages : 232 Date d'inscription : 12/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Dim 8 Nov - 3:28 | |
| c'est un bug de arma 2 , dans le patch 1.03 ils ont corige que pour le respawn base. pour group et side faut atendre un autre patch eh pour info j'ai 2 soluces a ce bug mais c'et du script sur script et tu utilise plus du tout le systeme briefing.sqf et briefing.html faite un tour ,le temps que je comprends comment ca fonctionne, sur www.ofpec.com et recuperez Briefing_Example.utes.rar ce probleme de diparation de briefing est aparament resolu dans cete exemple | |
| | | =[TTK]= Clem Manitou
Nombre de messages : 232 Date d'inscription : 12/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Dim 8 Nov - 16:05 | |
| virez briefing.sqf du dossier mision et metre tous le texte du briefing.sqf dans initJIPcompatible.sqf que vous aurez preablement creer dans votre dossier mission . | |
| | | =[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Dim 8 Nov - 16:40 | |
| ??? ça change quoi de déporter le briefing dans ce fichier ? tu lances ce nouveau fichier via l'init.sqf ? t'as testé cette méthode ? Quid des objectifs déclarés en cour de partie ? (oui je sais ça m'agace aussi ) Mais il faut trouver une solution fiable qui fonctionne dans tous les cas de figures, sinon c'est pas drôle ! | |
| | | =[TTK]= Clem Manitou
Nombre de messages : 232 Date d'inscription : 12/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Dim 8 Nov - 17:04 | |
| ta le briefing ,le respwan ok,quid no,JIP avec objectif a jour no,teamswitch no tu ne le lance pas a partir de l'init se lance tout seul la soluce elle est la reste a piger comment ca marche jip.sqf
private ["_diary6", "_diary5", "_diary4", "_diary3", "_diary2", "_diary1", "_str", "_trigger"];
waitUntil {!isNil "tasks_done"};
if (!isNil "convoy_down") then { deleteMarkerLocal "Hinterhalt"; } else { "convoy_down" addPublicVariableEventHandler { hint "The convoy was destroyed, good work!"; task1 settaskstate "Succeeded"; deleteMarkerLocal "Hinterhalt"; }; };
//Missionsziel wird vorausgewählt
_str = str player;
if (_str in ["sf_1d","sf_2d","sf_3d","sf_4d","sf_5d","sf_1","sf_2","sf_3","sf_4","sf_5"]) then { if (isNil "convoy_down") then { player setCurrentTask task1; }; } else { if (_str in ["pilot_1","pilot_2","pilot_3","pilot_4","pilot_5"]) then { player setCurrentTask task5; } else { if (_str in ["a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","c12","c13"]) then { if (isNil "elektro_clear") then { player setCurrentTask task3; }; } else { if (_str in ["b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13"]) then { if (isNil "zele_clear") then { player setCurrentTask task2; }; } else { if (isNil "elektro_clear") then { player setCurrentTask task3; }; }; }; }; };
if (isNil "tanks_down") then { "tanks_down" addPublicVariableEventHandler { "tanks" setMarkerColorLocal "ColorGreen"; hint "Tanks in Zelenogorsk are destroyed !!!"; }; } else { "tanks" setMarkerColorLocal "ColorGreen"; };
if (isNil "zele_clear") then { "zele_clear" addPublicVariableEventHandler { "zeleno" setMarkerColorLocal "ColorGreen"; task2 settaskstate "Succeeded"; hint "Zelenogorsk cleared !!!"; }; } else { "zeleno" setMarkerColorLocal "ColorGreen"; };
if (isNil "elektro_clear") then { "elektro_clear" addPublicVariableEventHandler { "elektro" setMarkerColorLocal "ColorGreen"; task3 settaskstate "Succeeded"; hint "Elektrozavodsk cleared !!!"; }; } else { "elektro" setMarkerColorLocal "ColorGreen"; };
if (isNil "krasno_clear") then { "krasno_clear" addPublicVariableEventHandler { "krasnostav" setMarkerColorLocal "ColorGreen"; task4 settaskstate "Succeeded"; hint "Krasnostav cleared !!!"; }; } else { "elektro" setMarkerColorLocal "ColorGreen"; };
"convoy_reached_dest" addPublicVariableEventHandler { task1 settaskstate "FAILED"; hint "The convoy reached its destination, mission failed!"; };
"ari_available" addPublicVariableEventHandler { [playerSide,"HQ"] sideChat "Artillery available again!"; };
is_artiman = false; arti_action = -1000; if (_str in ["arti","artid"]) then { arti_action = player addAction ["Call Artillery","call_arti.sqf",[],-1,false]; is_artiman = true; _trigger = createTrigger["EmptyDetector" ,position player]; _trigger setTriggerArea [0, 0, 0, false]; _trigger setTriggerActivation ["NONE", "PRESENT", true]; vec_ass = -8876; _trigger setTriggerStatements["vehicle player != player", "arti_vehicle = vehicle player;if (vec_ass == -8876) then {vec_ass = arti_vehicle addAction ['Call Artillery', 'call_arti.sqf',[],-1,false]}", "if (vec_ass != -8876) then {arti_vehicle removeAction vec_ass;vec_ass = -8876}"]; };
player addEventHandler ["killed",{[_this select 0, _this select 1] execVM "x_scripts\x_checkkill.sqf"}];
execVM "x_scripts\x_playerweapons.sqf";
admins=[]; admins=["Xeno"]; if ((name player) in admins) then {KEGsShownSides = [west, east, resistance, civilian, sideEnemy, sideFriendly, sideLogic,sideUnknown];} else {KEGsShownSides = [(side player)]}; [] execVM "spect\specta_init.sqf"; is_admin = false; if ((name player) in admins) then { is_admin = true; Kspect1= player addaction ["Admin Spectate", "spect\specta.sqf",[],1, false, false,"testX0"]; };
tasks_fix.sqf
private ["_diary6", "_diary5", "_diary4", "_diary3", "_diary2", "_diary1", "_str"];
//Briefingeinträge _diary6 = player createDiaryRecord ["Diary", ["Technical Details", "None"]]; _diary5 = player createDiaryRecord ["Diary", ["Historic", "No Information available"]]; _diary4 = player createDiaryRecord ["Diary", ["Weather", "No weather information available"]]; _diary3 = player createDiaryRecord ["Diary", ["Intelligence report", "No intelligence report avaialbe"]]; _diary2 = player createDiaryRecord ["Diary", ["Motor pool", "Not available"]]; _diary1 = player createDiaryRecord ["Diary", ["Briefing", "Your main task is to recapture Elektrozavodsk, Zelenogorsk and Krasnostav from enemy forces. Watch out for enemy AntiAir guns. We have spotted them around here and herehere. In case of this danger, we only get a go for the armed choppers, when the AAs are eliminated. A convoy is underway to support the enemy forces. Destroy the convoy before it reaches Elektrozavodsk."]];
//Missionsziele task5 = player createSimpleTask ["obj5"]; task5 setSimpleTaskDescription ["Attention: Don't waste our choppers own helicopters.","Main target: Do not waist choppers","Main target: Do not waist choppers"]; task5 setSimpleTaskDestination markerpos "start"; task5 settaskstate "Created";
task4 = player createSimpleTask ["obj4"]; task4 setSimpleTaskDescription ["Clear Krasnostav from all enemy forces.","Main target: Clear Krasnostav","Main target: Clear Krasnostav"]; task4 setSimpleTaskDestination markerpos "krasnostav"; if (isNil "krasno_clear") then { task4 settaskstate "Created"; } else { task4 settaskstate "Succeeded"; };
task3 = player createSimpleTask ["obj3"]; task3 setSimpleTaskDescription ["Clear Elektrozavodsk from all enemy forces.","Main target: Clear Elektrozavodsk","Main target: Clear Elektrozavodsk"]; task3 setSimpleTaskDestination markerpos "elektro"; if (isNil "elektro_clear") then { task3 settaskstate "Created"; } else { task3 settaskstate "Succeeded"; };
task2 = player createSimpleTask ["obj2"]; task2 setSimpleTaskDescription ["Destroy the Tanks in Zelenogorsk and clear the town of all enemy presence","Hauptziel: Destroy Tanks","Hauptziel: Destroy Tanks"]; task2 setSimpleTaskDestination markerpos "zeleno"; if (isNil "zele_clear") then { task2 settaskstate "Created"; } else { task2 settaskstate "Succeeded"; };
//task1 = player createSimpleTask ["Hauptziel: Konvoi zerstören"]; task1 = player createSimpleTask ["obj1"]; task1 setSimpleTaskDescription ["Destroy the convoy that is coming from Krasnostav. Its destination is Elektrozavodsk. The SF Team starts in Dubrovka and must stop the convoy. If the convoy reaches Elektrozavodsk the complete mission failed.","Main target: Destroy convoy","Destroy convoy"]; task1 setSimpleTaskDestination markerpos "Hinterhalt"; //Created, Succeeded, Failed if (isNil "convoy_down") then { task1 settaskstate "Created"; } else { task1 settaskstate "Succeeded"; };
tasks_done = true;
init.sqf
setViewDistance 1600; enableEnvironment false;
X_INIT = false; X_Server = false; X_Client = false; X_JIP = false;X_SPE = false;
X_MP = isMultiplayer;
if (isServer) then { X_Server = true; if (!(isNull player)) then {X_Client = true;X_SPE = true;}; X_INIT = true; } else { X_Client = true; if (isNull player) then { X_JIP = true; [] spawn {waitUntil {!(isNull player)};X_INIT = true}; } else { X_INIT = true; }; };
x_addkilledhandler = [east];
if (!isNil "param1") then { switch (param1) do { case 1: {skipTime 5}; case 2: {skipTime 12}; case 3: {skipTime 19}; }; } else { skipTime 9; };
if (!isNil "param2") then { x_chopprespawn = if (param2 == 1) then {true} else {false}; } else { x_chopprespawn = true; };
ari_type = "";
if (isServer) then { execVM "x_scripts\x_serverinit.sqf"; ari_available = true; publicVariable "ari_available"; "ari_type" addPublicVariableEventHandler { (_this select 1) execVM "x_arifire.sqf"; }; konvoy_killed = 0; };
waitUntil {X_INIT}; if (!X_Client) exitWith {};
[] spawn { waitUntil {player == player}; execVM "tasks_fix.sqf"; };
if (true) exitWith {};
initJIPcompatible.sqf
// empty
x_initaddkilledhandler.sqf
private ["_vec","_gr"]; if (!isServer) exitWith {};
sleep 4.321;
{ if (side _x in x_addkilledhandler) then { if (_x isKindOf "Man") then { // not needed, I guess _gr = group _x; _kev = _gr getVariable "gr_a"; if (isNil "_kev") then { _gr setVariable ["gr_a", 1]; switch (side _x) do { case east: {groups_east = groups_east + [[_gr,time + 120]];}; case west: {groups_west = groups_west + [[_gr,time + 120]];}; case resistance: {groups_resistance = groups_resistance + [[_gr,time + 120]];}; case civilian: {groups_civilian = groups_civilian + [[_gr,time + 120]];}; }; }; if (!(isPlayer _x)) then { _kev = _x getVariable "ke"; if (isNil "_kev") then { _x addEventHandler ["killed", {[_this select 0] call XAddDead}]; _x setVariable ["ke", 1]; }; }; if (vehicle _x != _x) then { _vec = vehicle _x; _kev = _vec getVariable "ke"; if (isNil "_kev") then { _vec addEventHandler ["killed", {[_this select 0] spawn x_removevehi}]; _vec setVariable ["ke", 1]; }; }; }; }; sleep 0.423; } forEach allUnits;
if (true) exitWith {};
x_serverinit.sqf
if (!isServer) exitWith {};
call compile preprocessFile "x_scripts\x_initx.sqf";
if (true) exitWith {};
x_initx.sqf
if (!X_Server) exitWith{};
groups_east = []; dead_list = []; game_running = true;
if (isNil "x_addkilledhandler") then {x_addkilledhandler = [];};
x_removevehi = compile preprocessFile "x_scripts\x_removevehi.sqf";
XAddDead = { dead_list = dead_list + [_this select 0]; };
[] execVM "x_scripts\x_removedead.sqf"; if (count x_addkilledhandler > 0) then {[] execVM "x_scripts\x_initaddkilledhandler.sqf";};
if (true) exitWith {};
x_checkkill.sqf
private ["_killed","_killer"];
_killed = _this select 0;
sleep 30 + (random 15);
deleteVehicle _killed;
if (true) exitWith {};
Dernière édition par =[TTK]= Clem le Dim 8 Nov - 23:32, édité 1 fois | |
| | | =[TTK]= yoda Grand Mérou
Nombre de messages : 895 Age : 58 Localisation : un petit cabanon, pas plus grand qu'un mouchoir de pocheuuuuu Humeur : LCFMTZAUF Date d'inscription : 17/11/2008
| Sujet: Re: Problème de briefing qui disparait après respawn Dim 8 Nov - 17:14 | |
| Mon dieu !!! C'est quoi ce language ????? Clem, reviens, on a les mêmes à la maison !!! | |
| | | =[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Dim 8 Nov - 22:34 | |
| Un truc que je ne comprend pas : quand je met : - Code:
-
player addEventHandler ["killed", { [] spawn { waitUntil { alive player }; execVM "briefing.sqf"; }; }]; dans l'init.sqf au 1er respawn je conserve bien le briefing, mais pas au 2ème. Alors je me dis, ben oui c'est normal, le init.sqs il est appelé qu'une fois au lancement de la mission donc normal. Je rajoute alors le même code dans le briefing.sqf, mais ça marche pas non plus, au 2eme respawn hop plus de briefing. et si je le met que dans le briefing, ben la ça marche pas du tout C'est quoi le problème ? EDIT : le problème c'est qu'il fallait que j'enleve le mod "BOULET" et que je rajoute une ";" à la ligne du dessus.... | |
| | | =[TTK]= Camille Caz TranKilou
Nombre de messages : 937 Age : 83 Localisation : La Rochelle Humeur : libertaire Date d'inscription : 27/11/2008
| Sujet: Re: Problème de briefing qui disparait après respawn Lun 14 Déc - 20:32 | |
| A relire tous les messages du sujet pour faire le point, on est un peu déconcerté.
Memphis, tu pourrais pas faire un récapitulatif de ce qui te semble la meilleure solution ?
C'est pour perfectionner "mission portuaire"
Dernière édition par =[TTK]= Camille Caz le Lun 14 Déc - 20:38, édité 1 fois | |
| | | =[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Lun 14 Déc - 20:37 | |
| j'ai noté ça dans mon agenda, je vois quand je peux te caser ça (je suis overbooké moi) | |
| | | =[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Re: Problème de briefing qui disparait après respawn Lun 14 Déc - 21:03 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: Problème de briefing qui disparait après respawn | |
| |
| | | | Problème de briefing qui disparait après respawn | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|