Problem mit ChangeVehicleColor

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.
    Ich hab da ein Problem mit meinem /farbe-Befehle.
    Der Befehl sieht so aus:



    if(strcmp(cmd,"/farbe",true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new color1 = strval(tmp);
    tmp = strtok(cmdtext, idx);
    new color2= strval(tmp2);
    tmp2 = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, WEISS, "/farbe [Farbe1] [Farbe2]");
    return 1;
    }
    if(!strlen(tmp2))
    {
    SendClientMessage(playerid, WEISS, "/farbe [Farbe1] [Farbe2]");
    return 1;
    }
    new VID;
    VID=GetPlayerVehicleID(playerid);
    ChangeVehicleColor(VID, color1, color2);
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du befindest dich in keinem Fahrzeug !");
    }
    return 1;
    }


    Komischerweise färbt man damit aber sein Fahrzeug immer schwarz, d.h. es wird immer FarbID 0 (schwarz) wiedergegeben.
    Ich habs die ganze Zeit probiert, aber leider keine Lösung gefunden...


    Hoffe mir kann einer helfen :)


    greetz


    Mit freundlichen Grüßen,
    Mr_Hero

  • Hab ich schon versucht, hat leider nicht geholfen :(
    Ich hab den else-Bereich auch schonmal ganz rausgenommen und es ohne probiert, das Ergebnis war das Gleiche, das Fahrzeug wird immer schwarz. =S


    Mit freundlichen Grüßen,
    Mr_Hero

  • Probier das mal so:


    new color1;
    color1 = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, WEISS, "Verwendung: /farbe [farbe1] [farbe2]");
    return 1;
    }
    new color2;
    color2 = strval(tmp);



    anstatt:


    new color1 = strval(tmp);
    tmp = strtok(cmdtext, idx);
    new color2= strval(tmp2);
    tmp2 = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, WEISS, "/farbe [Farbe1] [Farbe2]");
    return 1;
    }
    if(!strlen(tmp2))
    {
    SendClientMessage(playerid, WEISS, "/farbe [Farbe1] [Farbe2]");
    return 1;
    }



    Aber mache vorher ein Backup.

  • Danke, hat mir leider nicht geholfen...es will immer noch nicht :(


    Habs nun so drin:

    if(strcmp(cmd,"/farbe",true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new color1 = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, WEISS, "SERVER: /farbe [Farbe1] [Farbe2]");
    return 1;
    }
    new color2= strval(tmp2);
    tmp2 = strtok(cmdtext, idx);
    if(!strlen(tmp2))
    {
    SendClientMessage(playerid, WEISS, "SERVER: /farbe [Farbe1] [Farbe2]");
    return 1;
    }
    new VID;
    VID=GetPlayerVehicleID(playerid);
    ChangeVehicleColor(VID, color1, color2);
    SendClientMessage(playerid, GELB, "Du hast die Farbe deines Fahrzeuges geändert !");
    }
    else
    {
    SendClientMessage(playerid, ROT, "SERVER: Du befindest dich in keinem Fahrzeug !");
    }
    return 1;
    }


    -> /farbe macht jedes Fahrzeug schwarz (Bikes, Cars..einfach alles)...


    Mit freundlichen Grüßen,
    Mr_Hero

  • Hir porbir mal das ist net von mir aber müsste funzen ;)


    if(strcmp(cmd, "/carcolor", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pPcarkey] == 999)
    {
    SendClientMessage(playerid, COLOR_GREY," You don't have a car to respray.");
    return 1;
    }
    if(GetPlayerMoney(playerid) < 1000)
    {
    SendClientMessage(playerid, COLOR_GREY," You don't have enough money for car respray.");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /carcolor [ColorOneID] [ColorTwoID]");
    return 1;
    }
    new color1;
    color1 = strval(tmp);
    if(color1 < 0 && color1 > 126)
    {
    SendClientMessage(playerid, COLOR_GREY, " Wrong color id!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /carcolor [ColorOneID] [ColorTwoID]");
    return 1;
    }
    new color2;
    color2 = strval(tmp);
    if(color2 < 0 && color2 > 126)
    {
    SendClientMessage(playerid, COLOR_GREY, " Wrong color id!");
    return 1;
    }
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(PlayerInfo[playerid][pPcarkey] == idcar)
    {
    CarInfo[idcar][cColorOne] = color1;
    CarInfo[idcar][cColorTwo] = color2;
    SafeGivePlayerMoney(playerid, -1000);
    GameTextForPlayer(playerid, "~w~Bill for a Paint Respray~n~~r~-$1000", 5000, 1);
    ChangeVehicleColor(idcar, color1, color2);
    OnPropUpdate();
    OnPlayerUpdate(playerid);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY," This is not your car.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY," You are not in vehicle.");
    return 1;
    }
    }
    return 1;
    }

    Lust auf russisch roulette ?
    Okay...
    ... Ich hol mal meine Automatik ;D

  • Das wird wahrscheinlich zu 100% NICHT funktionieren ;)
    probiers mal so:

    if(strcmp(cmd, "/farbe", true) == 0)
    {
    new farbe1;
    new farbe2;
    temp = strtok(cmdtext, Index);
    if(!strlen(temp))
    {
    SendClientMessage(playerid, GELB, "INFO: /farbe [FARBE 1] [FARBE 2]");
    return 1;
    }
    farbe1 = strval(temp);
    temp = strtok(cmdtext, Index);
    if(!strlen(temp))
    {
    SendClientMessage(playerid, GELB, "INFO: /farbe [FARBE 1] [FARBE 2]");
    return 1;
    }
    farbe2 = strval(temp);
    new carid = GetPlayerVehicleID(playerid);
    ChangeVehicleColor(carid, farbe1, farbe2);
    SendClientMessage(playerid, GELB, "Du hast die Farbe deines Fahrzeuges geändert !");
    return 1;
    }
    return 1;

  • Bastis Version hat funktioniert :P
    Hab es nun so drin:

    if(strcmp(cmd,"/farbe",true)==0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, WEISS, "SERVER: /farbe [Farbe1] [Farbe2]");
    return 1;
    }
    new color1;
    color1 = strval(tmp);
    if(color1 < 0 && color1 > 126)
    {
    SendClientMessage(playerid, ROT, "SERVER: Ungültige FarbID !");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, WEISS, "SERVER: /farbe [Farbe1] [Farbe2]");
    return 1;
    }
    new color2;
    color2 = strval(tmp);
    if(color2 < 0 && color2 > 126)
    {
    SendClientMessage(playerid, ROT, "SERVER: Ungültige FarbID !");
    return 1;
    }
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh =GetPlayerVehicleID(playerid);
    ChangeVehicleColor(veh, color1, color2);
    }
    else
    {
    SendClientMessage(playerid, ROT, "SERVER: Du befindest dich in keinem Fahrzeug !");
    return 1;
    }
    return 1;
    }


    Funktioniert, wie es soll :)
    Danke an alle :thumbup:


    - Thema erledigt


    Mit freundlichen Grüßen,
    Mr_Hero