Tag Mismatch Warnings

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
  • Hei habe diese Tag mismatch warning. Es geht halt hauptsächlich um mein Autohaus System. Ich hoffe ihr könnt mir helfen...


    Warning:



    Die CodeSchnipsel:



    public OnPlayerDisconnect(playerid, reason)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]==0)continue;
    if(cInfo[i][besitzer]!=PlayerInfo[playerid][db_id])continue; //warning
    DestroyVehicle(cInfo[i][id_x]);
    cInfo[i][id_x]=0;
    }
    savePlayer(playerid);
    getPlayerLogged(playerid) = 0;
    return 1;
    }



    Bei OnDialogResponse:



    case DIALOG_AUTOHAUS:
    {
    if(response)
    {
    //Autoverkauf notiz
    new id=GetPVarInt(playerid,"buyCarID"),query[265];
    if(getPlayerMoney(playerid)<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,Weis,"Info: {B90000}Du besitzt nicht genügend Geld umd dieses Fahrzeug zu kaufen.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    givePlayerMoney(playerid,-ahCars[id][c_preis]);
    new i = createPlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r]);
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r,name,tank) VALUES ('%s','%i','%f','%f','%f','%f','%s','%f')",cInfo[i][besitzer],cInfo[i][model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_name],cInfo[i][ci_tank]); //warning
    mysql_pquery(dbhandle,query,"carSavedToDB","i",i);
    SendClientMessage(playerid,Weis,"Du hast das Fahrzeug erfolgreich gekauft.");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Weis,"Info: {B90000}Du hast den Kauf abgebrochen.");
    }
    return 1;
    }



    Parken BEfehl (er erkennt keinen besitzer zum Auto und kann es net parken)..



    ocmd:parken(playerid,params[])
    {
    new Float:x,Float:y,Float:z,Float:r;
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Rot,"Du musst in deinem fahrzeug sitzen um es zu Parken");//abfrage ob er im wagen sitzt
    new vehid=GetPlayerVehicleID(playerid);
    new i;
    for(i = 0; i < sizeof(cInfo); i++) if(cInfo[i][id_x] == vehid) break;
    if(i == sizeof(cInfo)) return SendClientMessage(playerid, Rot, "Dieses Fahrzeug kann man nicht Parken");
    printf("Das Fahrzeug gehört der ID: %d, ich bin die ID: %d", cInfo[i][besitzer], PlayerInfo[playerid][db_id]); //warning 2340
    if(cInfo[i][besitzer]!=PlayerInfo[playerid][db_id])return SendClientMessage(playerid,Rot,"Dieser Wagen gehört nicht dir");//abfrage ob er der besitzer ist
    GetVehiclePos(vehid,x,y,z);
    GetVehicleZAngle(vehid,r);
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    new query[128];
    format(query,sizeof(query),"UPDATE autos SET besitzer='%s',x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",GetName(playerid),cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][db_id]);
    mysql_pquery(dbhandle,query,"","");
    SendClientMessage(playerid,0xF3CA00FF,"Du dein Fahrzeug hier geparkt");
    return 1;
    }


    2 Mal editiert, zuletzt von DerHazeing ()

  • Du scheinst die Variable "cInfo[i][besitzer]" mal als String und mal als Integer verwenden zu wollen. Wenn du den Namen des Besitzers speichern möchtest, muss die Variable als String genutzt werden.
    Dann funktioniert die Abfrage, ob zwei Strings gleich oder ungleich sind, jedoch nicht mit "!=" sondern mit der Funktion "strcmp".
    Bei deinen formats und prints musst du dann als Platzhalter auch überall "%s" angeben.



    Wenn du die Position bzw. Angle eines Spielers oder Fahrzeugs setzen möchtest, muss die Variable vom Typ Float sein. Deine Variablen "x", "y", "z" und "r" sind jedoch vom Typ Integer.
    So erstellst du die Variablen richtig:


    Code
    new Float:x, Float:y, Float:z, Float:r;





    Gruß
    DrMurphy