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
-
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 !
-
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.
-
Est-ce que les maisons sont enregistrées dans ta base de données ?
-
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.
-
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;
}
-
Ç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)
-
Ç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.
-
Fait un SetTimer() pour l'envoyer dans la callback/fonction associée.
-
Ç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 ?
-
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.
-
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.
-
personellement ici
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.
-
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. :)
-
sa requête est ok comme la commande fonctionne
-
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++
-
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:
++
-
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...
-
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é !