GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Dark_revan le 24 Novembre 2008, 20:45:03

Titre: Mon systeme de vehicule
Posté par: Dark_revan le 24 Novembre 2008, 20:45:03
Alors voila j'ai un problème pour mon systeme de voiture que j'ai fait.
je ne trouve pas pourquoi sa fait se problème l'erreur vient de sa:

    else if(strcmp(x_job,"vehicule",true) == 0)
{
  if(VehiculeOffer[playerid] < 999)
    {
        if(IsPlayerConnected(VehiculeOffer[playerid]))
        {
            if (ProxDetectorS(5.0, playerid, VehiculeOffer[playerid]))
{
    GetPlayerName(VehiculeOffer[playerid], giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Vous avez payé le vehicule %d de materiel à %s.", VehiculeMats[playerid], giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* %s vous a payer le vehicule, %d de materiel.", sendername, VehiculeMats[playerid]);
SendClientMessage(TicketOffer[playerid], COLOR_LIGHTBLUE, string);
CarInfo[GetPlayerVehicleID(playerid)][vCles] = CarInfo[GetPlayerVehicleID(VehiculeOffer[playerid])][vCles];
CarInfo[GetPlayerVehicleID(VehiculeOffer[playerid])][vCles] = 0;
VehiculeOffer[playerid] = 999;
VehiculeMats[playerid] = 0;
OnPlayerUpdate(playerid);
return 1;
}
else
{
    SendClientMessage(playerid, COLOR_GREY, " Vous n'etes pas pres de la personne !");
    return 1;
}
        }
}
else
{
    SendClientMessage(playerid, COLOR_GREY, "   Personne ne vous a proposer sont vehicule !");
    return 1;
}
}

Plus précisément: CarInfo[GetPlayerVehicleID(playerid)][vCles] = CarInfo[GetPlayerVehicleID(VehiculeOffer[playerid])][vCles];
explication: normalement la valeur du joueur qui tape /accepter doit changer en la valeur du player qui a proposer le véhicule.

J'espère que vous pourriez m'aider merci :)

EDIT: C'est assez urgent car je doit vite finir mon mode.Et la j'avoue que je ne trouve rien.
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 25 Novembre 2008, 19:44:37
Desoler de up mais ses assez urgent car je doit le finir ce systeme et la en plus j'ai encore decouvert des autres bug comme ma variable dans le compte vcar qui ne se load pas :(.
Titre: Re : Mon systeme de vehicule
Posté par: S!m le 27 Novembre 2008, 01:42:14
Salut,

ne pourrais tu pas expliquer ce qu'il se passe au juste??

rien?? le véhicule reste à la personne qui le vend etc...

sinon je crois que ceci n'est pas bon:

GetPlayerVehicleID(VehiculeOffer[playerid])
si VehiculeOffer[playerid] représente le ID de la personne qui offre, c'est ok, s'il s'agit d'un véhicule, il te faudrait enlever le GetPlayerVehicleID()

++Sim++
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 27 Novembre 2008, 19:15:34
oui mais enfaite j'ai trouver le probleme car mon vehciule.ini ne se load pas donc je vous le publit pour me dire ce qui cloche.


Citer
forward Savevehicule();
public Savevehicule()
{
          new filestring[256];
       new File: vfile = fopen("vehicule.ini", io_write);
       for(new vehicleid = 1;vehicleid<=12;vehicleid++)// 12 etant le nombre de vehicle sur mon serveur quand j'ai mit vlimit bien entendut sa a fait plein de fois carinfo.
        {
             format(filestring, sizeof(filestring), "Carinfo: %d ",CarInfo[vehicleid][vCar]);
                fwrite(vfile, filestring);
      }
      fclose(vfile);
}
forward Loadvehicule();
public Loadvehicule()
{
    if(fexist("vehicule")) {
        new SplitDiv[99][V_LIMIT];
      new filestring[256];
      new File: file = fopen("vehicule.ini", io_read);
      if (file) {
          for(new vehicleid = 1;vehicleid<=12;vehicleid++)
         {
            fread(file, filestring);
            split(filestring, SplitDiv, ',');
            CarInfo[vehicleid][vCar] = strval(SplitDiv[0]);
            }
        }
        fclose(file);
    }
}

Le save marche mais quand j'utilise ma variable CarInfo[V_limit][vCar]  sa ne fonctionne pas si vous serez repondez svp.

PS: pour sim je croit pas que je peut changer getplayervehicleid car ma variable c'est avec v_limit donc voila si tu sait comment faire...

En tout cas merci.
Titre: Re : Mon systeme de vehicule
Posté par: S!m le 27 Novembre 2008, 21:25:07
Salut,

après avoir regarder mon XTreme Admin, selon moi tu dois changer ton fexist

la bonne orthographe serait plutôt avec le dossier et le nom complet: fexist("/vehicles/vehicle.ini")

++Sim++
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 29 Novembre 2008, 16:38:45
Sa ne marche pas sa se load pas :(
sa m'enerve  :wall

et j'ai aussi d'autre load comme sa qui ne marche pas apres un reboot si vous savez aider moi svp.
Titre: Re : Mon systeme de vehicule
Posté par: S!m le 29 Novembre 2008, 18:37:53
Salut,

essaie de te servir de l'include dini, ses fonctions sont plus simples, explicites et sûres

++Sim++
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 29 Novembre 2008, 21:44:10
tu pourrait m'aider a l'utiliser enfin m'expliquer comment on s'en sert dans se cas la
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 06 Décembre 2008, 11:58:12
Je Up car il ya pas beaucoup de monde qui me repond.

J'ai essayer pareil qu'avec le systeme de vmenu mais rien na faire sa ne marche pas pourtant totu est bon mais il ne load pas les vehicule et fait crasher le serveur.
des que je me connect (dans le debut le personnage et cj alors que sa devrait etre un autre skin)
J'ai vraiment besoin d'aide pour le finir.
J'ai creer un setupvehicule file pour ecrire mon fichier save mais sa ne marche pas.


EDIT: Quand je met sa
#pragma tabsize 0
#pragma dynamic 145000
sa marche mais il prend Gm en FS et sa crash.
Mais il load les vehicule alors comment je pourrait faire ?
Titre: Re : Mon systeme de vehicule
Posté par: S!m le 06 Décembre 2008, 15:07:39
Salut,

difficile à dire... mais je ne me suis jamais servi du tabsize ni dynamic (qui sert à quoi déjà ??? )
en passant, (au cas où) le tabsize c'est simplement le nombre d'espace quand tu fais tab, il ne change rien à ton script, une fois compilé,

si tu doit mettre ton script en gm pour qu'il charge les véhicules, tu dois t'être servi de la mauvaise callback, OnGameModeInit() au lieu de OnFilterScriptInit()

sinon, y faudrait que tu nous montre les codes d'où le problème vient, en expliquant s'il te plait et tu peut enlever les bout dont tu es sûr et certains, si tu le désire...mais ne te sens pas forcé de le mettre,
essaie d'expliquer ton code sinon...

++Sim++
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 06 Décembre 2008, 15:52:00
Enfaite c'est qund je compile que le Gm compile comme un Fs et ne done pas les meme information enfin c'est- bizare en utilisant toujour biensur ongamemodeinit.Enfaite il me faudrait une aide par msn parse que l je pense que c'est trop compliquer a exliquer.
Si quelqun pourrait me filer son adresse msn ou autre adresse de messageroie instantanner sa pourrait m'aider grandement.
PS :Mon systeme de vehicule et obliger d'etre placer dans le Gm car j'utilise des fontion de payeronfo ect.. et que je ne pourrait pas utiliser dans un FS
Titre: Re : Mon systeme de vehicule
Posté par: S!m le 06 Décembre 2008, 16:53:08
Salut,

si tu veux prend mon msn dans mon profil,

mais pour ton problème, la seule différence entre un gm et un filterscript, c,est le dossier dans lequel il se trouve, la callback de son chargement et les AddPlayerClass et autre...

peut-être que tu as un #define FILTERSCRIPT en haut qu'il faut que tu enlève

puis des

#if defined FILTERSCRIPT
#else
#endif


++Sim++
Titre: Re : Mon systeme de vehicule
Posté par: feldbrau le 06 Décembre 2008, 17:20:14
T'a essayé de créé le fichier vehicule.ini manuellement dans le scriptfiles? Si c'est pas le cas essaye de le refaire.
Et essaye de mettre un else lors du chargement du fichier avec dedans un message pour voir si le fichier se load bien et si ca vient pas de l'interieur du fichier ;)
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 06 Décembre 2008, 18:27:25
oui au depart j'avait creer tout manellement il se savait impeccable mais un gros probleme au niveau du lod qui ne fonctionnait pas j'ai creer un public qui ecrit un fichier save a partir d'un load mais le problme sait que sa marche mais que sa fait crasher le serveur lorsque je me connecte
Titre: Re : Mon systeme de vehicule
Posté par: S!m le 06 Décembre 2008, 18:31:42
Salut,

il n,y a qu'un seul truc que je puisse te dire,
c'est que pour ta fonction,
compare la à celles de script déjà fait,
comme ça tu verra les différence et pourra mieu déterminer la source du problème, mais selon moi, un crash ne proviendra pas d'un loading du fichier qui ne fonctionne pas, mais plutôt trop bien, il charge trop de véhicules où un truc du genre...

++Sim++
Titre: Re : Mon systeme de vehicule
Posté par: feldbrau le 07 Décembre 2008, 01:11:37
Si c'est le joueur qui crash lors d'une connection, c'est que le probleme vient de la prise de donnée et non de l'ouverture, si elle s'ouvre pas le client a la caméra mais ne peut rien faire et crash lors du /login mais si tu crash avant c'est que les données chargée sont corrompu.

Au pire inspire toi du systeme de tAxI (mais je cris qu'il est plus dispo en DL le domaine est vide) qui est intégré a certain GF. Il utilise le meme systeme de load save, ca ne veut pas dire que tu copie vu que tu as essayé de le régler sans reussite, regarde comment il est foutu et essaye de trouver ton probleme ;). Perso toute les données/log/message . . . de mon GF sont enregistré sur base SQL pour créer un forum en rapport complet et en temps réel du serveur donc je n'utilise plus aucun .ini
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 07 Décembre 2008, 12:16:44
Grace a sim on  bien avancer mais il reste toujouir un probleme c'est qu'il ne reconnait pas mon vCar car j'ai creer une command /carinfo qui me dit si je suis dasn un vehicule monvcar c'est a dire 1 ou 0 et la cles pour la voiture.
La cles marche mais le vcar non il toujour a 0 alors que le load le met a 1. je sais pas d'ou vient le probleme.

PS: un petit bug quand j'ai que le fichierload pour mes voitures et quand je lance le serveur  creer le fichier save il me retire la 1ere ligne cad le vehciule id 1 donc enfaite j'ai un vehciule en moin.
Titre: Re : Mon systeme de vehicule
Posté par: S!m le 07 Décembre 2008, 14:13:37
Salut,

ça doit être un problème sur la loop qui commence à la ligne 1 au lieu de 0....

d'ailleurs, comment la fonction sait-elle qu'elle prendre??

je vais faire un test...

++Sim++
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 07 Décembre 2008, 15:54:53
Merci de m'aider serieux en plus il est finit j'ai fait mes command pour les fontion il me manque plus que ses erreurs.
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 10 Décembre 2008, 18:02:48
Peut etre que syg pourrait trouver se probleme car moi la je suis depasser serieusement.
la redaction est bonne mais il ne load pas apres reboot ma variable vcar mais il fait spawn les vehicule ses a ni rin comprendre
Titre: Re : Re : Mon systeme de vehicule
Posté par: feldbrau le 10 Décembre 2008, 19:54:14
Au pire inspire toi du systeme de tAxI (mais je cris qu'il est plus dispo en DL le domaine est vide) qui est intégré a certain GF. Il utilise le meme systeme de load save, ca ne veut pas dire que tu copie vu que tu as essayé de le régler sans reussite, regarde comment il est foutu et essaye de trouver ton probleme ;). Perso toute les données/log/message . . . de mon GF sont enregistré sur base SQL pour créer un forum en rapport complet et en temps réel du serveur donc je n'utilise plus aucun .ini

Rien a jouté pour moi ;)
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 10 Décembre 2008, 22:37:29
oui je me suis inspirer du vmenu pour le retravailler  mais aucun succes mais pourtant les coordonner,couleur,model,marche mais le carinfo non
Titre: Re : Mon systeme de vehicule
Posté par: Dark_revan le 13 Décembre 2008, 17:09:19
Desoler de re up mais le probleme n'est pas encore regler et la je sais vraiment pas quoi faire j'ai demender a sim mais on n'y arrive pas non plus.
Le problem vient de ma variable CarInfo[vehcileid][vCar] elle sert a dire si la voiture a etait acheter(1) ou sinon pas acheter(0) le probleme survient apres un relancement du serveur sa ne marche plus il load ma variable avec le print sur ma console mais pas IG sauf quand je met tout les vehicule a 1 la il me dit 1 mais aussi non 0 tout le temps meme avec 1 seule vehicule. et l'autre probleme ses que le le setup me mange un ligne.

stock Savevehicule()
{
        new filestring[256];
    new File: vfile = fopen("savevehicule.ini", io_write);
    for(new vehicleid = 1;vehicleid<=1;vehicleid++)
{
    format(filestring, sizeof(filestring), "%d,%f,%f,%f,%f,%d,%d,%d\r\n",
    CarInfo[vehicleid][modell],
    CarInfo[vehicleid][x_spawn],
        CarInfo[vehicleid][y_spawn],
      CarInfo[vehicleid][z_spawn],
    CarInfo[vehicleid][za_spawn],
    CarInfo[vehicleid][color_1],
    CarInfo[vehicleid][color_2],
CarInfo[vehicleid][vCar]
);
                fwrite(vfile, filestring);
}
fclose(vfile);
}
stock Loadvehicule()
{
    if(fexist("savevehicule.ini")) {
        new SplitDiv[99][V_LIMIT];
new filestring[256];
new File: file = fopen("savevehicule.ini", io_read);
if (file) {
new vehicleid;
while(fread(file, filestring)){
split(filestring, SplitDiv, ',');
CarInfo[vehicleid][modell] = strval(SplitDiv[0]);
if(CarInfo[vehicleid][modell] < 400 || 610 < CarInfo[vehicleid][modell]){
printf("CRITICAL ERROR: INVALID VEHICLE MODEL, CARID: %d Model: %d",vehicleid,CarInfo[vehicleid][modell]);
continue;
}
CarInfo[vehicleid][x_spawn] = floatstr(SplitDiv[1]);
CarInfo[vehicleid][y_spawn] = floatstr(SplitDiv[2]);
CarInfo[vehicleid][z_spawn] = floatstr(SplitDiv[3]);
CarInfo[vehicleid][za_spawn] = floatstr(SplitDiv[4]);
CarInfo[vehicleid][color_1] = strval(SplitDiv[5]);
CarInfo[vehicleid][color_2] = strval(SplitDiv[6]);
CarInfo[vehicleid][vCar] = strval(SplitDiv[7]);
                CreateVehicle(CarInfo[vehicleid][modell], CarInfo[vehicleid][x_spawn], CarInfo[vehicleid][y_spawn], CarInfo[vehicleid][z_spawn], CarInfo[vehicleid][za_spawn], CarInfo[vehicleid][color_1], CarInfo[vehicleid][color_2],-1);
format(filestring,sizeof(filestring),"--:: Vehicule %d placer - carinfo: modeL %d,Carinfo: %d ::--",vehicleid,CarInfo[vehicleid][modell],CarInfo[vehicleid][vCar]);
vehicleid++;
print(filestring);
}
        }
        fclose(file);
}else setupvehicule();
}

stock setupvehicule()
{
    new File:file;
    file = fopen("savevehicule.ini", io_write);
    new SplitDiv[99][V_LIMIT];
new filestring[256];
file = fopen("loadvehicule.ini", io_read);
new vehicleid;
if(file){
while(fread(file, filestring)){
split(filestring, SplitDiv, ',');
CarInfo[vehicleid][modell] = strval(SplitDiv[0]);
if(CarInfo[vehicleid][modell] < 400 || 610 < CarInfo[vehicleid][modell]){
printf("CRITICAL ERROR: INVALID VEHICLE MODEL, CARID: %d Model: %d",vehicleid,CarInfo[vehicleid][modell]);
continue;
}
CarInfo[vehicleid][x_spawn] = floatstr(SplitDiv[1]);
CarInfo[vehicleid][y_spawn] = floatstr(SplitDiv[2]);
CarInfo[vehicleid][z_spawn] = floatstr(SplitDiv[3]);
CarInfo[vehicleid][za_spawn] = floatstr(SplitDiv[4]);
CarInfo[vehicleid][color_1] = strval(SplitDiv[5]);
CarInfo[vehicleid][color_2] = strval(SplitDiv[6]);
CarInfo[vehicleid][vCar] = 0;
CreateVehicle(CarInfo[vehicleid][modell], CarInfo[vehicleid][x_spawn], CarInfo[vehicleid][y_spawn], CarInfo[vehicleid][z_spawn], CarInfo[vehicleid][za_spawn], CarInfo[vehicleid][color_1], CarInfo[vehicleid][color_2],-1);
format(filestring,sizeof(filestring),"--:: Vehicule %d ",vehicleid);
vehicleid++;
print(filestring);
}
}
fclose(file);
print(">----------------------vehicule spawn--------------------------");
Savevehicule();

}

et encore desole de vous faire c***r.
Titre: Re : Mon systeme de vehicule
Posté par: feldbrau le 15 Décembre 2008, 12:36:33
Résolut.