Verkürzen und verbessern

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
  • Hey Com,


    Ist es Möglich diese Formatierung zu verkürzen?


    ocmd:handy(playerid,params[])
    {
    new handynummer_head[128], maindata[600], buffer[64];
    format(handynummer_head,sizeof(handynummer_head),"Appliaktionenmenü\t|\t%i", PlayerInfo[playerid][Handynummer]);


    if(PlayerApps[playerid][Kalender] == true)
    {
    format(buffer,sizeof(buffer),"Kalender | Installiert am %s\n",PlayerApps[playerid][date_Kalender]);
    strcat(maindata,buffer);
    phonearray[0] = true;
    }
    else phonearray[0] = false;
    if(PlayerApps[playerid][Wecker] == true)
    {
    format(buffer,sizeof(buffer),"Wecker | Installiert am %s\n",PlayerApps[playerid][date_Wecker]);
    strcat(maindata,buffer);
    phonearray[1] = true;
    }
    else phonearray[1] = false;
    if(PlayerApps[playerid][Uhr] == true)
    {
    format(buffer,sizeof(buffer),"Uhr | Installiert am %s\n",PlayerApps[playerid][date_Uhr]);
    strcat(maindata,buffer);
    phonearray[2] = true;
    }
    else phonearray[2] = false;
    if(PlayerApps[playerid][Googlesuche] == true)
    {
    format(buffer,sizeof(buffer),"Google | Installiert am %s\n",PlayerApps[playerid][date_Kalender]);
    strcat(maindata,buffer);
    phonearray[3] = true;
    }
    else phonearray[3] = false;
    if(PlayerApps[playerid][Telefonbuch] == true)
    {
    format(buffer,sizeof(buffer),"Telefonbuch | Installiert am %s\n",PlayerApps[playerid][date_Telefonbuch]);
    strcat(maindata,buffer);
    phonearray[4] = true;
    }
    else phonearray[4] = false;
    if(PlayerApps[playerid][uView] == true)
    {
    format(buffer,sizeof(buffer),"uView | Installiert am %s\n",PlayerApps[playerid][date_uView]);
    strcat(maindata,buffer);
    phonearray[5] = true;
    }
    else phonearray[5] = false;
    if(PlayerApps[playerid][uNow] == true)
    {
    format(buffer,sizeof(buffer),"uNow | Installiert am %s",PlayerApps[playerid][date_uView]);
    strcat(maindata,buffer);
    phonearray[5] = true;
    }
    return ShowPlayerDialog(playerid,DIALOG_HANDY,DIALOG_STYLE_LIST,handynummer_head,maindata,"Auswählen","Enter");
    }


    Dazu wenn ich jetz nicht die App uNow habe dann ist die letzte Formatierung ja evtl uView. Das problem ist das in uView dann noch \n steht weil es ja eventuello noch ein Listitem gibt.
    Wie stelle ich jetzt ein das beim letzten Item kein \n mehr gemacht wird?


    Nico

  • if(PlayerApps[playerid][Kalender] == true)
    {
    if(strlen(maindata)) strcat(maindata, "\n");
    format(buffer,sizeof(buffer),"Kalender | Installiert am %s",PlayerApps[playerid][date_Kalender]);
    strcat(maindata,buffer);
    phonearray[0] = true;
    }
    else phonearray[0] = false;


  • Was bringt dieses strlen spätestens nach der ersten App ist maindata nichtmehr lehr?

  • Bin mir jetzt nicht ganz sicher ob das funktioniert, da es sich bei \n um ein Steuerzeichen handelt. Aber probieren kann mans ja.
    Schau einfach ob die letzten beiden Zeichen \n sind und nimm sie ggf raus.



    new checkstring[600];
    format(checkstring,600,"%s",maindata);
    new extracted[3];
    strmid(extracted,checkstring,strlen(checkstring)-2,strlen(checkstring),2);
    if(!strcmp(extracted,"\n",true,2))
    {
    format(maindata,sizeof(maindata),"%s",checkstring); // strmid verändert die source variable, gell?
    }


    Probiers mal aus, ka ob das funktioniert.


  • Ich habe da schon was gefunden nur kp ob das geht


    Kann man die if Sentences denn abkürzen denn der COmmand ist mir irgendwie zu lang