Szerző Téma: Sortörés a szóköznél.  (Megtekintve 2146 alkalommal)

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Sortörés a szóköznél.
« Dátum: 2013. február 26. - 17:12:36 »
+3 Show voters
Hello. Már biztos ismeritek ezt a kódot, ami ha túl hosszú egy szöveg, megtöri a sorokat, és külön sorba írja a dolgokat. Visszatérõ probléma volt, hogy beletört a szavakba, és így elég érthetetlenné sikeredett a szöveg. Ez a kód arra jó, hogy ez kikeresi, hogy hol a szóköz, és úgy töri meg, így biztos nem vág bele a szavakba.
UPDATE: Már a hex kódok is megmaradnak! Tehát nincs az, hogy a darabolás miatt kimaradnának.
Kód: (Mód elejére kell beilleszteni, ha nem menne, include-ba berakom.)
 
#define MIN_LENGHT 128
#define MAX_LENGHT 256
stock FindLastHexColor(string[])
{
if(strfind(string, \"{\", true) != -1 && strfind(string, \"}\", true) != -1)
{
    new pos[4];
        for(new i; i<strlen(string); i++)
        {
            pos[2] = strfind(string,\"{\",true,pos[1]);
            pos[3] = strfind(string,\"}\",true,pos[2]);
            if(pos[2] >= pos[0] && pos[2]+7 == pos[3])
            {
                pos[0] = pos[2];
                pos[1] = pos[3]+1;
   }
}
new ret[16];
strmid(ret,string,pos[0],pos[1]);
return ret;
}
new ret[16];
format(ret,16,\"\");
return ret;
}
stock SendClientMessageEx(playerid,color,string[])
{
    new pos[2] = 0;
    new msg[128];
    if(strlen(string) > MIN_LENGHT)
    {
    if(strfind(string, \" \", true) != -1)
    {
        for(new i; i<strlen(string); i++)
        {
      pos[1] = strfind(string,\" \",true,pos[0]);
      if(pos[1] > pos[0] && pos[1] < MIN_LENGHT)
      {
         pos[0] = pos[1]+1;
      }
        }
        strmid(msg, string, 0, pos[0]);
        new last[16];
   format(last,16,FindLastHexColor(msg));
        SendClientMessage(playerid,color,msg);
        strmid(msg, string, pos[0], MAX_LENGHT);
            format(msg,sizeof(msg),\"%s%s\",last,msg);
        SendClientMessage(playerid,color,msg);
       
    }
    else
    {
        strmid(msg, string, 0, MIN_LENGHT);
        SendClientMessage(playerid,color,msg);
        new last[16];
   format(last,16,FindLastHexColor(msg));
        strmid(msg, string, MIN_LENGHT, MAX_LENGHT);
        format(msg,sizeof(msg),\"%s%s\",last,msg);
        SendClientMessage(playerid,color,msg);
    }
}
    else SendClientMessage(playerid,color,string);
    return 1;
}
#define SendClientMessage SendClientMessageEx
stock SendClientMessageToAllEx(color,string[])
{
    new pos[2] = 0;
    new msg[128];
    if(strlen(string) > MIN_LENGHT)
    {
    if(strfind(string, \" \", true) != -1)
    {
        for(new i; i<strlen(string); i++)
        {
      pos[1] = strfind(string,\" \",true,pos[0]);
      if(pos[1] > pos[0] && pos[1] < MIN_LENGHT)
      {
         pos[0] = pos[1]+1;
      }
        }
        strmid(msg, string, 0, pos[0]);
        new last[16];
   format(last,16,FindLastHexColor(msg));
        SendClientMessageToAll(color,msg);
        strmid(msg, string, pos[0], MAX_LENGHT);
        format(msg,sizeof(msg),\"%s%s\",last,msg);
        SendClientMessageToAll(color,msg);
    }
    else
    {
        strmid(msg, string, 0, MIN_LENGHT);
        new last[16];
        format(last,16,FindLastHexColor(msg));
        SendClientMessageToAll(color,msg);
        strmid(msg, string, MIN_LENGHT, MAX_LENGHT);
        format(msg,sizeof(msg),\"%s%s\",last,msg);
        SendClientMessageToAll(color,msg);
    }
}
    else SendClientMessageToAll(color,string);
    return 1;
}
#define SendClientMessageToAll SendClientMessageToAllEx
« Utoljára szerkesztve: 2013. február 27. - 14:34:20 írta Sramm »

Nem elérhető Cappsy

  • Adminisztrátor
  • 2754
    • Profil megtekintése
Sortörés a szóköznél.
« Válasz #1 Dátum: 2013. február 26. - 17:15:53 »
0 Show voters
Meglestem szépen össze van rakva

Sortörés a szóköznél.
« Válasz #2 Dátum: 2013. február 26. - 18:08:01 »
0 Show voters
Király! +

Nem elérhető Sramm

  • 596
    • Profil megtekintése
Sortörés a szóköznél.
« Válasz #3 Dátum: 2013. február 27. - 14:35:12 »
0 Show voters
UPDATE: Már a hex kódok is megmaradnak! Tehát nincs az, hogy a darabolás miatt kimaradnának.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal