Français Solved Problèmes d'ajout de maison et d'alarme dans la base de données

  • Auteur de la discussion Auteur de la discussion BastienWolf
  • Date de début Date de début
29/12/19
320
45
61
1 100
25
Bonjour à tous.
Je suis actuellement sur un système d'Housing avec alarme.
J'ai ajouter dans ma table houses deux colonne en varchar : alarmename et alarmetype
Depuis, dès que j'achète une maison, elle ne s'ajoute pas en base de donnée.
Aucun problème extDB.

1673983622818.png
Coté initHousej'ai modifié pour ça :
Code:
private ["_queryResult","_query","_count","_blacklistedHouses","_blacklistedGarages"];
_count = (["SELECT COUNT(*) FROM houses WHERE owned='1'",2] call DB_fnc_asyncCall) select 0;

for [{_x=0},{_x<=_count},{_x=_x+10}] do {
    _query = format ["SELECT houses.id, houses.pid, houses.pos, players.name, houses.garage, houses.alarmename, houses.alarmetype FROM houses INNER JOIN players WHERE houses.owned='1' AND houses.pid = players.pid LIMIT %1,10",_x];
    _queryResult = [_query,2,true] call DB_fnc_asyncCall;
    if (count _queryResult isEqualTo 0) exitWith {};
    {
        _pos = call compile format ["%1",_x select 2];
        _house = nearestObject [_pos, "House"];
        _house setVariable ["house_owner",[_x select 1,_x select 3],true];
        _house setVariable ["house_id",_x select 0,true];
        _house setVariable ["locked",true,true]; //Lock up all the stuff.
        _house setVariable ["alarme",true,true];
        _house setvariable ["alarmename",_x select 5,true];
        _house setvariable ["alarmetype",_x select 6,true];
        _numOfDoors = getNumber(configFile >> "CfgVehicles" >> (typeOf _house) >> "numberOfDoors");
        for "_i" from 1 to _numOfDoors do {
            _house setVariable [format ["bis_disabled_Door_%1",_i],1,true];
        };
    } forEach _queryResult;
};

Le AddHouse.sqf, j'ai essayer en ajouter une valeur 0 en string dans mon alarmename et alarmetype mais pareil ...
 
Hello! Si tu as besoin de modifier la requête SQL qui insère une maison dans la base de données ça se passe dans le fn_addHouse.sqf

Est-ce que tu peux tester d’exécuter cette requête dans ta base de données ? La maison est bien ajoutée ?
Code:
INSERT INTO houses (pid, pos, owned) VALUES('76561198168200130', '[7288.87,7819.27,0]', '1');
 
RECTIFICATION.
Le insert dans heidiSQL fonctionne si je met l'UID d'un joueur dans ma table players sans aucun soucis.
ça me met par defaut ma valeur alarmeName et AlarmeType en Null
 
Alors,
Mon AddHouse.sqf (life_server insert) j'ai modifié l'insert pour tester , et j'avais tester avant en le laissant d'origine.

Code:
private ["_housePos","_query"];
params [
    ["_uid","",[""]],
    ["_house",objNull,[objNull]]
];
if (isNull _house || _uid isEqualTo "") exitWith {};

_housePos = getPosATL _house;

_query = format ["INSERT INTO houses (pid, pos, owned, alarmename, alarmetype) VALUES('%1', '%2', '1', '0', '0')",_uid,_housePos];
if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
    diag_log format ["Query: %1",_query];
};

[_query,1] call DB_fnc_asyncCall;

uiSleep 0.3;

_query = format ["SELECT id FROM houses WHERE pos='%1' AND pid='%2' AND owned='1'",_housePos,_uid];
_queryResult = [_query,2] call DB_fnc_asyncCall;
//systemChat format ["House ID assigned: %1",_queryResult select 0];
_house setVariable ["house_id",(_queryResult select 0),true];

Le BuyHouse est par défaut, j'ai le script propertycenter aussi.
La seul chose que j'ai réellement modifier, c'est l'initHouses.sqf pour ajouter mes vars lié au alarmename, alarmetype.
et j'ai un fichier addalarme.sqf dans le life_server, pour Update le alarmename et alarmeType (sauf que vu qu'il ne s'ajoute pas dans la bdd il servent a rien pour le moment)
Si besoin de plus d'info ou d'un partage d'ecran j'suis ouvert en MP sur discord
 
Après vérification avec un diag_log.
Le AddHouses.sqf ne s'execute pas.
Pourtant il est bien apeller dans le buyHouse du propertycenter.
 
Quand tu achètes la maison sur Property Center tu as un message de confirmation ? Ou il ne se passe rien ?
Est-ce que tu as le marqueur de la maison sur ta carte ?

Tu peux essayer d'ajouter un ou plusieurs diag_log pour voir où ça bloque :
  • En haut du fn_addHouse.sqf (life_server)
  • En haut du fn_buyHouse.sqf (@The_Programmer/addons/property_center/client)
  • Toujours dans le fn_buyHouse.sqf au dessus de cette ligne :
Code:
[(getPlayerUID player),_house] remoteExec ["TON_fnc_addHouse",2];

Oublie pas que les diag_log des fichiers côté life_server sont dans les logs serveur, et les logs côté mission/client sont dans les logs client
 
Merci.
J'avais déjà pris de l'avance.
Il se peut que mon problème vienne d'autre part.
Sur mon serveur officiel, qui tourne avec 40 joueurs, tout fonctionne niquel sur l'achat de maison (sans mon script alarme ect)

J'ai passé la mission, le life_server de mon serv officiel sur le serv dev, et quand j'achète bah rien ne se passe en BDD.
Niveau addHouse, le diag_log ne s'effectue pas.
 
Est-ce que tu peux envoyer tes logs (serveur, client, extDB) après avoir essayé d'acheter une maison en jeu ?
Le life_server est bien lancé avec le serveur dev ?

Si j'ai bien compris tu as le diag_log du fn_buyHouse mais pas celui du fn_addHouse, peut être que le remoteExec du fn_addHouse n'est pas autorisé ?