Frage bzgl. Abfrage

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
  • Hallo Com,
    Ich melde mich nochmal,
    und zwar wie kann ich Abfragen lassen, ob das Kennschild schon besetzt ist .. ich bin grad ein bisschen blöd ..



    CMD:kennschild(playerid, params[]){
    new kszahlen,kslaenge,str[20],CarID,kspreis,pID;
    if(sInfo[playerid][pFraktion] == 1)return SendClientMessage(playerid,-1,"Du bist nicht im Ordnungsamt");{
    if(sscanf(params,"iiid",CarID,kspreis,kszahlen,pID)) return SendClientMessage(playerid,-1,"Verwende: /kennschild [CarID] [Preis] [KennschildName (max. 4Zahlen)] [playerID]");
    if(pID == playerid) return SendClientMessage(playerid,-1, "Hinweis: Du kannst Dir selber kein Kennschild geben");
    if(IsPlayerInRangeOfPoint(playerid,5.0,919.3960,-1264.7429,15.1719))return SendClientMessage(playerid,-1,"Hinweis: Du bist nicht beim TÜV (Ordnungsamt Base)");
    if(kslaenge > 4) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 4 Zahlen");
    if(kspreis <= GetPlayerMoney(pID))return SendClientMessage(playerid,-1,"Hinweis: Soviel Geld hat der Spieler nicht!");
    if(kspreis > 100000 || kspreis < 1) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 100.000$");
    if(sCarInfo[CarID][pKey] != 1){
    if(sCarInfo[CarID][CarSchild] == 0){
    format(str, sizeof(str), "BZZ-%i",kszahlen);
    format(sCarInfo[CarID][CarSchildName],sizeof(str),"%s",str);
    SetVehicleNumberPlate(CarID,str);
    }else{SendClientMessage(playerid,-1,"Hinweis: Das Auto besitzt schon ein Kennschild!");}
    }else{SendClientMessage(playerid,-1,"Hinweis: Du besitzt kein Auto auf dem ausgewähltem Autoschlüsel!");}
    GivePlayerMoney(sCarInfo[CarID][sName], -kspreis);
    }
    return 1;
    }


    Danke im voraus.


    Greetz

  • Du speicherst die Kennzeichen doch bestimmt oder ? Dann könntest per Schleife alle existierenden Kennzeichen durchlaufen und mit strcmp gucken, ob es bereits ein gleiches gibt.



    CMD:kennschild(playerid, params[]){
    new kszahlen,kslaenge,str[20],CarID,kspreis,pID;
    if(sInfo[playerid][pFraktion] == 1)return SendClientMessage(playerid,-1,"Du bist nicht im Ordnungsamt");
    {
    if(sscanf(params,"iiid",CarID,kspreis,kszahlen,pID)) return SendClientMessage(playerid,-1,"Verwende: /kennschild [CarID] [Preis] [KennschildName (max. 4Zahlen)] [playerID]");
    if(pID == playerid) return SendClientMessage(playerid,-1, "Hinweis: Du kannst Dir selber kein Kennschild geben");
    if(IsPlayerInRangeOfPoint(playerid,5.0,919.3960,-1264.7429,15.1719))return SendClientMessage(playerid,-1,"Hinweis: Du bist nicht beim TÜV (Ordnungsamt Base)");
    if(kslaenge > 2) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 4 Zahlen");
    if(kspreis <= GetPlayerMoney(pID))return SendClientMessage(playerid,-1,"Hinweis: Soviel Geld hat der Spieler nicht!");
    if(kspreis > 100000 || kspreis < 1) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 100.000$");
    if(sCarInfo[CarID][pKey] != 1)
    {
    if(sCarInfo[CarID][CarSchild] == 0)
    {
    for(new i; i < MAX_VEHICLES; i++)
    {
    format(str,sizeof(str),"DSZ-%i",kszahlen);
    if(!strcmp(sCarInfo[CarID][CarSchildName],str)) return SendClientMessage(playerid,-1,"Hinweis: Das Kennzeichen gibt es schon!");
    SetVehicleNumberPlate(CarID,str);
    }
    }
    else
    {
    SendClientMessage(playerid,-1,"Hinweis: Das Auto besitzt schon ein Kennschild!");}
    }
    else
    {
    SendClientMessage(playerid,-1,"Hinweis: Du besitzt kein Auto auf dem ausgewähltem Autoschlüsel!");
    }
    GivePlayerMoney(sCarInfo[CarID][sName], -kspreis);
    }
    return 1;
    }


    So müsste es gehen oder?

  • Ersetze bei der strcmp if Abrage CarID mit i.
    Dann sollte es eigentlich klappen.



    CMD:kennschild(playerid, params[]){
    new kszahlen,kslaenge,str[20],CarID,kspreis,pID;
    if(sInfo[playerid][pFraktion] == 1)return SendClientMessage(playerid,-1,"Du bist nicht im Ordnungsamt");
    {
    if(sscanf(params,"iiid",CarID,kspreis,kszahlen,pID)) return SendClientMessage(playerid,-1,"Verwende: /kennschild [CarID] [Preis] [KennschildName (max. 4Zahlen)] [playerID]");
    if(pID == playerid) return SendClientMessage(playerid,-1, "Hinweis: Du kannst Dir selber kein Kennschild geben");
    if(IsPlayerInRangeOfPoint(playerid,5.0,919.3960,-1264.7429,15.1719))return SendClientMessage(playerid,-1,"Hinweis: Du bist nicht beim TÜV (Ordnungsamt Base)");
    if(kslaenge > 2) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 4 Zahlen");
    if(kspreis <= GetPlayerMoney(pID))return SendClientMessage(playerid,-1,"Hinweis: Soviel Geld hat der Spieler nicht!");
    if(kspreis > 100000 || kspreis < 1) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 100.000$");
    if(sCarInfo[CarID][pKey] != 1)
    {
    if(sCarInfo[CarID][CarSchild] == 0)
    {
    for(new i; i < MAX_VEHICLES; i++)
    {
    format(str,sizeof(str),"DSZ-%i",kszahlen);
    if(!strcmp(sCarInfo[i][CarSchildName],str)) return SendClientMessage(playerid,-1,"Hinweis: Das Kennzeichen gibt es schon!");
    SetVehicleNumberPlate(CarID,str);
    }
    }
    else
    {
    SendClientMessage(playerid,-1,"Hinweis: Das Auto besitzt schon ein Kennschild!");}
    }
    else
    {
    SendClientMessage(playerid,-1,"Hinweis: Du besitzt kein Auto auf dem ausgewähltem Autoschlüsel!");
    }
    GivePlayerMoney(sCarInfo[CarID][sName], -kspreis);
    }
    return 1;
    }


    So also?

  • Auf Anfrage in PM:


    So also?


    Nein.



    CMD:kennschild(playerid, params[])
    {
    new kszahlen,kslaenge,str[20],CarID,kspreis,pID;
    if(sInfo[playerid][pFraktion] == 1)return SendClientMessage(playerid,-1,"Du bist nicht im Ordnungsamt");
    {
    if(sscanf(params,"iiid",CarID,kspreis,kszahlen,pID)) return SendClientMessage(playerid,-1,"Verwende: /kennschild [CarID] [Preis] [KennschildName (max. 4Zahlen)] [playerID]");
    if(pID == playerid) return SendClientMessage(playerid,-1, "Hinweis: Du kannst Dir selber kein Kennschild geben");
    if(!IsPlayerInRangeOfPoint(playerid,5.0,919.3960,-1264.7429,15.1719))return SendClientMessage(playerid,-1,"Hinweis: Du bist nicht beim TÜV (Ordnungsamt Base)");
    if(kszahlen > 9999) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 4 Zahlen");
    if(kspreis > GetPlayerMoney(pID))return SendClientMessage(playerid,-1,"Hinweis: Soviel Geld hat der Spieler nicht!");
    if(kspreis > 100000 || kspreis < 1) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 100.000$");
    if(sCarInfo[CarID][pKey] != 1)
    {
    if(sCarInfo[CarID][CarSchild] == 0)
    {
    for(new i; i < MAX_VEHICLES; i++)
    {
    format(str,sizeof(str),"DSZ-%i",kszahlen);
    if(!strcmp(sCarInfo[i][CarSchildName],str)) return SendClientMessage(playerid,-1,"Hinweis: Das Kennzeichen gibt es schon!");
    }
    SetVehicleNumberPlate(CarID,str);
    GivePlayerMoney(sCarInfo[CarID][sName], -kspreis);
    }
    else
    {
    SendClientMessage(playerid,-1,"Hinweis: Das Auto besitzt schon ein Kennschild!");
    }
    }
    else
    {
    SendClientMessage(playerid,-1,"Hinweis: Du besitzt kein Auto auf dem ausgewähltem Autoschlüsel!");
    }
    }
    return 1;
    }

    Ich hab dir auch gleich noch ein halbes Dutzend anderer Fehler behoben.



    Wenn
    GivePlayerMoney(sCarInfo[CarID][sName], -kspreis);
    sName ein String ist, dann nutze:
    GivePlayerMoney(ReturnPlayerID(sCarInfo[CarID][sName]), -kspreis);
    http://forum.sa-mp.de/gta-mult…eschnipsel-53#post1833300