GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: moulin59430 le 17 Novembre 2012, 16:49:53

Titre: Problème SQL
Posté par: moulin59430 le 17 Novembre 2012, 16:49:53
Bonjour

J'ai un problème avec le SQL , de mon GameMode , Donc j'éxplique , Je met la ligne
   
        print("[SERVEUR] Chargement des maisons..");
    LoadSQLProperty();
Et IG , Les Maisons ne chargent pas , pourtant j'ai fais pareille pour les BIZ , Et sa fonctionne ! Merci de votre aides !
Titre: Re : Problème SQL
Posté par: Malak le 18 Novembre 2012, 11:37:35
Peut tu nous montrer ton public Load et ton public Save s'il te plait et sur pastebin de préférence :D
Sinon il nous ait impossible de t'aider comme sa.
Titre: Re : Problème SQL
Posté par: Ssk le 18 Novembre 2012, 12:25:09
Est-ce que les maisons sont enregistrées dans ta base de données ?
Titre: Re : Problème SQL
Posté par: moulin59430 le 18 Novembre 2012, 16:41:07
Béh en faîte j'ai fais une commands /Recharger pour que sa recharge chaque truc de la DB , Et les maison fonctionne quand je passe comme sa , Si non au démarrage , ils veulent pas se mettre.
Titre: Re : Problème SQL
Posté par: moulin59430 le 18 Novembre 2012, 18:11:19
Alors public OnGameModeInit()
{
   MySQLConnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB);

    print("[SERVEUR] Chargement des véhicules..");
   LoadSQLCars();
   print("[SERVEUR] Chargement des bizz..");
    LoadSQLBizz();
   print("[SERVEUR] Chargement des maisons..");
    LoadSQLProperty();
    print("[SERVEUR] Chargement des chambres d'hôtels..");
    LoadSQLChambre();
    print("[SERVEUR] Chargement des localisations GPS..");emer
    LoadSQLGPS();
    print("[SERVEUR] Chargement des stations..");
    LoadSQLStation();
   print("[SERVEUR] Chargement des timers..");
    startTimers();

Et La Commands recharger :

         if(strcmp(subcmd, "house", true) == 0)
            {
             LoadSQLProperty();
             format(string,sizeof(string), "[Admin] %d maison chargées et reloadées.",totalhouses);
             SendClientMessage(playerid, COLOR_ADMIN,string);
             return 1;
         }
         if(strcmp(subcmd, "biz", true) == 0)
            {
             LoadSQLBizz();
             format(string,sizeof(string), "[Admin] %d biz chargés et reloadés.",totalbizz);
             SendClientMessage(playerid, COLOR_ADMIN,string);
             return 1;
         }
Titre: Re : Problème SQL
Posté par: GtaManiac le 18 Novembre 2012, 18:32:50
Ça fait mal aux yeux ...

http://www.gtaonline.fr/forums/index.php/topic,12060.msg271925.html#msg271925 (http://www.gtaonline.fr/forums/index.php/topic,12060.msg271925.html#msg271925)
Titre: Re : Re : Problème SQL
Posté par: moulin59430 le 18 Novembre 2012, 18:43:13
Ça fait mal aux yeux ...

http://www.gtaonline.fr/forums/index.php/topic,12060.msg271925.html#msg271925 (http://www.gtaonline.fr/forums/index.php/topic,12060.msg271925.html#msg271925)

On est pas là pour sa.
Titre: Re : Problème SQL
Posté par: Xolokos le 18 Novembre 2012, 18:54:06
Fait un SetTimer() pour l'envoyer dans la callback/fonction associée.
Titre: Re : Re : Re : Problème SQL
Posté par: Ssk le 18 Novembre 2012, 19:16:47
Ça fait mal aux yeux ...

http://www.gtaonline.fr/forums/index.php/topic,12060.msg271925.html#msg271925 (http://www.gtaonline.fr/forums/index.php/topic,12060.msg271925.html#msg271925)

On est pas là pour sa.
Un admin est venu te rappeler à l'ordre et toi tu réponds comme ça ? Déjà que tu as été averti je te déconseille de faire le malin ;)


Sinon, est ce que ton serveur est connecté à la base de connecté quand tu appelles pour la première fois ta fonction ?

