Problem mit /carlock

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
  • Kannst du mal explizit schreiben was nicht geht und gegebenfalls mal deinen Code debuggen.


    Mein gepostete code enthält keine Fehler bis auf den Punkt das eine Klammer ) bei der Abfrage fehlt
    und alle davor geposteten Ideen sind schwachsinn

  • Auf Grund der Fehlerbeschreibung würde ich sagen, dass dein Code zu viele Variablen benutzt. Wenn man es mit lokal deklarierten Variablen übertreibt, dann kann es zu genau so einem Fehler kommen.


    Klammere mal einen Teil deines Codes aus, in dem du Variablen deklariert hast und teste es dann nochmal (natürlich den Code in dem du diese benutzt auch).


    Alternativ könntest du auch, um die Funktionalität des Codes zu testen, anstatt Pos[3] PVars verwenden. Macht zwar generell wenig Sinn, aber zum testen tut's das allemal.


  • Klammere mal einen Teil deines Codes aus, in dem du Variablen deklariert hast und teste es dann nochmal (natürlich den Code in dem du diese benutzt auch).

    So, ich habe ganz kurz Zeit gefunden .. da ich gestern seit kurzem bei meiner Oma übernachte und dort eigentlich kein Internet habe.
    Also, ich hab schnell alles getestet und ich habe mit dem Code, was ich JETZT habe geht /carlock aber nur im Car!
    Jeffry: ich versteh das grade so nicht ..


    Hier, der aktuelle Code:

    CMD:carlock(playerid,params[]){
    new Float:Pos[3],veh = GetPlayerVehicleID(playerid),id = getSlotID(veh);
    if(strcmp(PlayerName(playerid),sCarInfo[id][sName]) != 0) return SendClientMessage(playerid,-1,"Dieses Fahrzeug gehört nicht dir.");
    if(id == -1)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug!");
    GetVehiclePos(veh,Pos[0],Pos[1],Pos[2]);
    if(!IsPlayerInRangeOfPoint(playerid,5.0,Pos[0],Pos[1],Pos[2])) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Fahrzeuges.");
    if(sCarInfo[id][CarLock] == 0){
    sCarInfo[id][CarLock] = 1;
    SetDoors(sCarInfo[id][VehID], true);
    soundHorn(sCarInfo[id][VehID]);
    SendClientMessage(playerid,-1,"Fahrzeug abgeschlossen");
    }
    else if(sCarInfo[id][CarLock] == 1){
    sCarInfo[id][CarLock] = 0;
    SetDoors(sCarInfo[id][VehID], false);
    soundHorn(sCarInfo[id][VehID]);
    SendClientMessage(playerid,-1,"Fahrzeug aufgeschlossen");
    }
    return 1;
    }

  • So, jetzt hast du endlich den ganzen Befehl gepostet.


    CMD:carlock(playerid,params[])
    {
    new veh;
    if(!IsPlayerInAnyVehicle(playerid)) veh = GetClosestVehicle(playerid, 5.0);
    else veh = GetPlayerVehicleID(playerid);
    id = getSlotID(veh);
    if(id == -1)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug!");
    if(veh == INVALID_VEHICLE_ID) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Fahrzeuges.");
    if(strcmp(PlayerName(playerid),sCarInfo[id][sName]) != 0) return SendClientMessage(playerid,-1,"Dieses Fahrzeug gehört nicht dir.");
    if(sCarInfo[id][CarLock] == 0)
    {
    sCarInfo[id][CarLock] = 1;
    SetDoors(sCarInfo[id][VehID], true);
    soundHorn(sCarInfo[id][VehID]);
    SendClientMessage(playerid,-1,"Fahrzeug abgeschlossen");
    }
    else if(sCarInfo[id][CarLock] == 1)
    {
    sCarInfo[id][CarLock] = 0;
    SetDoors(sCarInfo[id][VehID], false);
    soundHorn(sCarInfo[id][VehID]);
    SendClientMessage(playerid,-1,"Fahrzeug aufgeschlossen");
    }
    return 1;
    }


    GetClosestVehicle:
    http://forum.sa-mp.com/showpost.php?p=906308&postcount=6

  • So, jetzt hast du endlich den ganzen Befehl gepostet.

    Ich bedanke mich dafür, ich glaub du hast wirklich Recht mit den Variablen weil ich weiß nicht wie ich das nächste Problem lösen soll ...
    Jetzt funktioniert /carlist nicht mehr .. -.-



    CMD:carlist(playerid, params[]){
    new str[500],headline[64],count;
    new veh = GetPlayerVehicleID(playerid);
    for(new i; i != MAX_VEHICLES; ++i)
    {
    if(!sCarInfo[i][sName][0])continue;
    //if(strcmp(PlayerName(playerid,sCarInfo[i][sName],false) == 0)
    if(strcmp(PlayerName(playerid),sCarInfo[i][sName],false) == 0)
    {
    format(str,sizeof(str),"%s{FFFFFF}SlotID: %d | ID: %d | Name: %s | Türen: %s{FFFFFF} | Status: %s{FFFFFF} | Verwahrung: %s {FFFFFF} | Kennzeichen: %s{FFFFFF}\n",str,i,veh,GetVehicleName(sCarInfo[i][CarModelID]),
    (!sCarInfo[i][CarLock])?("{21DD00}Aufgeschlossen"):("{FF0000}Abgeschlossen"),
    (sCarInfo[i][NeedRep])?("{FF0000}ben. Reparatur"):("{21DD00}Fahrtüchtig"),
    (sCarInfo[i][CarAbgeschleppt])?("{FF0000}Ja"):("{21DD00}Nein"),
    sCarInfo[i][CarSchildName]);
    ++count;
    }
    }
    if(!count)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug");
    format(headline,sizeof(headline),"Du hast %d Fahrzeuge.",count);
    return ShowPlayerDialog(playerid,DIALOG_AUTOUNNOETIG,DIALOG_STYLE_MSGBOX,headline,str,"Bestätigen","Schließen");
    }

  • Problem liegt hier


    if(strcmp(PlayerName(playerid),sCarInfo[i][sName],false) == 0)


    Die Aussage trifft nicht zu entweder werden die Fahrzeuge nicht richtig geladen oder in der Datenbank steht ein anderer.


    Was gibt den die Konsole aus , wenn du davor ein Debug setzt:



    ...
    printf("Name: %s",sCarInfo[i][sName]):
    if(strcmp(PlayerName(playerid),sCarInfo[i][sName],false) == 0) {
    ....

  • Die Konsole gibt nichts aus...

  • CMD:carlist(playerid, params[]){
    new str[500],headline[64],count;
    new veh = GetPlayerVehicleID(playerid);
    printf("Command aufgerufen: ID: %d", playerid);
    for(new i; i != MAX_VEHICLES; ++i)
    {
    printf("i: %d / Name: %s", sCarInfo[i][sName]);
    if(!sCarInfo[i][sName][0])continue;
    //if(strcmp(PlayerName(playerid,sCarInfo[i][sName],false) == 0)
    if(strcmp(PlayerName(playerid),sCarInfo[i][sName],false) == 0)
    {
    printf("i: %d loaded");
    format(str,sizeof(str),"%s{FFFFFF}SlotID: %d | ID: %d | Name: %s | Türen: %s{FFFFFF} | Status: %s{FFFFFF} | Verwahrung: %s {FFFFFF} | Kennzeichen: %s{FFFFFF}\n",str,i,veh,GetVehicleName(sCarInfo[i][CarModelID]),
    (!sCarInfo[i][CarLock])?("{21DD00}Aufgeschlossen"):("{FF0000}Abgeschlossen"),
    (sCarInfo[i][NeedRep])?("{FF0000}ben. Reparatur"):("{21DD00}Fahrtüchtig"),
    (sCarInfo[i][CarAbgeschleppt])?("{FF0000}Ja"):("{21DD00}Nein"),
    sCarInfo[i][CarSchildName]);
    ++count;
    }
    }
    printf("count: %d", count);
    if(!count)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug");
    format(headline,sizeof(headline),"Du hast %d Fahrzeuge.",count);
    return ShowPlayerDialog(playerid,DIALOG_AUTOUNNOETIG,DIALOG_STYLE_MSGBOX,headline,str,"Bestätigen","Schließen");
    }


    Was wird geprintet?

  • Ich sehe gerade, dass ich da das i vergessen habe, sorry.


    printf("i: %d / Name: %s", sCarInfo[i][sName]);


    Zu
    printf("i: %d / Name: %s", i, sCarInfo[i][sName]);


    Wie sieht es jetzt aus?




    Hier auch:
    printf("i: %d loaded", i);


    Ich hau mich aufs Ohr, so viele Fehler sind ja peinlich. :S :sleeping:


  • Aufpassen ist lang!


    [17.07.2014 | 22:34:27] tobi_test hat sich eingeloggt.
    [17.07.2014 | 22:34:29] Command aufgerufen: ID: 0
    [17.07.2014 | 22:34:29] i: 0 / Name:
    [17.07.2014 | 22:34:29] i: 1 / Name:
    [17.07.2014 | 22:34:29] i: 2 / Name:
    [17.07.2014 | 22:34:29] i: 3 / Name:
    [17.07.2014 | 22:34:29] i: 4 / Name:
    [17.07.2014 | 22:34:29] i: 5 / Name:
    [17.07.2014 | 22:34:29] i: 6 / Name:
    [17.07.2014 | 22:34:29] i: 7 / Name:
    [17.07.2014 | 22:34:29] i: 8 / Name:
    [17.07.2014 | 22:34:29] i: 9 / Name:
    [17.07.2014 | 22:34:29] i: 10 / Name:
    [17.07.2014 | 22:34:29] i: 11 / Name:
    [17.07.2014 | 22:34:29] i: 12 / Name:
    [17.07.2014 | 22:34:29] i: 13 / Name:
    [17.07.2014 | 22:34:29] i: 14 / Name:
    [17.07.2014 | 22:34:29] i: 15 / Name:
    [17.07.2014 | 22:34:29] i: 16 / Name:
    [17.07.2014 | 22:34:29] i: 17 / Name:
    [17.07.2014 | 22:34:29] i: 18 / Name:
    [17.07.2014 | 22:34:29] i: 19 / Name:
    [17.07.2014 | 22:34:29] i: 20 / Name:
    [17.07.2014 | 22:34:29] i: 21 / Name:
    [17.07.2014 | 22:34:29] i: 22 / Name:
    [17.07.2014 | 22:34:29] i: 23 / Name:
    [17.07.2014 | 22:34:29] i: 24 / Name:
    [17.07.2014 | 22:34:29] i: 25 / Name:
    [17.07.2014 | 22:34:29] i: 26 / Name:
    [17.07.2014 | 22:34:29] i: 27 / Name:
    [17.07.2014 | 22:34:29] i: 28 / Name:
    [17.07.2014 | 22:34:29] i: 29 / Name:
    [17.07.2014 | 22:34:29] i: 30 / Name:
    [17.07.2014 | 22:34:29] i: 31 / Name:
    [17.07.2014 | 22:34:29] i: 32 / Name:
    [17.07.2014 | 22:34:29] i: 33 / Name:
    [17.07.2014 | 22:34:29] i: 34 / Name:
    [17.07.2014 | 22:34:29] i: 35 / Name:
    [17.07.2014 | 22:34:29] i: 36 / Name:
    [17.07.2014 | 22:34:29] i: 37 / Name:
    [17.07.2014 | 22:34:29] i: 38 / Name:
    [17.07.2014 | 22:34:29] i: 39 / Name:
    [17.07.2014 | 22:34:29] i: 40 / Name:
    [17.07.2014 | 22:34:29] i: 41 / Name:
    [17.07.2014 | 22:34:29] i: 42 / Name:
    [17.07.2014 | 22:34:29] i: 43 / Name:
    [17.07.2014 | 22:34:29] i: 44 / Name:
    [17.07.2014 | 22:34:29] i: 45 / Name:
    [17.07.2014 | 22:34:29] i: 46 / Name:
    [17.07.2014 | 22:34:29] i: 47 / Name:
    [17.07.2014 | 22:34:29] i: 48 / Name:
    [17.07.2014 | 22:34:29] i: 49 / Name:
    [17.07.2014 | 22:34:29] i: 50 / Name:
    [17.07.2014 | 22:34:29] i: 51 / Name:
    [17.07.2014 | 22:34:29] i: 52 / Name:
    [17.07.2014 | 22:34:29] i: 53 / Name:
    [17.07.2014 | 22:34:29] i: 54 / Name:
    [17.07.2014 | 22:34:29] i: 55 / Name:
    [17.07.2014 | 22:34:29] i: 56 / Name:
    [17.07.2014 | 22:34:29] i: 57 / Name:
    [17.07.2014 | 22:34:29] i: 58 / Name:
    [17.07.2014 | 22:34:29] i: 59 / Name:
    [17.07.2014 | 22:34:29] i: 60 / Name:
    [17.07.2014 | 22:34:29] i: 61 / Name:
    [17.07.2014 | 22:34:29] i: 62 / Name:
    [17.07.2014 | 22:34:29] i: 63 / Name:
    [17.07.2014 | 22:34:29] i: 64 / Name:
    [17.07.2014 | 22:34:29] i: 65 / Name:
    [17.07.2014 | 22:34:29] i: 66 / Name:
    [17.07.2014 | 22:34:29] i: 67 / Name:
    [17.07.2014 | 22:34:29] i: 68 / Name:
    [17.07.2014 | 22:34:29] i: 69 / Name:
    [17.07.2014 | 22:34:29] i: 70 / Name:
    [17.07.2014 | 22:34:29] i: 71 / Name:
    [17.07.2014 | 22:34:29] i: 72 / Name:
    [17.07.2014 | 22:34:29] i: 73 / Name:
    [17.07.2014 | 22:34:29] i: 74 / Name:
    [17.07.2014 | 22:34:29] i: 75 / Name:
    [17.07.2014 | 22:34:29] i: 76 / Name:
    [17.07.2014 | 22:34:29] i: 77 / Name:
    [17.07.2014 | 22:34:29] i: 78 / Name:
    [17.07.2014 | 22:34:29] i: 79 / Name:
    [17.07.2014 | 22:34:29] i: 80 / Name:
    [17.07.2014 | 22:34:29] i: 81 / Name:
    [17.07.2014 | 22:34:29] i: 82 / Name:
    [17.07.2014 | 22:34:29] i: 83 / Name:
    [17.07.2014 | 22:34:29] i: 84 / Name:
    [17.07.2014 | 22:34:29] i: 85 / Name:
    [17.07.2014 | 22:34:29] i: 86 / Name:
    [17.07.2014 | 22:34:29] i: 87 / Name:
    [17.07.2014 | 22:34:29] i: 88 / Name:
    [17.07.2014 | 22:34:29] i: 89 / Name:
    [17.07.2014 | 22:34:29] i: 90 / Name:
    [17.07.2014 | 22:34:29] i: 91 / Name:
    [17.07.2014 | 22:34:29] i: 92 / Name:
    [17.07.2014 | 22:34:29] i: 93 / Name:
    [17.07.2014 | 22:34:29] i: 94 / Name:
    [17.07.2014 | 22:34:29] i: 95 / Name:
    [17.07.2014 | 22:34:29] i: 96 / Name:
    [17.07.2014 | 22:34:29] i: 97 / Name:
    [17.07.2014 | 22:34:29] i: 98 / Name:
    [17.07.2014 | 22:34:29] i: 99 / Name:
    [17.07.2014 | 22:34:29] i: 100 / Name:
    [17.07.2014 | 22:34:29] i: 101 / Name:
    [17.07.2014 | 22:34:29] i: 102 / Name:
    [17.07.2014 | 22:34:29] i: 103 / Name:
    [17.07.2014 | 22:34:29] i: 104 / Name:
    [17.07.2014 | 22:34:29] i: 105 / Name:
    [17.07.2014 | 22:34:29] i: 106 / Name:
    [17.07.2014 | 22:34:29] i: 107 / Name:
    [17.07.2014 | 22:34:29] i: 108 / Name:
    [17.07.2014 | 22:34:29] i: 109 / Name:
    [17.07.2014 | 22:34:29] i: 110 / Name:
    [17.07.2014 | 22:34:29] i: 111 / Name:
    [17.07.2014 | 22:34:29] i: 112 / Name:
    [17.07.2014 | 22:34:29] i: 113 / Name:
    [17.07.2014 | 22:34:29] i: 114 / Name:
    [17.07.2014 | 22:34:29] i: 115 / Name:
    [17.07.2014 | 22:34:29] i: 116 / Name:
    [17.07.2014 | 22:34:29] i: 117 / Name:
    [17.07.2014 | 22:34:29] i: 118 / Name:
    [17.07.2014 | 22:34:29] i: 119 / Name:
    [17.07.2014 | 22:34:29] i: 120 / Name:
    [17.07.2014 | 22:34:29] i: 121 / Name:
    [17.07.2014 | 22:34:29] i: 122 / Name:
    [17.07.2014 | 22:34:29] i: 123 / Name:
    [17.07.2014 | 22:34:29] i: 124 / Name:
    [17.07.2014 | 22:34:29] i: 125 / Name:
    [17.07.2014 | 22:34:29] i: 126 / Name:
    [17.07.2014 | 22:34:29] i: 127 / Name:
    [17.07.2014 | 22:34:29] i: 128 / Name:
    [17.07.2014 | 22:34:29] i: 129 / Name:
    [17.07.2014 | 22:34:29] i: 130 / Name:
    [17.07.2014 | 22:34:29] i: 131 / Name:
    [17.07.2014 | 22:34:29] i: 132 / Name:
    [17.07.2014 | 22:34:29] i: 133 / Name:
    [17.07.2014 | 22:34:29] i: 134 / Name:
    [17.07.2014 | 22:34:29] i: 135 / Name:
    [17.07.2014 | 22:34:29] i: 136 / Name:
    [17.07.2014 | 22:34:29] i: 137 / Name:
    [17.07.2014 | 22:34:29] i: 138 / Name:
    [17.07.2014 | 22:34:29] i: 139 / Name:
    [17.07.2014 | 22:34:29] i: 140 / Name:
    [17.07.2014 | 22:34:29] i: 141 / Name:
    [17.07.2014 | 22:34:29] i: 142 / Name:
    [17.07.2014 | 22:34:29] i: 143 / Name:
    [17.07.2014 | 22:34:29] i: 144 / Name:
    [17.07.2014 | 22:34:29] i: 145 / Name:
    [17.07.2014 | 22:34:29] i: 146 / Name:
    [17.07.2014 | 22:34:29] i: 147 / Name:
    [17.07.2014 | 22:34:29] i: 148 / Name:
    [17.07.2014 | 22:34:29] i: 149 / Name:
    [17.07.2014 | 22:34:29] i: 150 / Name:
    [17.07.2014 | 22:34:29] i: 151 / Name:
    [17.07.2014 | 22:34:29] i: 152 / Name:
    [17.07.2014 | 22:34:29] i: 153 / Name:
    [17.07.2014 | 22:34:29] i: 154 / Name:
    [17.07.2014 | 22:34:29] i: 155 / Name:
    [17.07.2014 | 22:34:29] i: 156 / Name:
    [17.07.2014 | 22:34:29] i: 157 / Name:
    [17.07.2014 | 22:34:29] i: 158 / Name:
    [17.07.2014 | 22:34:29] i: 159 / Name:
    [17.07.2014 | 22:34:29] i: 160 / Name:
    [17.07.2014 | 22:34:29] i: 161 / Name:
    [17.07.2014 | 22:34:29] i: 162 / Name:
    [17.07.2014 | 22:34:29] i: 163 / Name:
    [17.07.2014 | 22:34:29] i: 164 / Name:
    [17.07.2014 | 22:34:29] i: 165 / Name:
    [17.07.2014 | 22:34:29] i: 166 / Name:
    [17.07.2014 | 22:34:29] i: 167 / Name:
    [17.07.2014 | 22:34:29] i: 168 / Name:
    [17.07.2014 | 22:34:29] i: 169 / Name:
    [17.07.2014 | 22:34:29] i: 170 / Name:
    [17.07.2014 | 22:34:29] i: 171 / Name:
    [17.07.2014 | 22:34:29] i: 172 / Name:
    [17.07.2014 | 22:34:29] i: 173 / Name:
    [17.07.2014 | 22:34:29] i: 174 / Name:
    [17.07.2014 | 22:34:29] i: 175 / Name:
    [17.07.2014 | 22:34:29] i: 176 / Name:
    [17.07.2014 | 22:34:29] i: 177 / Name:
    [17.07.2014 | 22:34:29] i: 178 / Name:
    [17.07.2014 | 22:34:29] i: 179 / Name:
    [17.07.2014 | 22:34:29] i: 180 / Name:
    [17.07.2014 | 22:34:29] i: 181 / Name:
    [17.07.2014 | 22:34:29] i: 182 / Name:
    [17.07.2014 | 22:34:29] i: 183 / Name:
    [17.07.2014 | 22:34:29] i: 184 / Name:
    [17.07.2014 | 22:34:29] i: 185 / Name:
    [17.07.2014 | 22:34:29] i: 186 / Name:
    [17.07.2014 | 22:34:29] i: 187 / Name:
    [17.07.2014 | 22:34:29] i: 188 / Name:
    [17.07.2014 | 22:34:29] i: 189 / Name:
    [17.07.2014 | 22:34:29] i: 190 / Name:
    [17.07.2014 | 22:34:29] i: 191 / Name:
    [17.07.2014 | 22:34:29] i: 192 / Name:
    [17.07.2014 | 22:34:29] i: 193 / Name:
    [17.07.2014 | 22:34:29] i: 194 / Name:
    [17.07.2014 | 22:34:29] i: 195 / Name:
    [17.07.2014 | 22:34:29] i: 196 / Name:
    [17.07.2014 | 22:34:29] i: 197 / Name:
    [17.07.2014 | 22:34:29] i: 198 / Name:
    [17.07.2014 | 22:34:29] i: 199 / Name:
    [17.07.2014 | 22:34:29] i: 200 / Name:
    [17.07.2014 | 22:34:29] i: 201 / Name:
    [17.07.2014 | 22:34:29] i: 202 / Name:
    [17.07.2014 | 22:34:29] i: 203 / Name:
    [17.07.2014 | 22:34:29] i: 204 / Name:
    [17.07.2014 | 22:34:29] i: 205 / Name:
    [17.07.2014 | 22:34:29] i: 206 / Name:
    [17.07.2014 | 22:34:29] i: 207 / Name:
    [17.07.2014 | 22:34:29] i: 208 / Name:
    [17.07.2014 | 22:34:29] i: 209 / Name:
    .... (kommt das gleiche bis 1999)
    [17.07.2014 | 22:34:29] count: 0


    Ich denke, dann passiert bei %d loaded gleich so viel..