Vit_ amin
Добрая душа
- Сообщения
- 1,525
- Реакции
- 688
Всем доброго времени суток. Встал в тупик при написании плагин.
Вообщем суть.
Имеются игровые BSP карты формата:
где N - цифры/числа
В maplist.txt данный список у меня всегда начинается по следующему формату:
где * - название уровня
Мне необходимо, чтобы плагин отрывал из названия карты всё, кроме cN и искал уже это через StrContains с maplist.txt
То есть (пример):
maplist.txt
Например, я играю на карте c1m3_map3 - необходимо удалить все, кроме c1, и сравнить это с maplist.txt
Я всё написал кроме того, как удалить эту часть и оставить cN - я же не знаю какая цифра будет там и так далее.
Если объяснил не совсем правильно, могу перефразировать попробовать :D
Код (отсутствует проверка, о которой писал выше, так как не знаю, как её сделать, можете через Регулярные выражения !?):
Вообщем суть.
Имеются игровые BSP карты формата:
PHP:
cNmN_*
где N - цифры/числа
В maplist.txt данный список у меня всегда начинается по следующему формату:
PHP:
cNm1_*
где * - название уровня
Мне необходимо, чтобы плагин отрывал из названия карты всё, кроме cN и искал уже это через StrContains с maplist.txt
То есть (пример):
maplist.txt
C-подобный:
c1m1_map1
c6m1_map2
c2m1_map4
c3m1_map3
cXmY_mapZ
Например, я играю на карте c1m3_map3 - необходимо удалить все, кроме c1, и сравнить это с maplist.txt
Я всё написал кроме того, как удалить эту часть и оставить cN - я же не знаю какая цифра будет там и так далее.
Если объяснил не совсем правильно, могу перефразировать попробовать :D
Код (отсутствует проверка, о которой писал выше, так как не знаю, как её сделать, можете через Регулярные выражения !?):
PHP:
for (;;)
{
if (hMapList.ReadLine(szBuffer, sizeof(szBuffer)))
{
ReplaceString(szBuffer, sizeof(szBuffer), "\n", "");
if (bMapFound)
{
strcopy(g_szMapName, sizeof(g_szMapName), szBuffer);
bMapFound = false;
break;
}
if (strcmp(g_szMapName, szBuffer, false) == 0)
{
bMapFound = true;
}
}
else
{
hMapList.Seek(0, SEEK_SET);
continue;
}
}
if (SplitString(g_szMapName, "m1_", szBuffer, sizeof(szBuffer)) != -1)
{
ReplaceString(szBuffer, sizeof(szBuffer), "c", "C");
char szAnnounce[192];
Format(szBuffer, sizeof(szBuffer), "CampaignName_%s", szBuffer);
FormatEx(szAnnounce, sizeof(szAnnounce), "%s%t \x05%t\x01.", MESSAGE_PREFIX, "ChangeMission", szBuffer);
PrintToChatAll("%s", szAnnounce);
}
else
{
SetFailState("Error detection next campaign level ...");
}
delete hMapList;
Сообщения автоматически склеены:
Последнее редактирование: