Startjob problem bei meinem Jobsystem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag


    und zwar Arbeite ich gerade an einem Job System was auf mysql bassiert, damit ich nun nicht für jeden Job eine Tabble anlegen muss, habe ich nur eine angelegt wo Jobname und Position festgelegt werden, dan beim laden werden die Autos in die Variable jobcar geladen.


    So nun aber zu meinem Problem. Und zwar habe ich ein problem mit meinem /startjob befehl irgentwie will er einfach nicht so richtig. Er bringt mir nur immer das es kein Job Auto wäre.


    Hier mal mein Job System


    //Code um die Job Autos zu laden (Funktioniert)
    stock load_jobcars()
    {
    new query[128],data[25],count[11],i = 0;
    format(count,sizeof(count),"%i",MAX_JOB_CARS);
    format(query,sizeof(query),"SELECT `job`,`modelid`,`jobcar_posx`,`jobcar_posy`,`jobcar_posz`,`jobcar_posa` FROM `job_cars` LIMIT %s",count);
    mysql_query(query);
    mysql_store_result();

    while(mysql_fetch_row_format(data, "|")) {
    i++;
    sscanf(data, "p<|>s[80]iffff", JobCarInfo[i][job],JobCarInfo[i][ModelId],JobCarInfo[i][jobcar_posx],JobCarInfo[i][jobcar_posy],JobCarInfo[i][jobcar_posz],JobCarInfo[i][jobcar_posa]);
    jobcar[i] = CreateVehicle( JobCarInfo[i][ModelId],JobCarInfo[i][jobcar_posx],JobCarInfo[i][jobcar_posy],JobCarInfo[i][jobcar_posz],JobCarInfo[i][jobcar_posa],1,1,-1);
    }
    mysql_free_result();
    return 1;
    }


    //Code für dir abfrage ob es Job Auto ist (
    Funktioniert
    )
    stock isJobCar(carid)
    {
    for(new i = i; i <= MAX_JOB_CARS; i++) {
    if(carid == jobcar[i]) {
    return 1;
    }
    }
    return 0;
    }


    //Code für die abfrage ob Player den Job hat ( Funktioniert da sonst der Text beim einsteiigen nicht kommen würde)

    SQL
    stock isPlayerJob(playerid,jobs[]) {	if(IsPlayerConnected(playerid)) {		if(!strcmp(PlayerInfo[playerid][pjob],jobs,true)) return 1;			}	return 0;}


    //Code beim einsteigen des Autos ( Funktioniert )
    for(new i = 0; i <= MAX_JOB_CARS; i++) {
    if(vehicleid == jobcar[i]) {
    new carjob[80];
    format(carjob,sizeof(carjob),"%s",JobCarInfo[i][job]);
    if(isPlayerJob(playerid,carjob)) {
    SendClientMessage(playerid,Color_Info,"/startjob");
    } else {
    new string[128];
    format(string,sizeof(string),"Du bist kein %s",JobCarInfo[i][job]);
    SendClientMessage(playerid,Color_Error,string);

    }
    }
    }


    //Startjob befehl ( Funktioniert nicht kommt nur Ist kein Job Auto)
    ocmd:startjob(playerid,params[])
    {
    if(IsPlayerConnected(playerid)) {
    if(IsPlayerInAnyVehicle(playerid)) {
    new veh;
    veh = GetPlayerVehicleID(playerid);
    if(isJobCar(veh)) {
    new carjobname[80],error[80];
    format(carjobname,sizeof(carjobname),"%s",JobCarInfo[veh][job]);
    if(isPlayerJob(playerid,carjobname)) {
    SendClientMessage(playerid,Color_Info,"Fahre nun die Checkpunkte ab.");
    } else {
    format(error,sizeof(error),"Das ist kein %s",JobCarInfo[veh][job]);
    SendClientMessage(playerid,Color_Error,error);
    }
    } else {
    SendClientMessage(playerid,Color_Error,"Das ist kein Job Auto");
    }
    }
    }
    return 0;


    So hoffe hab jetzt nichts ausgelassen doch soweit funktioniert das Job System ja, nur der Startjob macht probleme.
    Habe auch schon nut printf geprüft ob die carid stimmt und muss sagen sie stimmen überein.

    Hoffe ihr könnt mir weiterhelfen, werde es natürlich trotzdem weiter versuchen selbst zu lösen :).

  • Bevor ich jetzt den weiteren Code auf Fehler überprüfe, versuche doch erst einmal die isJobCar-Funktion auszubessern. So wie ich sie momentan sehe, kann sie überhaupt nicht funktionieren.
    Du weist in deiner isJobCar-Funktion der Variable i den Wert i zu. Du kannst schon einer nicht initialisierten Variable ihren eigenen Wert zuweisen, doch bringen wird dir das nichts. Ich denke du wolltest die Variable mit = 0 initialisieren.
    Ändere den Codeteil und sag dann ob es immer noch nicht funktioniert.