SetObjectMaterialText Problem

  • SetObjectMaterialText Problem

    Guten Morgen, bin derzeit dabei mein AD System zubearbeiten.

    Habe in einen Stock alle meine Objekte drinnen, werbung[0] ...... werbung[36].
    Am Ende

    for(new plakat = 0; plakat <= 36; plakat++) SetObjectMaterialText(werbung[plakat],"Text",0,OBJECT_MATERIAL_SIZE_256x128,"Arial",24,0,0xFFFFFFFF,0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);

    [pwn] if(strcmp(cmd, "/ad", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_RED, "FEHLER: (/ad)vertise [advert text]");
    return 1;
    }
    if ((!adds) && (SpielerInfo[playerid][pAdmin] < 1))
    {
    format(string, sizeof(string), " Bitte Versuch es Später wieder %d sekunden zwischen einer Advertisement !", (addtimer/1000));
    SendClientMessage(playerid, COLOR_GRAD2, string);
    return 1;

    }
    new payout = offset * 10;
    if(PlayerMoney[playerid] < payout)
    {
    format(string, sizeof(string), "* Du hast %d Zeichen benutzt das kostet $%d, du hast nicht genug.", offset, payout);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    return 1;
    }
    PlayerMoney[playerid] = PlayerMoney[playerid]-payout;
    SBizzInfo[7][sbTill] += payout;
    ExtortionSBiz(7, payout);
    format(string, sizeof(string), "WERBUNG: %s |Tel: %d", result,SpielerInfo[playerid][pPnumber]);
    OOCNews(TEAM_GROVE_COLOR,string);
    format(string, sizeof(string), "AdmCmd: Werbung von: %s", GetName(playerid));
    for(new i=0; i<MAX_PLAYERS; i++)
    if(SpielerInfo[pAdmin] >= 1)
    {
    SendClientMessage(i,TEAM_GROVE_COLOR,string);
    }
    format(string, sizeof(string), "Deine Werbung hatte %i Zeichen und kostete %i$.", offset, payout);
    SendClientMessage(playerid, COLOR_WHITE,string);
    if (SpielerInfo[playerid][pAdmin] < 1){SetTimer("AddsOn", addtimer, 0);adds = 0;}
    }
    return 1;
    }[/pwn]

    Wie könnte man lösen, meine Idee war, es in einer Datei zuspeichern und dann immer den Text abfragen, aber das ist nicht die schönste Variante und hoffe da kann mir jemand helfen.

    mfg
  • Ich brauche eine bessere Lösung, weil meine alte zu sehr gelaggt hat.

    Ich habe vorher den Command von /ad so modifiziert das es immer in eine Datei abgespeichert wurde und dann mit einen Timer SetObjectMaterialText(werbung[plakat],"Text",0,OBJECT_MATERIAL_SIZE_256x128,"Arial",24,0,0xFFFFFFFF,0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER); aktualliersiert. Aber das hat vorne und hinten geklappt, darum hoffe ich das jemand eine bessere Lösung kennt bzw hat.