[Frage] SetObjectMaterial - verkürzen

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
  • Guten Tag.
    Ich habe eine Frage bezüglich "SetObjectMaterial": Ist es in irgendeiner Weise möglich so ein Script mit mehreren Zeilen irgendwie zu verkürzen?
    Dabei bezieht sich das SetObjectMaterial immer auf das gleiche Objekt und die gleiche Textur, nur halt an einem anderen Platz.


    Beispiel:
    //Parkplatz
    new parkplatz;
    parkplatz = CreateDynamicObject(19454, 1353.74, -1754.48, 12.30, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz1;
    parkplatz1 = CreateDynamicObject(19454, 1344.11, -1754.48, 12.3, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz1,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz2;
    parkplatz2 = CreateDynamicObject(19454, 1344.11, -1743.98, 12.31, 0.00, 89.90, 90.00);
    SetDynamicObjectMaterial(parkplatz2,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz3;
    parkplatz3 = CreateDynamicObject(19454, 1353.74, -1743.98, 12.31, 0.00, 89.90, 90.00);
    SetDynamicObjectMaterial(parkplatz3,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz4;
    parkplatz4 = CreateDynamicObject(19454, 1344.11, -1747.48, 12.31, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz4,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz5;
    parkplatz5 = CreateDynamicObject(19454, 1344.11, -1750.98, 12.31, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz5,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz6;
    parkplatz6 = CreateDynamicObject(19454, 1353.74, -1750.98, 12.30, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz6,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz7;
    parkplatz7 = CreateDynamicObject(19454, 1353.74, -1747.48, 12.30, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz7,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz8;
    parkplatz8 = CreateDynamicObject(19362, 1360.16, -1754.48, 12.30, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz8,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz9;
    parkplatz9 = CreateDynamicObject(19362, 1360.16, -1750.98, 12.30, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz9,0,6213,"lawwhitebuilds","ws_carpark2",0);
    new parkplatz10;
    parkplatz10 = CreateDynamicObject(19362, 1360.16, -1747.48, 12.30, 0.00, 90.00, 90.00);
    SetDynamicObjectMaterial(parkplatz10,0,6213,"lawwhitebuilds","ws_carpark2",0);


    So etwas bspw. auf weniger Zeilen zu verkürzen.

  • Mach es wie KingClem sagte, mit Array und Schleife:

    //
    new parkplatzobjects[11];
    parkplatzobjects[0] = CreateDynamicObject(19454, 1353.74, -1754.48, 12.30, 0.00, 90.00, 90.00);
    parkplatzobjects[1] = CreateDynamicObject(19454, 1344.11, -1754.48, 12.3, 0.00, 90.00, 90.00);
    parkplatzobjects[2] = CreateDynamicObject(19454, 1344.11, -1743.98, 12.31, 0.00, 89.90, 90.00);
    parkplatzobjects[3] = CreateDynamicObject(19454, 1353.74, -1743.98, 12.31, 0.00, 89.90, 90.00);
    parkplatzobjects[4] = CreateDynamicObject(19454, 1344.11, -1747.48, 12.31, 0.00, 90.00, 90.00);
    parkplatzobjects[5] = CreateDynamicObject(19454, 1344.11, -1750.98, 12.31, 0.00, 90.00, 90.00);
    parkplatzobjects[6] = CreateDynamicObject(19454, 1353.74, -1750.98, 12.30, 0.00, 90.00, 90.00);
    parkplatzobjects[7] = CreateDynamicObject(19454, 1353.74, -1747.48, 12.30, 0.00, 90.00, 90.00);
    parkplatzobjects[8] = CreateDynamicObject(19362, 1360.16, -1754.48, 12.30, 0.00, 90.00, 90.00);
    parkplatzobjects[9] = CreateDynamicObject(19362, 1360.16, -1750.98, 12.30, 0.00, 90.00, 90.00);
    parkplatzobjects[10] = CreateDynamicObject(19362, 1360.16, -1747.48, 12.30, 0.00, 90.00, 90.00);
    for(new i = 0; i < 12; i++)
    {
    SetDynamicObjectMaterial(parkplatzobjects[i],0,6213,"lawwhitebuilds","ws_carpark2",0);
    }

  • Vielen Dank für eure schnelle Hilfe.


    /Edit:
    Ich habe nun doch ein kleines Problem.
    Ich habe dieses Array mit der Schleife zuerst bei OnGameModeInit eingefügt.


    Als ich dann auf meinen Testserver ging, waren ein paar andere Scripts,
    die ich auch unter OnGameModeInit waren, weg (Tore, SetStaticVehicle, ein
    Interior etc.). Das war halt weg, aber dieses Array mit dem SetObjectMaterial war da.




    Dann habe ich es unter OnPlayerConnect gepackt (da hatte ich nur ein paar RemoveBuilding Zeilen). Zuerst hat alles geklappt.


    Als ich dann aber ein zweites Array mit Schleife einfügen wollte, war wiederrum das erste Array weg.
    So sieht mein OnPlayerConnect aus:

    Spoiler anzeigen
    public OnPlayerConnect(playerid)
    {
    //Test
    RemoveBuildingForPlayer(playerid, 4049, 1330.3750, -1793.0781, 22.9688, 0.25);
    RemoveBuildingForPlayer(playerid, 4051, 1371.8203, -1754.8203, 19.0469, 0.25);
    RemoveBuildingForPlayer(playerid, 4191, 1353.2578, -1764.5313, 15.5938, 0.25);
    RemoveBuildingForPlayer(playerid, 4194, 1360.3828, -1840.6172, 26.8047, 0.25);
    RemoveBuildingForPlayer(playerid, 4219, 1330.3281, -1792.5938, 23.4922, 0.25);
    RemoveBuildingForPlayer(playerid, 4226, 1359.2813, -1796.4688, 24.3438, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1336.1563, -1844.0156, 12.9844, 0.25);
    RemoveBuildingForPlayer(playerid, 1372, 1336.3359, -1842.8516, 12.6641, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1336.3750, -1841.5391, 13.0391, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1337.2578, -1841.8750, 13.0000, 0.25);
    RemoveBuildingForPlayer(playerid, 4193, 1360.3828, -1840.6172, 26.8047, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1340.8906, -1835.3672, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1230, 1340.1328, -1835.0391, 12.9766, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1340.8672, -1834.4844, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1336.8750, -1818.2266, 12.9844, 0.25);
    RemoveBuildingForPlayer(playerid, 1372, 1336.7891, -1816.3047, 12.6641, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1338.1250, -1816.5781, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1230, 1338.0781, -1815.7578, 12.9766, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1338.8984, -1816.1641, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1342.2734, -1806.2031, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1230, 1342.6328, -1807.0391, 12.9766, 0.25);
    RemoveBuildingForPlayer(playerid, 1221, 1342.5156, -1805.0703, 12.9844, 0.25);
    RemoveBuildingForPlayer(playerid, 4231, 1342.0547, -1800.2188, 25.4297, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1338.9531, -1796.4297, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 4023, 1359.2813, -1796.4688, 24.3438, 0.25);
    RemoveBuildingForPlayer(playerid, 1230, 1338.9609, -1796.0000, 13.6641, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1338.9375, -1795.4609, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 4112, 1330.3750, -1793.0781, 22.9688, 0.25);
    RemoveBuildingForPlayer(playerid, 1221, 1338.9688, -1793.7266, 12.9844, 0.25);
    RemoveBuildingForPlayer(playerid, 1372, 1337.6953, -1774.7344, 12.6641, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1338.7891, -1775.3203, 12.9688, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1337.0078, -1773.8672, 13.0000, 0.25);
    RemoveBuildingForPlayer(playerid, 4022, 1353.2578, -1764.5313, 15.5938, 0.25);
    RemoveBuildingForPlayer(playerid, 1532, 1353.1328, -1759.6563, 12.5000, 0.25);
    RemoveBuildingForPlayer(playerid, 1226, 1341.4531, -1755.4844, 16.4219, 0.25);
    RemoveBuildingForPlayer(playerid, 4021, 1371.8203, -1754.8203, 19.0469, 0.25);

    Spoiler anzeigen
    //Grüne Fläche weg
    RemoveBuildingForPlayer(playerid, 4049, 1330.3750, -1793.0781, 22.9688, 0.25);
    RemoveBuildingForPlayer(playerid, 4051, 1371.8203, -1754.8203, 19.0469, 0.25);
    RemoveBuildingForPlayer(playerid, 4191, 1353.2578, -1764.5313, 15.5938, 0.25);
    RemoveBuildingForPlayer(playerid, 4194, 1360.3828, -1840.6172, 26.8047, 0.25);
    RemoveBuildingForPlayer(playerid, 4219, 1330.3281, -1792.5938, 23.4922, 0.25);
    RemoveBuildingForPlayer(playerid, 4226, 1359.2813, -1796.4688, 24.3438, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1336.1563, -1844.0156, 12.9844, 0.25);
    RemoveBuildingForPlayer(playerid, 1372, 1336.3359, -1842.8516, 12.6641, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1336.3750, -1841.5391, 13.0391, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1337.2578, -1841.8750, 13.0000, 0.25);
    RemoveBuildingForPlayer(playerid, 4193, 1360.3828, -1840.6172, 26.8047, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1340.8906, -1835.3672, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1230, 1340.1328, -1835.0391, 12.9766, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1340.8672, -1834.4844, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1336.8750, -1818.2266, 12.9844, 0.25);
    RemoveBuildingForPlayer(playerid, 1372, 1336.7891, -1816.3047, 12.6641, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1338.1250, -1816.5781, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1230, 1338.0781, -1815.7578, 12.9766, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1338.8984, -1816.1641, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1342.2734, -1806.2031, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 1230, 1342.6328, -1807.0391, 12.9766, 0.25);
    RemoveBuildingForPlayer(playerid, 1221, 1342.5156, -1805.0703, 12.9844, 0.25);
    RemoveBuildingForPlayer(playerid, 4231, 1342.0547, -1800.2188, 25.4297, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1338.9531, -1796.4297, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 4023, 1359.2813, -1796.4688, 24.3438, 0.25);
    RemoveBuildingForPlayer(playerid, 1230, 1338.9609, -1796.0000, 13.6641, 0.25);
    RemoveBuildingForPlayer(playerid, 1220, 1338.9375, -1795.4609, 12.9297, 0.25);
    RemoveBuildingForPlayer(playerid, 4112, 1330.3750, -1793.0781, 22.9688, 0.25);
    RemoveBuildingForPlayer(playerid, 1221, 1338.9688, -1793.7266, 12.9844, 0.25);
    RemoveBuildingForPlayer(playerid, 1372, 1337.6953, -1774.7344, 12.6641, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1338.7891, -1775.3203, 12.9688, 0.25);
    RemoveBuildingForPlayer(playerid, 1265, 1337.0078, -1773.8672, 13.0000, 0.25);
    RemoveBuildingForPlayer(playerid, 4022, 1353.2578, -1764.5313, 15.5938, 0.25);
    RemoveBuildingForPlayer(playerid, 1532, 1353.1328, -1759.6563, 12.5000, 0.25);
    RemoveBuildingForPlayer(playerid, 1226, 1341.4531, -1755.4844, 16.4219, 0.25);
    RemoveBuildingForPlayer(playerid, 1283, 1345.7656, -1740.6172, 15.6250, 0.25);
    RemoveBuildingForPlayer(playerid, 4021, 1371.8203, -1754.8203, 19.0469, 0.25);

    Spoiler anzeigen
    //Dach von Oben - Test
    new dachtest[4];
    dachtest[0] = CreateDynamicObject(8661,1356.8500, -1803.7500, 17.5200,0.0000, 0.0000, 90.0000);
    dachtest[1] = CreateDynamicObject(8661,1344.6200, -1803.7000, 17.5400,0.0000, 0.0000, 90.0000);
    dachtest[2] = CreateDynamicObject(8661,1354.2200, -1800.3199, 17.5100,0.0000, 0.0000, 90.0000);
    dachtest[3] = CreateDynamicObject(8661,1347.3300, -1800.3500, 17.4900,0.0000, 0.0000, 90.0000);
    for(new i = 0;i<5;i++)
    {
    SetDynamicObjectMaterial(dachtest[i],0,4600,"theatrelan2","concretemanky",0);
    }

    //BODEN VOR DER BANk
    new bodentest[4];
    bodentest[0] = CreateDynamicObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    bodentest[1] = CreateDynamicObject(19378,1350.7400, -1775.2300, 12.4600,0.0000, 90.0000, 90.0000);
    bodentest[2] = CreateDynamicObject(19378,1350.7400, -1764.7300, 12.4600,0.0000, 90.0000, 90.0000);
    bodentest[3] = CreateDynamicObject(19378,1341.3800, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    for(new i = 0;i<5;i++)
    {
    SetDynamicObjectMaterial(bodentest[i],0,9515,"bigboxtemp1","poshground_sfw",0);
    }

    //Fläche allein weg
    RemoveBuildingForPlayer(playerid, 4050, 1350.7578, -1802.2813, 12.6953, 0.25);
    RemoveBuildingForPlayer(playerid, 4010, 1350.7578, -1802.2813, 12.6953, 0.25);
    return 1;
    }

    Könnt ihr mir helfen? KingClem: InternetInk aka Benjamin:

    4 Mal editiert, zuletzt von -Mapper- () aus folgendem Grund: Problem tritt auf


  • //Dach von Oben - Test
    new dachtest[4];
    dachtest[0] = CreateDynamicObject(8661,1356.8500, -1803.7500, 17.5200,0.0000, 0.0000, 90.0000);
    dachtest[1] = CreateDynamicObject(8661,1344.6200, -1803.7000, 17.5400,0.0000, 0.0000, 90.0000);
    dachtest[2] = CreateDynamicObject(8661,1354.2200, -1800.3199, 17.5100,0.0000, 0.0000, 90.0000);
    dachtest[3] = CreateDynamicObject(8661,1347.3300, -1800.3500, 17.4900,0.0000, 0.0000, 90.0000);
    for(new i = 0;i<5;i++)
    {
    SetDynamicObjectMaterial(dachtest[i],0,4600,"theatrelan2","concretemanky",0);
    }

    //BODEN VOR DER BANk
    new bodentest[4];
    bodentest[0] = CreateDynamicObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    bodentest[1] = CreateDynamicObject(19378,1350.7400, -1775.2300, 12.4600,0.0000, 90.0000, 90.0000);
    bodentest[2] = CreateDynamicObject(19378,1350.7400, -1764.7300, 12.4600,0.0000, 90.0000, 90.0000);
    bodentest[3] = CreateDynamicObject(19378,1341.3800, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    for(new i = 0;i<5;i++)
    {
    SetDynamicObjectMaterial(bodentest[i],0,9515,"bigboxtemp1","poshground_sfw",0);
    }


    Hat nichts in OnPlayerConnect zu suchen,muss in GameModeInit .
    Probiere doch mal ob es daran liegt.

  • Wie gesagt. Egal wohin ich es einsetze, alles was unterhalb des ersten Arrays kommt, verschwindet bzw. funktioniert nicht.


    Mein OnGameModeInit sieht so aus:

    Spoiler anzeigen
    public OnGameModeInit()
    {
    DisableInteriorEnterExits();
    EnableStuntBonusForAll(0);

    //3D Texte
    Create3DTextLabel("Willkommen an der {FFFFFF}Stadthalle\n{00FF3C}Los Santos",GELB,1479.3851,-1675.3333,14.0469+0.5,40.0,0);

    Spoiler anzeigen
    //Spawn Pickup
    waffenp = CreatePickup(1239,2,1479.3851,-1675.3333,14.0469,-1);

    //SH Pickup
    CreatePickup(1318,1,1481.0576,-1770.2767,18.7958,-1);
    CreatePickup(1318,1,389.4661,173.7684,1008.3828,-1);

    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

    //Bewegliches Tor
    shtor = CreateDynamicObject(969, 1474.97, -1696.18, 13.04, 0.00, 0.00, 0.00);

    //GRÜNE FLÄCHE
    new objektg;
    objektg = CreateDynamicObject(4010, 1350.76, -1802.28, 12.70, 0.00, 0.00, 0.00);
    SetDynamicObjectMaterial(objektg,3,13756,"mullho03a_lahills","desgreengrass",0);
    SetDynamicObjectMaterial(objektg,0,13756,"mullho03a_lahills","desgreengrass",0);

    //Dach von Oben - Test
    new dachtest[4];
    dachtest[0] = CreateDynamicObject(8661,1356.8500, -1803.7500, 17.5200,0.0000, 0.0000, 90.0000);
    dachtest[1] = CreateDynamicObject(8661,1344.6200, -1803.7000, 17.5400,0.0000, 0.0000, 90.0000);
    dachtest[2] = CreateDynamicObject(8661,1354.2200, -1800.3199, 17.5100,0.0000, 0.0000, 90.0000);
    dachtest[3] = CreateDynamicObject(8661,1347.3300, -1800.3500, 17.4900,0.0000, 0.0000, 90.0000);
    for(new i = 0;i<5;i++)
    {
    SetDynamicObjectMaterial(dachtest[i],0,4600,"theatrelan2","concretemanky",0);
    }

    Spoiler anzeigen
    //BODEN VOR DER BANK
    new bodentest[4];
    bodentest[0] = CreateDynamicObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    bodentest[1] = CreateDynamicObject(19378,1350.7400, -1775.2300, 12.4600,0.0000, 90.0000, 90.0000);
    bodentest[2] = CreateDynamicObject(19378,1350.7400, -1764.7300, 12.4600,0.0000, 90.0000, 90.0000);
    bodentest[3] = CreateDynamicObject(19378,1341.3800, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    for(new i = 0;i<5;i++)
    {
    SetDynamicObjectMaterial(bodentest[i],0,9515,"bigboxtemp1","poshground_sfw",0);
    }

    //Autos
    AddStaticVehicleEx(507,1470.7646,-1708.8992,13.8720,270.3175,1,1,60000); // Auto rechts
    AddStaticVehicleEx(507,1486.1765,-1708.8992,13.8716,88.7599,1,1,60000); // Auto links
    return 1;
    }


    In meinem Falle wird das erste Array "Dach von Oben - Test" angezeigt, aber alles was unterhalb ist (2. Array und Autos) fehlen.

  • dabei stellt sich mir die frage, was schneller geht.
    immer das selbe setobjectmaterial unter das objekt zu packen oder das ganze mit nem array zu erstellen.
    ich denke der aufwand ist der selbe.
    macht das servermäßig nen unterscheid? wegen ressourcen oder ist das wurst?

  • Bleibt sich eigentlich ziemlich gleich,geht einfach nur drum das der Code sauber bleibt.Sonst verliert man schnell den überblick ,und mittlerweile ist es neugierde glaube ich ;)


    Welchen Streamer nutzt du denn?
    Gib mir mal die Tags von: SetDynamicObjectMaterial


    Und nebenbei: Es gehöhrt in GameModeInit ,da du es nur einmal machen musst und nicht für jeden Spieler ;)

  • Die Parameter die du angeben musst und wofür die sind,aber hab ich mir jetzt ergooglet.



    Aber der Fehler ist so simpel das ich ihn einfach überlesen habe,du hast die schleife zu groß gemacht.Mensch debugging ist mein Bester freund :'D


    Hier ist es richtig:

    for(new i;i<4;i++)
    {
    //SendClientMessage(playerid,COLOR_RED,"SCHLEIFE1");
    SetObjectMaterial(dachtest[i],0,4600,"theatrelan2","concretemanky",0);
    }
    //SendClientMessage(playerid,COLOR_RED,"2");
    //BODEN VOR DER BANk
    new bodentest[4];
    bodentest[0] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    bodentest[1] = CreateObject(19378,1350.7400, -1775.2300, 12.4600,0.0000, 90.0000, 90.0000);
    bodentest[2] = CreateObject(19378,1350.7400, -1764.7300, 12.4600,0.0000, 90.0000, 90.0000);
    bodentest[3] = CreateObject(19378,1341.3800, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    for(new i = 0;i<4;i++)
    {//SendClientMessage(playerid,COLOR_RED,"SCHLEIFE2");
    SetObjectMaterial(bodentest[i],0,9515,"bigboxtemp1","poshground_sfw",0);
    }

  • Mal ganz ehrlich das deklarieren von arrays ist unnötigste was es gibt das ist verschwendeter RAM


    wenn es doch ganz einfach auch so geht


    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);


    Die Vorteile es so zu machen:
    - Es wird Ram gespeichert :thumbup:
    - Leichteres ersetzen der Beschaffenheit der Objekte dank der Replacefunktion von Pawno und anderen editoren. :thumbup:


    und für die ganz Schlauen unter euch, zum schnelleren ändern des Materials einer Objektgruppe. Das arbeiten von defines



    #define objectid 9515
    #define objectgroup "bigboxtemp1"
    #define objecttxt "poshground_sfw"
    #define objectcolor 0


    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,objectid ,objectgroup ,objecttxt ,objectcolor);


    so könnt ihr mit paar klicks die Testur oder die Farbe in sekunden ändern ist sowas nicht kuhl.

  • IPrototypeI
    wie ich schon in deiner map gesagt habe, finde ich diese variante mehr als umständlich. klar wenn man nur ein und die selbe textur hat, ist es schon okay. aber was ist wenn man mehrere verwenden will= dann muss man ja ewig immer alles definieren. da finde ich die variante mit der schleife noch am einfachsten.

  • IPrototypeI
    wie ich schon in deiner map gesagt habe, finde ich diese variante mehr als umständlich. klar wenn man nur ein und die selbe textur hat, ist es schon okay. aber was ist wenn man mehrere verwenden will= dann muss man ja ewig immer alles definieren. da finde ich die variante mit der schleife noch am einfachsten.


    In meiner map ^^ ah ok aber bitte nenn mir vorteile an der variante mit der schleife.


    Ist das wirklich umständlicher ?
    Kleines Beispiel:


    new textob[10];


    textob[0] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[1] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[2] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[3] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[4] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[5] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[6] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[7] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[8] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);
    textob[9] = CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000);


    for(new i; i < sizeof(textob); ++i)SetObjectMaterial(textob[i],0,9515,"bigboxtemp1","poshground_sfw",0);


    oder meine lieblingsvariante



    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);
    SetObjectMaterial(CreateObject(19378,1359.1500, -1766.9200, 12.4800,0.0000, 90.0000, 90.0000),0,9515,"bigboxtemp1","poshground_sfw",0);


    jetzt mit den defines weg gelassen also wenn du willst können wir ja gern eine kleine challenges machen wer schneller ist bei 1000 Objekten ^^
    also ich seh bei mir keine umständlichkeit sondern nur Zeitersparniss und einen geringeren Ram verbrauch.
    Klar ist jetzt für die ungewohnt jedoch wird das Material des Objektes auch nicht schneller ersetzt es dauert eher noch länger ^^

  • Ich rede davon, wenn man mehr als nur eine Textur verwenden will. Ich für meinen Teil verwende in meinem Maps bis zu 6 verschiedene Texturen.
    Mal davon ab, mach ich es mit der Schleife eh anders. Von daher würdest du die Challange verlieren. :D


    So z.B.
    new i = 0;
    new wand[5];
    wand[i++] = CreateObject(18766, 2479.28, -1523.81, 21.27, 0.00, 0.00, 90.00);
    wand[i++] = CreateObject(18766, 2479.28, -1533.81, 21.27, 0.00, 0.00, 90.00);
    wand[i++] = CreateObject(18766, 2479.28, -1543.81, 21.27, 0.00, 0.00, 90.00);
    wand[i++] = CreateObject(18766, 2467.28, -1548.53, 21.27, 0.00, 0.00, 0.00);
    wand[i++] = CreateObject(18766, 2457.28, -1548.54, 21.27, 0.00, 0.00, 0.00);
    for(new l = 0; l < 5; l++)
    {
    SetObjectMaterial(wand[l], 0, 5709, "melrose17_lawn", "brwall_128", 0);
    }


    Nein ich will mich nicht mit dir Streiten. Das soll nur ne einfache Diskusion sein. ;)


  • Nein ich möchte nicht mit dir streiten und auch nun die diskussionen beenden mit dem Satz , das es jeder so machen sollte wie er es für richtig hält
    und die anderen Punkt außen vor lässt.


    Zu dem ^^ mach ich mir das ganz einfach ich ersetze
    CreateObject(18766
    mit
    SetObjectMaterial(CreateObject(18766


    und


    ;


    mit


    , 0, 5709, "melrose17_lawn", "brwall_128", 0);


    jedoch habe ich bei mir auch die objekte untereinander meist . Ordnung ist das halbe leben ^^