Loop durch 2D Array + UpdateDynamic3DTextLabelText

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,


    die Errorcodes (warning 213: tag mismatch) sind im Code (stock Funktion) in der entsprechenden Zeile kommentiert. Ich möchte durch den Array GW_Name loopen, um Zeilen beim Updaten jedes einzelnen Labels zu sparen. Nun möchte das ganze nicht so, wie ich möchte.


    Funktion
    stock UpdateLanguageLabels(playerid)
    {
    if(pInfo[playerid][Language] == LANGUAGE_DE)
    {
    UpdateDynamic3DTextLabelText(TeleportLabel[16], C_PURPLE, "» Teleport «\n"#C_WHITE_E"San Fierro Denkmal\n/SFD");
    UpdateDynamic3DTextLabelText(TeleportLabel[23], C_PURPLE, "» Teleport «\n"#C_WHITE_E"The Big Ear Satellit Station\n/Satellit");
    UpdateDynamic3DTextLabelText(TeleportLabel[24], C_PURPLE, "» Teleport «\n"#C_WHITE_E"Verlassener Flughafen\n/VF");
    UpdateDynamic3DTextLabelText(TeleportLabel[27], C_PURPLE, "» Teleport «\n"#C_WHITE_E"Geistersee\n/GS");

    for(new i = 0; i < sizeof(GW_Name); i++)
    {
    UpdateDynamic3DTextLabelText(GW_Name[i][0], C_ORANGE, GW_Name[i][1]); //warning 213: tag mismatch
    }
    }
    if(pInfo[playerid][Language] == LANGUAGE_EN)
    {
    UpdateDynamic3DTextLabelText(TeleportLabel[16], C_PURPLE, "» Teleport «\n"#C_WHITE_E"San Fierro Memorial\n/SFM");
    UpdateDynamic3DTextLabelText(TeleportLabel[23], C_PURPLE, "» Teleport «\n"#C_WHITE_E"The Big Ear Satellite Station\n/Satellite");
    UpdateDynamic3DTextLabelText(TeleportLabel[24], C_PURPLE, "» Teleport «\n"#C_WHITE_E"Abandoned Airport\n/AA");
    UpdateDynamic3DTextLabelText(TeleportLabel[27], C_PURPLE, "» Teleport «\n"#C_WHITE_E"Ghost Lake\n/GL");


    for(new i = 0; i < sizeof(GW_Name); i++)
    {
    UpdateDynamic3DTextLabelText(GW_Name[i][1], C_ORANGE, GW_Name[i][0]); //warning 213: tag mismatch
    }
    }
    return 1;
    }


    Array
    new GW_Name[83][63] =
    {
    {"GlenPark", "Glen Park"},
    {"Obere Grove", "Upper Grove"},
    {"Grove Street", "Grove Street"},
    {"Waschanlage", "Car Wash"},
    {"LSPD Hauptquartier", "LSPD Headquarters"},
    {"LS Medical Center", "LS Medical Center"},
    {"Riesenrad", "Ferris Wheel"},
    {"Vinewood", "Vinewood"},
    {"Filmstudios", "Filmstudios"},
    {"Tankstelle", "Fuel Station"},
    {"Unity Station", "Unity Station"},
    {"Burger Shot LS Nord", "Burger Shot LS North"},
    {"LS Parkplatz", "LS Parking Lot"},
    {"Walk of Fame", "Walk of Fame"},
    {"LS Einkaufszentrum", "LS Mall"},
    {"LS Strand Kanäle", "LS Beach Canals"},
    {"The Pig Ben Bordell", "The Pig Pen Brothel"},
    {"Gebäudekomplex", "Complex of Buildings"},
    {"Modeecke", "Fashion Corner"},
    {"Leuchtturm", "Lighthouse"},
    {"Vinewood Barracken", "Vinewood Barracks"},
    {"LS Nord-Ost Gebäude", "LS North-East Building"}, //could use a rename
    {"Zug Barracken", "Tram Barracks"},
    {"LS Flughafen", "LS Airport"},
    {"Villa", "Mansion"},
    {"Ammunation LS Kanäle", "Ammunation LS Canals"},
    {"Freizeitzentrum", "Leisure Center"},
    {"LS Docks Kanäle", "LS Docks Canals"},
    {"LS Südliche Brücke", "LS Southside Bridge"},
    {"LS Cluckin' Bell Quartier", "LS Cluckin' Bell Quarters"},
    {"LS Docks", "LS Docks"},
    {"LS Süd-Ost Strandquartier", "LS South-East Beach Quarters"},
    {"SF Baustelle", "SF Building Lot"},
    {"Wang Cars", "Wang Cars"},
    {"SF Lagerhaus Areal", "SF Warehouse Area"},
    {"SF Baseball Quartier", "SF Baseball Quarters"},
    {"Missionary Hill", "Missionary Hill"},
    {"Foster Valley", "Foster Valley"},
    {"SF Flughafen", "SF Airport"},
    {"SF Industrie", "SF Industrial"},
    {"SF Hafenseite", "SF Harborside"},
    {"SF Schiff", "SF Ship"},
    {"Hippiequartier", "Hippie Quarters"},
    {"SF Westliche Strandquartiere", "SF West Beach Quarters"},
    {"SF Hotel", "SF Hotel"},
    {"SFPD Hauptquartier", "SFPD Headquarters"},
    {"SF Regierung", "SF Government"},
    {"SF Medical Center", "SF Medical Center"},
    {"SF Nord-West Quartiere", "SF North-West Quarters"},
    {"Chine Town", "China Town"},
    {"Schlangenstraße", "Snake Road"},
    {"Pier 69", "Pier 69"},
    {"Otto's Autos", "Otto's Cars"},
    {"SF Finanzinstitut", "SF Financial Institute"},
    {"SF Nördliche Quartiere", "SF North Quarters"},
    {"Gant Bridge Restaurant und Museum", "Gant Bridge Diner and Museum"},
    {"Bayside", "Bayside"},
    {"Whetstone - 'Small Farm'", "Whetstone - 'Small Farm'"},
    {"Whetstone - 'Grand Farm'", "Whetstone - 'Grand Farm'"},
    {"Hügelgipfel Farm", "Hilltop Farm"},
    {"Come-A-Lot", "Come-A-Lot"},
    {"The High Roller", "The High Roller"},
    {"The Visage", "The Visage"},
    {"LVPD Hauptquartier", "LVPD Headquarters"},
    {"LV Parkhaus", "LV Parkhouse"},
    {"LV Große Baustelle", "LV Grand Building Lot"},
    {"Vier-Treppen-Gebäude", "Four Stairs Building"},
    {"LV Süd-Westliche Baustelle", "LV Building Lot South-West"},
    {"LV Flughafen Frachtdepot", "LV Airport Freight Depot"},
    {"LV Nördliche Quartiere", "LV North Quarters"},
    {"LV Östliche Quartiere", "LV East Quarters"},
    {"LV Kirche", "LV Church"},
    {"Redsands Xoomer Distrikt", "Redsands Xoomer District"},
    {"Sumo", "Sumo"},
    {"LV Motel", "LV Motel"},
    {"Whitewood Estates", "Whitewood Estates"},
    {"Ölfelder Industrie", "Oil Fields Industrial"},
    {"Fort Carson", "Fort Carson"},
    {"Satellit Station", "Satellite Station"},
    {"Area 51", "Area 51"},
    {"Las Payasadas", "Las Payasadas"},
    {"Tierra Robada Gebäude", "Tierra Robada Building"},
    {"Geisterstadt", "Ghost Town"}
    };

  • Wie hast du denn dein TextLabel definiert?
    UpdateDynamic3DTextLabelText(GW_Name[i][0], C_ORANGE, GW_Name[i][1]);
    Das erste ist der TextLabel, und das ist dann ein String, kann nicht :P

  • Das Ding ist ja, dass ich nur diesen einen String updaten möchte. D:


    Die Label sind mit "Text3D:GangZoneLabel[MAX_GANG_ZONES];" definiert. Bedeutet dann einfach ein "GangZoneLabel[i] = " davor packen. Soweit so gut. (<= Quatsch.)


    Der String sieht folgendermaßen aus: "» GANG ZONE «\n"#C_WHITE_E"ID: %i\n%s", i, GW_Name[i][0]
    Ich möchte nur GW_Name updaten und nicht i.


    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    Es kompiliert nun.
    stock UpdateLanguageLabels(playerid)
    {
    if(pInfo[playerid][Language] == LANGUAGE_DE)
    {
    UpdateDynamic3DTextLabelText(TeleportLabel[16], C_PURPLE, "» Teleport «\n"#C_WHITE_E"San Fierro Denkmal\n/SFD");
    UpdateDynamic3DTextLabelText(TeleportLabel[23], C_PURPLE, "» Teleport «\n"#C_WHITE_E"The Big Ear Satellit Station\n/Satellit");
    UpdateDynamic3DTextLabelText(TeleportLabel[24], C_PURPLE, "» Teleport «\n"#C_WHITE_E"Verlassener Flughafen\n/VF");
    UpdateDynamic3DTextLabelText(TeleportLabel[27], C_PURPLE, "» Teleport «\n"#C_WHITE_E"Geistersee\n/GS");

    for(new i = 0; i < sizeof(GW_Name); i++)
    {
    new string[128];
    format(string, sizeof(string), "» GANG ZONE «\n"#C_WHITE_E"ID: %i\n%s", i, GW_Name[i][0]);
    UpdateDynamic3DTextLabelText(GangZoneLabel[i], C_ORANGE, string);
    }
    }
    if(pInfo[playerid][Language] == LANGUAGE_EN)
    {
    UpdateDynamic3DTextLabelText(TeleportLabel[16], C_PURPLE, "» Teleport «\n"#C_WHITE_E"San Fierro Memorial\n/SFM");
    UpdateDynamic3DTextLabelText(TeleportLabel[23], C_PURPLE, "» Teleport «\n"#C_WHITE_E"The Big Ear Satellite Station\n/Satellite");
    UpdateDynamic3DTextLabelText(TeleportLabel[24], C_PURPLE, "» Teleport «\n"#C_WHITE_E"Abandoned Airport\n/AA");
    UpdateDynamic3DTextLabelText(TeleportLabel[27], C_PURPLE, "» Teleport «\n"#C_WHITE_E"Ghost Lake\n/GL");


    for(new i = 0; i < sizeof(GW_Name); i++)
    {
    new string[128];
    format(string, sizeof(string), "» GANG ZONE «\n"#C_WHITE_E"ID: %i\n%s", i, GW_Name[i][1]);
    UpdateDynamic3DTextLabelText(GangZoneLabel[i], C_ORANGE, string);
    }
    }
    return 1;
    }


    Wenn ich nun ingame gehe und update steht einmal z.B. "Zug Barracken" und "ug Barracken" da. Also läuft da noch nicht alles.


    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    Des Rätsels Lösung ist ein 3D Array.

    2 Mal editiert, zuletzt von Manyula ()