Beiträge von dnlk

    AddThousandsSeparators(number, const separator[] = ",")
    {
    new output[15];
    format(output, sizeof(output), "%d", number);

    for(new i = strlen(output) - 3; i > 0 && output[i-1] != '-'; i -= 3)
    {
    strins(output, separator, i);
    }

    return output;
    }

    Das war in keinster weise Unfreundlich.


    Kleinigkeiten wie dies hier könntest du in 10 sekunden lösen in dem du einfach mal auf http://www.google.de gehst und folgendes eingibst:
    "SAMP Wiki #funktion_hier#", e.g. "SAMP Wiki GetPlayerIp".


    Wie du hier siehst ist das erste ergebnis genau das was du brauchst:


    Und wenn du da jetzt drauf gehst wirst du in unter 1 minute herausfinden was du zu tun hast bzw. was du falsch gemacht hast.

    if(fVehicle[fV][vehFraktion] == 3){if(GetVehicleModel(fVehicle[fV][vehID]) == 560){if(fVehicle[fV][vehFraktion] == 3){fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);}}else if(fVehicle[fV][vehFraktion] == 6){ //Funktioniert nichtif(GetVehicleModel(fVehicle[fV][vehID]) == 560){fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);}}else if(fVehicle[fV][vehFraktion] == 1){if(GetVehicleModel(fVehicle[fV][vehID]) == 560){fVehicle[fV][vehSiren1] = CreateDynamicObject(19620, 0, 0, 0, 0, 0, 0, 0);fVehicle[fV][vehSiren2] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);fVehicle[fV][vehSiren3] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);fVehicle[fV][vehSiren4] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);fVehicle[fV][vehSiren5] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], -0.00160, 0.05440, 0.83080, 0.00000, 0.00000, 0.00000);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren2], fVehicle[fV][vehID], 0.73560, 2.59780, -0.13790, 0.00000, 0.00000, 178.00000);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren3], fVehicle[fV][vehID], 0.73560, 2.59780, -0.24890, 0.00000, 0.00000, 178.00000);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren4], fVehicle[fV][vehID], -0.72440, 2.59780, -0.13990, 4.00000, 0.00000, 185.00000);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren5], fVehicle[fV][vehID], -0.72440, 2.59780, -0.25090, 4.00000, 0.00000, 185.00000);}}}SetVehiclePos(fVehicle[fV][vehID], fVehicle[fV][vehPosX], fVehicle[fV][vehPosY], fVehicle[fV][vehPosZ]);SetTimerEx("SetVehicleZAngle", 5000, 0, "dd", fVehicle[fV][vehID], fVehicle[fV][vehPosA]);}return 1;}


    Hey wen ich für Fraktion ID 3 ein Sultan erstelle wird die Sirene drauf gemacht.
    Wen ich für die Fraktion ID 6 ein Sultan erstelle wird die Sirene nicht drauf gemacht.


    @Kaliber


    if(GetVehicleModel(fVehicle[fV][vehID]) == 560)
    {
    if(fVehicle[fV][vehFraktion] == 3 || fVehicle[fV][vehFraktion] == 6)
    {
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    }
    else if(fVehicle[fV][vehFraktion] == 1)
    {
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19620, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren2] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren3] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren4] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren5] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], -0.00160, 0.05440, 0.83080, 0.00000, 0.00000, 0.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren2], fVehicle[fV][vehID], 0.73560, 2.59780, -0.13790, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren3], fVehicle[fV][vehID], 0.73560, 2.59780, -0.24890, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren4], fVehicle[fV][vehID], -0.72440, 2.59780, -0.13990, 4.00000, 0.00000, 185.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren5], fVehicle[fV][vehID], -0.72440, 2.59780, -0.25090, 4.00000, 0.00000, 185.00000);
    }
    }

    Nur mal zwei andere möglichkeiten die besser sind:


    Falls du sscanf benutzt ( gehe ich mal stark von aus )
    stock GetPlayerID(find[])
    {
    new playerid = INVALID_PLAYER_ID;
    sscanf(find,"u",playerid);
    return playerid;
    }


    Falls nicht

    stock GetPlayerID(find[])
    {
    new pName[MAX_PLAYERS];
    for(new playerid, j = GetPlayerPoolSize(); playerid <= j; playerid++)
    {
    if(!IsPlayerConnected(playerid))
    continue;
    GetPlayerName(playerid,pName,sizeof(pName));
    if(!strcmp(find,pName,false,strlen(find)))
    return playerid;
    }
    return INVALID_PLAYER_ID;
    }


    Warum GetPlayerPoolSize und nicht GetMaxPlayers bzw. MAX_PLAYERS ?
    GetMaxPlayers gibt die maximale anzahl von spielern zurück, GetPlayerPoolSize gibt die derzeit höchste ID zurück.

    // Rote Box halb so groß wie der Monitor (640.0 * 0.5, 480.0 * 0.5) fängt an bei 25% von oben und 25% von links (640.0 * 0.25, 480.0 * 0.25)
    // Das wäre die einfachste methode um es selber zu schreiben, benutz aber lieber einen Textdraw Editor.
    new Text:Textdraw = TextDrawCreate(640.0 * 0.25, 480.0 * 0.25, "LD_SPAC:white");
    TextDrawTextSize(Textdraw, 640.0 * 0.5, 480 * 0.5);
    TextDrawColor(Textdraw, 0xFF0000FF);
    TextDrawFont(Textdraw, 4);
    TextDrawSetSelectable(Textdraw, true);
    // ... //
    SelectTextDraw(playerid, 0xFFFFFFFF);


    TextDrawTextSize repräsentiert die fläche die ausgewählt werden kann und weil es ein sprite ist auch die größe des sprites.


    Benutz am besten diesen Textdraw Editor