В общем есть 2 строки текстдрава, в ней перечисляются числа. Проблема в том, что строки заполняются, но не отображаются в игре, вернее то отображаются, то пустое место (в большинстве своём пустое место). Что за магия?
PHP код:
const STR_LIM = 99;
new Str_ORNG [STR_LIM ] = "\t ";
new Str_WHITE [STR_LIM ] = "\t ";
enum SERVER_TEMP
{
Text:Temp_Str_ORNG ,
Text:Temp_Str_WHITE
}
new SRVTMP[SERVER_TEMP];
stock AddIdInStr(playerid, type){
new num_id;
switch (playerid)
{
case 0..9: num_id = 1;
case 10..99: num_id = 2;
case 100..999: num_id = 3;
case 1000..9999: num_id = 4;
}
static const
add_id_g [] = "~g~%d",
add_id_b [] = "~b~%d",
add_id_w [] = "~w~%d";
new add_diff = sizeof add_id_g -2 + num_id;
new num_str;
if (type == 0 || type == 2)
{
num_str = strlen (Str_ORNG);
}
else
{
num_str = strlen (Str_WHITE);
}
new diff = add_diff + num_str;
new temp_add_str [7];
if (type == 0)
{
format (temp_add_str , sizeof (temp_add_str ), add_id_g, playerid);
format (Str_ORNG, sizeof (Str_ORNG), "%s\t %s", temp_add_str , Str_ORNG);
}
else if (type == 2)
{
format (temp_add_str , sizeof (temp_add_str ), add_id_b, playerid);
format (Str_ORNG, sizeof (Str_ORNG), "%s\t %s", temp_add_str , Str_ORNG);
}
else
{
format (temp_add_str , sizeof (temp_add_str ), add_id_w, playerid);
format (Str_WHITE, sizeof (Str_WHITE), "%s\t %s", temp_add_str , Str_WHITE);
}
if (diff > STR_LIM)
{
if (type == 0 || type == 2)
{
num_str = strlen (Str_ORNG);
if (Str_ORNG[num_str-1] == 'b' || Str_ORNG[num_str-1] == 'g')
{
strdel (Str_ORNG, num_str-1-1, STR_LIM);
}
if (Str_ORNG[num_str-1] == '~')
{
if (Str_ORNG[num_str-1-1] == ' ')
{
strdel (Str_ORNG, num_str-1, STR_LIM);
}
}
}
else
{
num_str = strlen (Str_WHITE);
if (Str_WHITE[num_str-1] == 'w')
{
strdel (Str_WHITE, num_str-1-1, STR_LIM);
}
if (Str_WHITE[num_str-1] == '~')
{
if (Str_WHITE[num_str-1-1] == ' ')
{
strdel (Str_WHITE, num_str-1, STR_LIM);
}
}
}
}
TextDrawSetString(SRVTMP[Temp_Str_WHITE], Str_WHITE);
TextDrawSetString(SRVTMP[Temp_Str_ORNG], Str_ORNG);
printf ("O - %s", Str_ORNG);
printf ("W - %s", Str_WHITE);
return true;
}