#define MAX_VOITURE 500//ici vous devez mettre le nombre de vehicule que vous aller mettre en vente
#define MAX_PLAYERS 10//ici veuillez renseigner le nombre de slot de votre serveur samp
//#define DEBUG // decommenter pour utiliser la commande /cash et /carsave
#define USEPIN//commenter pour ne pas utiliser le systeme de protection par code pin
#define USERESETCAR //commenter pour ne pas utiliser le restecar ou pas
#define USEDEMARRER//commenter pour ne pas utiliser le systeme pour demarer les voiture en appuyant sur TIRE
#define USEESSENCE//commenter pour ne pas utiliser le systeme d'essence
#define USEALARME//commenter pour ne pas utiliser le systeme d'alarme
#define USECALLCAR//commenter pour desactiver l'utilisation de la commande /callcar
comme vous le remarquer les define sont commenter donc vous ne pouvez pas faire de boulette a ce niveau la ^^.stock DINI_fcopytextfile(oldname[],newname[]) {
new File:ohnd,File:nhnd;
if (!fexist(oldname)) return false;
ohnd=fopen(oldname,io_read);
if (!ohnd) return false;
nhnd=fopen(newname,io_write);
if (!nhnd) {
fclose(ohnd);
return false;
}
new tmpres[DINI_MAX_STRING];
while (fread(ohnd,tmpres)) {
DINI_StripNewLine(tmpres);
format(tmpres,sizeof(tmpres),"%s\r\n",tmpres);
fwrite(nhnd,tmpres);
}
fclose(ohnd);
fclose(nhnd);
return true;
}
new str2[256];
new str[16];
new val1[256];
new Voit;
val1 = dini_Get(str, "Nom proprio");
Voit = GetPlayerVehicleID(playerid);
format(str, sizeof(str), "%d.ini", Voit);
format(str2,256,"%s.data",val1);
new str2[30];
new str[3]; // comme on peut allez jusque 2000 voitures donc on compte les rangs des chiffres 3-2-1-0 soit un tableau de 3.
new val1[24]; // ou MAX_PLAYER_NAME
new Voit;
val1 = dini_Get(str, "Nom proprio");
Voit = GetPlayerVehicleID(playerid);
format(str, sizeof(str), "%d.ini", Voit);
format(str2,256,"%s.data",val1);
error 047: array sizes do not match, or destination array is too small
Citer 596 |
native DB:db_open(name[]);
native db_close(DB:db);
native DBResult:db_query(DB:db,query[]);
native db_free_result(DBResult:dbresult);
native db_num_rows(DBResult:dbresult);
native db_next_row(DBResult:dbresult);
native db_num_fields(DBResult:dbresult);
native db_field_name(DBResult:dbresult, field, result[], maxlength);
native db_get_field(DBResult:dbresult, field, result[], maxlength);
native db_get_field_assoc(DBResult:dbresult, const field[], result[], maxlength);
enum
{
pass[6800],
car,
staff,
parcstaff,
sellstaff,
argent,
pfin
};
new playerinfo[MAX_PLAYERS][pfin];
if(dialogid==DiaRegistre)
{
if(response)
{
if((strlen(inputtext)>0))
{
playerinfo[playerid][pass] = inputtext;
playerinfo[playerid][car] = -1;
playerinfo[playerid][staff] = 0;
playerinfo[playerid][parcstaff] = 0;
playerinfo[playerid][sellstaff] = 0;
playerinfo[playerid][argent] = GetPlayerMoney(playerid);
SavePlayer(nom(playerid),playerid);
printf("%s %d",playerinfo[playerid][pass],playerinfo[playerid][pass]);
new string [128];
format(string,128,"%s vous posseder déjà un compte\nveuillez entrer votre mot de passe:",nom(playerid));
ShowPlayerDialog(playerid,DiaLogin,DIALOG_STYLE_INPUT,"Cristab's FS buycar ::login",string,"send","cancel");
}
}
}
playerinfo[playerid][pass] = inputtext;
format(playerinfo[playerid][pass], 20 /* suffisant non ? ^^*/, "%s", inputtext);
Je suis plus sûr mais je crois que la table du format est optionnel, à tester cette ligne : format(playerinfo[playerid][pass], 20, inputtext);
stock trim(const sSource[])
{
new
iBegin,
iEnd,
iInputLength = strlen(sSource),
sReturn[_strlib_med_string];
strcat(sReturn, sSource, _strlib_med_string);
for(iBegin = 0; iBegin < iInputLength; ++iBegin)
{
switch(sReturn[iBegin])
{
case ' ', '\t', '\r', '\n':
{
continue;
}
default:
{
break;
}
}
}
for(iEnd = (iInputLength - 1); iEnd > iBegin; --iEnd)
{
switch(sReturn[iEnd])
{
case ' ', '\t', '\r', '\n':
{
continue;
}
default:
{
break;
}
}
}
strdel(sReturn, (iEnd + 1), iInputLength);
strdel(sReturn, 0, iBegin);
return sReturn;
}
utiliser ainsi, tu t'en douteras.. trim(tavariablestring);c'est de sa que tu parle FredoCitation de: asampdb.incnative DB:db_open(name[]);
native db_close(DB:db);
native DBResult:db_query(DB:db,query[]);
native db_free_result(DBResult:dbresult);
native db_num_rows(DBResult:dbresult);
native db_next_row(DBResult:dbresult);
native db_num_fields(DBResult:dbresult);
native db_field_name(DBResult:dbresult, field, result[], maxlength);
native db_get_field(DBResult:dbresult, field, result[], maxlength);
native db_get_field_assoc(DBResult:dbresult, const field[], result[], maxlength);
je pense que tu es capable de le faire sa non
Salut,
à regarder le système avec le fichier temporaire,
je préfère lancer un avertissement :
Si le serveur n'utilise pas un système de compte qui permet de protéger les pseudos,
un joueur peut se connecter sous un pseudo utilisé et se voir attribuer le véhicule d'un autre joueur
(à première vue, si Cristab veut bien confirmer...)
++Sim++
/backup pour creer des sauveguarde des fichier voiture
/rescus pour recharger les fichier voiture avant le backup
alarme c'est deja en cours creation aussi location pas question pour le moment en ce qui concerne la suppresion il faut que je fasse plusieur test sur les ID attribuer par SAMP
#define MAX_PLAYERS 10//ici veuillez renseigner le nombre de slot de votre serveur samp
#define MAX_VOITURE 500//ici vous devez mettre le nombre de vehicule que vous aller mettre en vente
desoler mais j'ai des soucis de connection mais en meme temps je n'est pas compris ta question
if (strcmp("/liste", cmdtext, true) == 0)
{
if(IsPlayerAdmin(playerid))
{
for(new c=0; c <= MAX_VOITURE; c++)
{
if(fexist(CompteVoiture(c)))
{
new string[128],
string2[128];
new val1[256];
val1 = dini_Get(CompteVoiture(c), "Nom proprio");
format(string2, sizeof(string2), "vehicleID : %i - type : %s proprio : %s\r\n", c, CarName[GetVehicleModel(c)-400],val1);
printf("%s", string2 );
strins(string, string2, strlen(string), sizeof(string));
ShowPlayerDialog(playerid,568,DIALOG_STYLE_MSGBOX,"Liste des vehicule",string,"ok", "cancel");
printf("%s", string );
}
}
}
return 1;
}
format(string2, sizeof(string2), "vehicleID : %i - type : %s proprio : %s\r\n", c, CarName[GetVehicleModel(c) - 400], val1);
printf("%s", string2 );
printf("vehicleID : %i - type : %s proprio : %s\r\n", c, CarName[GetVehicleModel(c) - 400], val1);
Après deux copier-coller, tu n'as toujours pas repéré cette faute... "vehcicule". :PPtdr GG Gz meme pas remarquer