%s in SendClientMessage
#7

I did not make this. It was provided to me by Emmet_.

SendClientMessageEx(playerid, -1, "%s is a derp.",pName(playerid));

pawn Код:
stock SendClientMessageEx(playerid, color, const string[], { Float, _ }: ...)
{
    new
        tempString[128],
        parts[64],
        tempLen,
        totalFound,
        i,
        j,
        t
    ;
    memcpy(tempString, string, _, (strlen(string) + 1) * 4);

    for(i = 0; tempString[i] != 0; ++i)
    {
        for(j = 0; parts[j] != 0; ++j)
        {
            parts[j] = '\0';
        }
        switch(tempString[i])
        {
            case 's', 'S', 'i', 'I', 'd', 'D', 'f', 'F', 'c', 'C', 'x', 'X', 'b', 'B':
            {
                if(tempString[(i > 0) ? (i - 1) : (i)] != '%')
                {
                    continue;
                }
                else if(tempString[(i > 0) ? (i - 1) : (i)] == '%')
                {
                    ++totalFound;

                    if(tempString[i] == 's' || tempString[i] == 'S')
                    {
                        for(j = 0; getarg(totalFound + 2, j) != 0; ++j)
                        {
                            parts[j] = getarg(totalFound + 2, j);
                        }
                    }
                    switch(tempString[i])
                    {
                        case 'd', 'D', 'i', 'I': format(parts, sizeof(parts), "%d", getarg(totalFound + 2));
                        case 'f', 'F': format(parts, sizeof(parts), "%.02f", getarg(totalFound + 2));
                        case 'c', 'C': format(parts, sizeof(parts), "%c", getarg(totalFound + 2));
                        case 'x', 'X': format(parts, sizeof(parts), "%x", getarg(totalFound + 2));
                        case 'b', 'B': format(parts, sizeof(parts), "%b", getarg(totalFound + 2));
                    }
                    tempLen = strlen(parts);

                    if(tempLen > 2)
                    {
                        for(j = 0; j != (tempLen - 2); ++j)
                        {
                            strins(tempString, "_", (i + 1));
                        }
                        for(j = 0, t = 0; tempString[j] != 0; ++j)
                        {
                            if(j >= (i - 1) && t < tempLen)
                            {
                                tempString[j] = parts[t];
                                ++t;
                            }
                        }
                        continue;
                    }
                    else if(tempLen == 2)
                    {
                        for(j = 0, t = 0; tempString[j] != 0; ++j)
                        {
                            if(j == i || j == (i - 1))
                            {
                                tempString[j] = parts[t];
                                ++t;
                            }
                        }
                        continue;
                    }
                    else if(tempLen < 2)
                    {
                        strdel(tempString, i, i+1);
                        for(j = 0, t = 0; tempString[j] != 0; ++j)
                        {
                            if(j == (i - 1))
                            {
                                tempString[j] = parts[t];
                                ++t;
                            }
                        }
                        continue;
                    }
                }
            }
        }
    }
    if(playerid != INVALID_PLAYER_ID)
        SendClientMessage(playerid, color, tempString);
    else
        SendClientMessageToAll(color, tempString);
    return 1;
}
Reply


Messages In This Thread
%s in SendClientMessage - by Dan.. - 13.01.2013, 09:18
Re: %s in SendClientMessage - by Kwarde - 13.01.2013, 09:49
Re: %s in SendClientMessage - by CaHbKo - 13.01.2013, 10:24
Re: %s in SendClientMessage - by TheArcher - 13.01.2013, 13:06
Re: %s in SendClientMessage - by Dan.. - 13.01.2013, 13:41
Re: %s in SendClientMessage - by TheArcher - 13.01.2013, 14:11
Re: %s in SendClientMessage - by Skyrise - 16.01.2013, 02:34
Re: %s in SendClientMessage - by mastermax7777 - 16.01.2013, 05:03
Re: %s in SendClientMessage - by Neil. - 16.01.2013, 07:05
Re: %s in SendClientMessage - by RajatPawar - 16.01.2013, 07:11
Re: %s in SendClientMessage - by leong124 - 16.01.2013, 08:13
Re: %s in SendClientMessage - by Kwarde - 16.01.2013, 12:20
Re: %s in SendClientMessage - by kaisersouse - 16.01.2013, 12:43
Re: %s in SendClientMessage - by leong124 - 16.01.2013, 13:59
Re: %s in SendClientMessage - by liquor - 22.01.2013, 20:12
Re: %s in SendClientMessage - by RootKiller - 22.01.2013, 21:02
Re: %s in SendClientMessage - by Basssiiie - 22.01.2013, 22:03
Re: %s in SendClientMessage - by TheArcher - 22.01.2013, 22:29
Re: %s in SendClientMessage - by leong124 - 23.01.2013, 06:54
Re: %s in SendClientMessage - by Basssiiie - 23.01.2013, 21:40
Re: %s in SendClientMessage - by Dan.. - 24.01.2013, 14:25
Re: %s in SendClientMessage - by leong124 - 24.01.2013, 15:10

Forum Jump:


Users browsing this thread: 6 Guest(s)