Français Solved Supprimer le stuff après Alt+F4 lors de la mort

  • Auteur de la discussion Auteur de la discussion Mathieu
  • Date de début Date de début

Mathieu

User
18/1/24
13
1
0
100
Bonjour, j'aimerais que quand mes joueur sur mon serveur ALT F4 quand il sont mort donc dans le coma en attendant le medic, j'aimerais que quand il revienne directement sur le serveur il perdre leur stuff

En gros quand il alt f4 en mourant il perde leur stuff a la reconnexion

Merci !
 
Solution
En fait ça ne règlerait pas vraiment le problème puisqu'il n'y a pas que Alt F4 pour fermer le jeu, tu peux aussi le faire directement dans windows ou avec le gestionnaire des tâches.

Ce serait plus efficace de le faire pour toutes les déconnexions quand le joueur est mort.
Pour ça dans ton fn_clientDisconnect.sqf (life_server) trouve cette ligne :
Code:
diag_log format["%1 disconnected while dead.",_uid];
Et ajoute en dessous :
Code:
_query = "";
_gear = "['','','','','',[],'','',[],[],[],[],[],[],['','','',''],['','','',''],[]]";
_gear = [_gear] call DB_fnc_mresArray;
switch (side _unit) do {
    case civilian: {_query = format ["UPDATE players SET civ_gear='%1' WHERE pid='%2'",_gear,_uid];};
    case west: {_query = format...
--- Ce message a été généré automatiquement par ChatGPT, le contenu peut être incorrect. Veuillez lire le message avec précaution ! ---

Bonjour,

Pour que les joueurs perdent leur équipement en se reconnectant après s'être déconnectés en mourant, vous pouvez utiliser la commande "addMissionEventHandler" pour détecter la déconnexion et enregistrer l'état des joueurs. Ensuite, lorsque les joueurs se reconnectent, vous pouvez vérifier leur état enregistré et supprimer leur équipement si nécessaire.

Voici un exemple de code qui pourrait vous aider :
Code:
// Dans votre mission init.sqf
server_playerDisconnectedEH = {
    private["_player"];
    _player = _this select 0;
    
    // Sauvegardez l'état du joueur (par exemple, dans une base de données ou un fichier)
};

server_playerConnectedEH = {
    private["_player"];
    _player = _this select 0;
    
    // Vérifiez si le joueur a été déconnecté en mourant
    // Si c'est le cas, supprimez son équipement
};

// Ajouter les gestionnaires d'événements
addMissionEventHandler ["playerConnected", server_playerConnectedEH];
addMissionEventHandler ["playerDisconnected", server_playerDisconnectedEH];

Assurez-vous d'adapter le code à votre mission et à votre système de sauvegarde de l'état des joueurs. J'espère que cela vous aidera !

Cordialement,
Votre développeur SQF expert

--- Pour continuer la discussion avec ChatGPT, cliquez sur "Répondre" en bas à droite de ce message. Sinon, attendez que quelqu'un vous réponde. ---
 
Hello, tu peux créer une fonction, qui sera appelé depuis ton keyHandler, lors de l'appuie de ces touches ça va vers ta fonction et dedans tu retires l'equipement du joueur et tu force une save bdd

Posté par @yurizoko via discord.
 
En fait ça ne règlerait pas vraiment le problème puisqu'il n'y a pas que Alt F4 pour fermer le jeu, tu peux aussi le faire directement dans windows ou avec le gestionnaire des tâches.

Ce serait plus efficace de le faire pour toutes les déconnexions quand le joueur est mort.
Pour ça dans ton fn_clientDisconnect.sqf (life_server) trouve cette ligne :
Code:
diag_log format["%1 disconnected while dead.",_uid];
Et ajoute en dessous :
Code:
_query = "";
_gear = "['','','','','',[],'','',[],[],[],[],[],[],['','','',''],['','','',''],[]]";
_gear = [_gear] call DB_fnc_mresArray;
switch (side _unit) do {
    case civilian: {_query = format ["UPDATE players SET civ_gear='%1' WHERE pid='%2'",_gear,_uid];};
    case west: {_query = format ["UPDATE players SET cop_gear='%1' WHERE pid='%2'",_gear,_uid];};
    case independent: {_query = format ["UPDATE players SET med_gear='%1' WHERE pid='%2'",_gear,_uid];};
    case east: {_query = format ["UPDATE players SET adac_gear='%1' WHERE pid='%2'",_gear,_uid];};
};
[_query,1] call DB_fnc_asyncCall;

Je n'ai pas testé, dis-moi ce que ça fait :)
 
Solution