Titre: Re : Problème SQL
Posté par: Malak le 18 Novembre 2012, 23:55:18
Du grand n'importe quoi la...

Montre nous les requêtes SQL met des vérifications pour vérifier si ta toujour une connections SQL.
utilise mysql_ping() en condition.

Je veut pas voir ta commande /recharger je veut voir ton public LoadSQLProperty();
et aussi ta table qui correspond à tes maisons. Sinon il est pas possible de t'aider.
Titre: Re : Problème SQL
Posté par: Ssk le 19 Novembre 2012, 10:15:42
Normalement si sa commande /recharger fonctionne il ne devrait pas y avoir de problème concernant les requêtes que fait sa fonction, pour l'instant le seul problème que j'envisage serai que le serveur n'est pas connecté à sa BDD au lancement du gamemode.
Titre: Re : Problème SQL
Posté par: cristab le 19 Novembre 2012, 13:27:36
personellement ici

Code: (pawn) [Sélectionner]
print("[SERVEUR] Chargement des véhicules..");
   LoadSQLCars();
   print("[SERVEUR] Chargement des bizz..");
    LoadSQLBizz();
   print("[SERVEUR] Chargement des maisons..");
    LoadSQLProperty();
    print("[SERVEUR] Chargement des chambres d'hôtels..");
    LoadSQLChambre();
    print("[SERVEUR] Chargement des localisations GPS..");emer
    LoadSQLGPS();
    print("[SERVEUR] Chargement des stations..");
    LoadSQLStation();
   print("[SERVEUR] Chargement des timers..");
    startTimers();

j'aurais mis quelque sleep() car si il y a pas mal de voiture et de biz a charger sa ne m'ettonerais meme pas que les maisons n'ont pas le temps d'être charger.
Titre: Re : Problème SQL
Posté par: Malak le 19 Novembre 2012, 18:19:52
Oui un script assez lourd et je privilègerai de le mettre en fin ongamemodeinit histoire d’empêcher le joueur de lagger quand tu utilise cette commande (à mon avis ton serveur ne répondra pas pendant au minimum 30 seconde avec cette commande).

met aussi un printf("Id maison : %d crée",idmaison); pour vérifier dans un premier si t'a boucle charge bien les maison et enfin je mettrai aussi un entre ton format(query,.... et mysql_query(query) un printf("%s",query); voir si ta requête s’exécute correctement ou tout simplement mysql_debug(1);

Bon courage.  :)
Titre: Re : Problème SQL
Posté par: cristab le 19 Novembre 2012, 20:31:47
sa requête est ok comme la commande fonctionne
Titre: Re : Re : Problème SQL
Posté par: S!m le 19 Novembre 2012, 22:06:57
Salut,

Oui un script assez lourd et je privilègerai de le mettre en fin ongamemodeinit histoire d’empêcher le joueur de lagger quand tu utilise cette commande

Désolé, mais la position du code dans la callback OnGameModeInit ne changera pas le temps de rechargement depuis la base de donnée.

Ajouter du temps d'attente dans la callback OnGameModeInit ne changera pas grand chose si ce n'est soulager un peu le serveur SQL, de toute façon ce chargement intense se produit avant que le serveur n’accueille des joueurs...

++Sim++
Titre: Re : Problème SQL
Posté par: Malak le 19 Novembre 2012, 23:46:27
Le problème avec une commande de type /charger
C'est qu'il peut y avoir déjà dès joueurs connecter.

De plus le mettre en fin ongamemodeinit permet au script objet et autre d'être charger dans un premier temps.
Une multitude de requête SQL de ce type fait limite couper la connections voir crasher le serveur si la BD est lourde donc autant s'assurer du bon déroulement du lancement du serveur à mon imble avis.  :biggrin:

++
Titre: Re : Problème SQL
Posté par: Katou76 le 20 Novembre 2012, 17:30:36
Comme la dit Sim,

Que tu mette ton SQL en début ou fin de script ne changera rien au chargement des données, il se charge au lancement du serveur et non à la connexion...
Titre: Re : Problème SQL
Posté par: moulin59430 le 20 Novembre 2012, 20:06:42
Merci à tous ! J'ai résolu et sur tout aux Admins , Je n'avais pas compris le sens de la phrase j'ai crus que tu critiquer mon écriture ... Désolé !