yoyo3071a
13/01/2010, 04:15 PM
salut donc j'ai tout refais en mysql le /register marche niquel, le systeme qui verifie si le compte existe mais encore bug dans le login voila ce que j'ai fais
new tmp2[256];
new string2[256];
new playername2[MAX_PLAYER_NAME];
new query[256],str[256],line[1024];
new playernamesplit[3][MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
split(playername2, playernamesplit, '_');
format(query, sizeof(query), "SELECT * FROM `players` WHERE `Name` = \'%s\'", playername2);
samp_mysql_query(query);
samp_mysql_store_result();
samp_mysql_fetch_row(line);
samp_mysql_get_field("Password", str); strmid(PlayerInfo[playerid][pKey], str, 0, strlen(str)-1, 255);
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
samp_mysql_get_field("Level", str); PlayerInfo[playerid][pLevel] = strval(str);
samp_mysql_get_field("AdminLevel", str); PlayerInfo[playerid][pAdmin] = strval(str);
samp_mysql_get_field("DonateRank", str); PlayerInfo[playerid][pDonateRank] = strval(str);
samp_mysql_get_field("UpgradePoints", str); PlayerInfo[playerid][gPupgrade] = strval(str);
samp_mysql_get_field("ConnectedTime", str); PlayerInfo[playerid][pConnectTime] = strval(str);
samp_mysql_get_field("Registered", str); PlayerInfo[playerid][pReg] = strval(str);
samp_mysql_get_field("Sex", str); PlayerInfo[playerid][pSex] = strval(str);
samp_mysql_get_field("Age", str); PlayerInfo[playerid][pAge] = strval(str);
samp_mysql_get_field("Origin", str); PlayerInfo[playerid][pOrigin] = strval(str);
samp_mysql_get_field("CK", str); PlayerInfo[playerid][pCK] = strval(str);
samp_mysql_get_field("Muted", str); PlayerInfo[playerid][pMuted] = strval(str);
samp_mysql_get_field("Respect", str); PlayerInfo[playerid][pExp] = strval(str);
samp_mysql_get_field("Money", str); PlayerInfo[playerid][pCash] = strval(str);
samp_mysql_get_field("Bank", str); PlayerInfo[playerid][pAccount] = strval(str);
samp_mysql_get_field("Crimes", str); PlayerInfo[playerid][pCrimes] = strval(str);
samp_mysql_get_field("Kills", str); PlayerInfo[playerid][pKills] = strval(str);
samp_mysql_get_field("Deaths", str); PlayerInfo[playerid][pDeaths] = strval(str);
samp_mysql_get_field("Arrested", str); PlayerInfo[playerid][pArrested] = strval(str);
samp_mysql_get_field("WantedDeaths", str); PlayerInfo[playerid][pWantedDeaths] = strval(str);
samp_mysql_get_field("Phonebook", str); PlayerInfo[playerid][pPhoneBook] = strval(str);
samp_mysql_get_field("LottoNr", str); PlayerInfo[playerid][pLottoNr] = strval(str);
samp_mysql_get_field("Fishes", str); PlayerInfo[playerid][pFishes] = strval(str);
samp_mysql_get_field("BiggestFish", str); PlayerInfo[playerid][pBiggestFish] = strval(str);
samp_mysql_get_field("Job", str); PlayerInfo[playerid][pJob] = strval(str);
samp_mysql_get_field("Paycheck", str); PlayerInfo[playerid][pPayCheck] = strval(str);
samp_mysql_get_field("HeadValue", str); PlayerInfo[playerid][pHeadValue] = strval(str);
samp_mysql_get_field("Jailed", str); PlayerInfo[playerid][pJailed] = strval(str);
samp_mysql_get_field("JailTime", str); PlayerInfo[playerid][pJailTime] = strval(str);
samp_mysql_get_field("Materials", str); PlayerInfo[playerid][pMats] = strval(str);
samp_mysql_get_field("Drugs", str); PlayerInfo[playerid][pDrugs] = strval(str);
samp_mysql_get_field("Leader", str); PlayerInfo[playerid][pLeader] = strval(str);
samp_mysql_get_field("Member", str); PlayerInfo[playerid][pMember] = strval(str);
samp_mysql_get_field("FMember", str); PlayerInfo[playerid][pFMember] = strval(str);
samp_mysql_get_field("Rank", str); PlayerInfo[playerid][pRank] = strval(str);
samp_mysql_get_field("Char", str); PlayerInfo[playerid][pChar] = strval(str);
samp_mysql_get_field("ContractTime", str); PlayerInfo[playerid][pContractTime] = strval(str);
samp_mysql_get_field("DetSkill", str); PlayerInfo[playerid][pDetSkill] = strval(str);
samp_mysql_get_field("SexSkill", str); PlayerInfo[playerid][pSexSkill] = strval(str);
samp_mysql_get_field("BoxSkill", str); PlayerInfo[playerid][pBoxSkill] = strval(str);
samp_mysql_get_field("LawSkill", str); PlayerInfo[playerid][pLawSkill] = strval(str);
samp_mysql_get_field("MechSkill", str); PlayerInfo[playerid][pMechSkill] = strval(str);
samp_mysql_get_field("JackSkill", str); PlayerInfo[playerid][pJackSkill] = strval(str);
samp_mysql_get_field("CarSkill", str); PlayerInfo[playerid][pCarSkill] = strval(str);
samp_mysql_get_field("NewsSkill", str); PlayerInfo[playerid][pNewsSkill] = strval(str);
samp_mysql_get_field("DrugsSkill", str); PlayerInfo[playerid][pDrugsSkill] = strval(str);
samp_mysql_get_field("CookSkill", str); PlayerInfo[playerid][pCookSkill] = strval(str);
samp_mysql_get_field("FishSkill", str); PlayerInfo[playerid][pFishSkill] = strval(str);
samp_mysql_get_field("pSHealth", str); PlayerInfo[playerid][pSHealth] = strval(str);
samp_mysql_get_field("pHealth", str); PlayerInfo[playerid][pHealth] = strval(str);
samp_mysql_get_field("Int", str); PlayerInfo[playerid][pInt] = strval(str);
samp_mysql_get_field("Local", str); PlayerInfo[playerid][pLocal] = strval(str);
samp_mysql_get_field("Team", str); PlayerInfo[playerid][pTeam] = strval(str);
samp_mysql_get_field("Model", str); PlayerInfo[playerid][pModel] = strval(str);
samp_mysql_get_field("PhoneNr", str); PlayerInfo[playerid][pPnumber] = strval(str);
samp_mysql_get_field("House", str); PlayerInfo[playerid][pPhousekey] = strval(str);
samp_mysql_get_field("Car", str); PlayerInfo[playerid][pPcarkey] = strval(str);
samp_mysql_get_field("Bizz", str); PlayerInfo[playerid][pPbiskey] = strval(str);
samp_mysql_get_field("Pos_x", str); PlayerInfo[playerid][pPos_x] = strval(str);
samp_mysql_get_field("Pos_y", str); PlayerInfo[playerid][pPos_y] = strval(str);
samp_mysql_get_field("Pos_z", str); PlayerInfo[playerid][pPos_z] = strval(str);
samp_mysql_get_field("CarLic", str); PlayerInfo[playerid][pCarLic] = strval(str);
samp_mysql_get_field("FlyLic", str); PlayerInfo[playerid][pFlyLic] = strval(str);
samp_mysql_get_field("BoatLic", str); PlayerInfo[playerid][pBoatLic] = strval(str);
samp_mysql_get_field("GunLic", str); PlayerInfo[playerid][pGunLic] = strval(str);
samp_mysql_get_field("Gun1", str); PlayerInfo[playerid][pGun1] = strval(str);
samp_mysql_get_field("Gun2", str); PlayerInfo[playerid][pGun2] = strval(str);
samp_mysql_get_field("Gun3", str); PlayerInfo[playerid][pGun3] = strval(str);
samp_mysql_get_field("Gun4", str); PlayerInfo[playerid][pGun4] = strval(str);
samp_mysql_get_field("Ammo1", str); PlayerInfo[playerid][pAmmo1] = strval(str);
samp_mysql_get_field("Ammo2", str); PlayerInfo[playerid][pAmmo2] = strval(str);
samp_mysql_get_field("Ammo3", str); PlayerInfo[playerid][pAmmo3] = strval(str);
samp_mysql_get_field("Ammo4", str); PlayerInfo[playerid][pAmmo4] = strval(str);
samp_mysql_get_field("CarTime", str); PlayerInfo[playerid][pCarTime] = strval(str);
samp_mysql_get_field("PayDay", str); PlayerInfo[playerid][pPayDay] = strval(str);
samp_mysql_get_field("PayDayHad", str); PlayerInfo[playerid][pPayDayHad] = strval(str);
samp_mysql_get_field("Watch", str); PlayerInfo[playerid][pWatch] = strval(str);
samp_mysql_get_field("Crashed", str); PlayerInfo[playerid][pCrashed] = strval(str);
samp_mysql_get_field("Wins", str); PlayerInfo[playerid][pWins] = strval(str);
samp_mysql_get_field("Loses", str); PlayerInfo[playerid][pLoses] = strval(str);
samp_mysql_get_field("AlcoholPerk", str); PlayerInfo[playerid][pAlcoholPerk] = strval(str);
samp_mysql_get_field("DrugPerk", str); PlayerInfo[playerid][pDrugPerk] = strval(str);
samp_mysql_get_field("MiserPerk", str); PlayerInfo[playerid][pMiserPerk] = strval(str);
samp_mysql_get_field("PainPerk", str); PlayerInfo[playerid][pPainPerk] = strval(str);
samp_mysql_get_field("TraderPerk", str); PlayerInfo[playerid][pTraderPerk] = strval(str);
samp_mysql_get_field("Tutorial", str); PlayerInfo[playerid][pTut] = strval(str);
samp_mysql_get_field("Mission", str); PlayerInfo[playerid][pMissionNr] = strval(str);
samp_mysql_get_field("Warnings", str); PlayerInfo[playerid][pWarns] = strval(str);
samp_mysql_get_field("VirWorld", str); PlayerInfo[playerid][pVirWorld] = strval(str);
samp_mysql_get_field("Fuel", str); PlayerInfo[playerid][pFuel] = strval(str);
samp_mysql_get_field("Married", str); PlayerInfo[playerid][pMarried] = strval(str);
samp_mysql_get_field("MarriedTo", str); strmid(PlayerInfo[playerid][pMarriedTo], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("FishTool", str); PlayerInfo[playerid][pFishTool] = strval(str);
samp_mysql_get_field("Note1", str); strmid(PlayerInfo[playerid][pNote1], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note1s", str); PlayerInfo[playerid][pNote1s] = strval(str);
samp_mysql_get_field("Note2", str); strmid(PlayerInfo[playerid][pNote2], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note2s", str); PlayerInfo[playerid][pNote2s] = strval(str);
samp_mysql_get_field("Note3", str); strmid(PlayerInfo[playerid][pNote3], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note3s", str); PlayerInfo[playerid][pNote3s] = strval(str);
samp_mysql_get_field("Note4", str); strmid(PlayerInfo[playerid][pNote4], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note4s", str); PlayerInfo[playerid][pNote4s] = strval(str);
samp_mysql_get_field("Note5", str); strmid(PlayerInfo[playerid][pNote5], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note5s", str); PlayerInfo[playerid][pNote5s] = strval(str);
samp_mysql_get_field("InvWeapon", str); PlayerInfo[playerid][pInvWeapon] = strval(str);
samp_mysql_get_field("InvAmmo", str); PlayerInfo[playerid][pInvAmmo] = strval(str);
samp_mysql_get_field("Lighter", str); PlayerInfo[playerid][pLighter] = strval(str);
samp_mysql_get_field("Cigarettes", str); PlayerInfo[playerid][pCigarettes] = strval(str);
samp_mysql_get_field("Locked", str); PlayerInfo[playerid][pLocked] = strval(str);
samp_mysql_get_field("Radio", str); PlayerInfo[playerid][pRadio] = strval(str);
samp_mysql_get_field("CarLicPoint", str); PlayerInfo[playerid][pCarLicPoint] = strval(str);
samp_mysql_get_field("Taille", str); PlayerInfo[playerid][pTaille] = strval(str);
samp_mysql_get_field("Poids", str); PlayerInfo[playerid][pPoids] = strval(str);
samp_mysql_get_field("TeamKill", str); PlayerInfo[playerid][pTeamKill] = strval(str);
samp_mysql_get_field("Frequence", str); PlayerInfo[playerid][pFrequence] = strval(str);
samp_mysql_get_field("Bourse", str); PlayerInfo[playerid][pBourse] = strval(str);
samp_mysql_get_field("Mask", str); PlayerInfo[playerid][pMask] = strval(str);
}
else
{
new loginstring[256];
new loginname[256];
GetPlayerName(playerid,loginname,sizeof(loginname) );
format(loginstring,sizeof(loginstring),"Erreur de mot de passe",loginname);
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT ,"Compte",loginstring,"Connection","Quitter");
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 4) { Ban(playerid); }
return 1;
}
minimicro
17/01/2010, 08:40 AM
nan comme j'ai dit le sql + Pawn = caca ce n'est prevut pour
J'ai aussi passé mon GM en MySQL, mais alors, vraiment tout, je n'ai plus qu'un seul fichier dans les scriptfiles : le log Sql quand j'ai un soucis.
Ben, c'est vraiment super stable, il faut juste faire attention au OnPlayerUpdate, qui souvent enregistre les infos du joueurs plusieurs fois à la seconde et qui peut poser un soucis de nombre de requete (étant donné que j'ai separé la sauvegarde d'un joueur en 4 requetes). J'avais aussi fait une connerie dans un timer, qui lancais une requete par seconde et par maison, 200 requetes/secondes, et oui, en regardant mes graphes mémoire, j'ai eu une petite surprise ^^ Mais aprés quelques modifications (tant dans le script que sur le serveur sql), je ne depasse plus les 130 Mo de mémoire utilisée !! (Apache compris)
Par contre, le quel plugin est de meilleure qualité ? J'en ai testé un (le samp mysql 0.15)
minimicro
08/02/2010, 10:32 AM
En 0.2 oui ça marchait impec, mais en 0.3 crash au /login
SQL & SAMP EN RC3 ça plante graave!
... Faut arrêter de dire que ca plante, pour attaquer le MySQL, faut mettre le Pawn de coté, et comprendre d'abord ce qu'est le langage Sql, il existe de trés bons tutos sur Internet, le Php peut aussi aider, pour faire des tests de requêtes par exemple.
J'ai (et je ne suis pas le seul), fait un serveur RP, complètement en MySQL (une 30aine de tables, aucun scriptfiles, excepté les logs SQL), et je n'ai aucun soucis, alors certes, il faut un hébergeur qui l'accepte (je suis sur un serveur dédié), ca prend du temps (j'ai décidé, de repartir de 0, le MySQL étant vraiment sensible aux erreurs qui peuvent exister dans les GF et autres EDIT), ca peut causer quelques erreurs (dépassement mémoire et/ou surconsommation de ressources) si ce n'est pas contrôlé correctement, mais franchement au final, c'est vraiment beaucoup MIEUX que des fichiers, et sous réserve que les Index soit bien construits, c'est beaucoup plus rapide que se balader dans des fichiers textes.
vBulletin® v3.8.6, Copyright ©2000-2013, Jelsoft Enterprises Ltd.