HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #831  
Старый 08.04.2016, 22:02
zikekazil
Новичок
Регистрация: 17.03.2016
Сообщений: 7
С нами: 5345406

Репутация: 0
По умолчанию

Есть такая строка:

Код:





Код:
[Рация] Ivan_Ivanov[17]: тест


Как используя RegEx можно извлечь и ник, и сообщение (где "тест")? Перепробовал все, но чет не могу сам дойти до этого.
 
Ответить с цитированием

  #832  
Старый 08.04.2016, 22:09
Dydaev
Новичок
Регистрация: 26.11.2015
Сообщений: 7
С нами: 5506252

Репутация: 0
По умолчанию

1. Как сделать админ чекер в m0d_sa?
 
Ответить с цитированием

  #833  
Старый 09.04.2016, 00:35
2Shae
Участник форума
Регистрация: 14.05.2014
Сообщений: 149
С нами: 6314183

Репутация: 68
По умолчанию

Цитата:
Сообщение от Dydaev  

1. Как сделать админ чекер в m0d_sa?
https://www.blast.hk/threads/1549/
 
Ответить с цитированием

  #834  
Старый 09.04.2016, 15:57
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Цитата:
Сообщение от zikekazil  

Есть такая строка:

Код:





Код:
[Рация] Ivan_Ivanov[17]: тест


Как используя RegEx можно извлечь и ник, и сообщение (где "тест")? Перепробовал все, но чет не могу сам дойти до этого.
Код:





Код:
([\\w]+)\\[(\\d+)\\]\\: ([^$]+)


Код:





Код:
Result of search: 1 match(-es)
Match #0: Ivan_Ivanov[17]: test
Match #1: Ivan_Ivanov
Match #2: 17
Match #3: test
 
Ответить с цитированием

  #835  
Старый 09.04.2016, 16:05
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Как по мне она у тебя кривая, легенд. Ты заюзал 2 слеша, а это уже ты ишешь символ \, а не слова. Так же такая регулярка не сможешь пропустить ники с символами.

Такие будут получше ловить

^\[Рация\] (.+)\[(\d+)\]\: ([А-Яа-я]+)$

^\[Рация\] (.+)\[(\d+)\]\: (.+)$
 
Ответить с цитированием

  #836  
Старый 09.04.2016, 16:06
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Хз как у тебя, но у меня VS жалуется на то, что без двух бэкслэшей.
 
Ответить с цитированием

  #837  
Старый 09.04.2016, 16:19
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Ставишь 2013 ВС с апдейтом 5 и не паришься.
 
Ответить с цитированием

  #838  
Старый 09.04.2016, 18:05
zikekazil
Новичок
Регистрация: 17.03.2016
Сообщений: 7
С нами: 5345406

Репутация: 0
По умолчанию

спасибо, сделал как-то так:

Код:





Код:
std::string chatm = "[Рация] Ivan_Ivanov[17]: тест";
std::smatch chatres;
if (std::regex_match(chatm, chatres, std::regex(R"(^\[Рация\] (.+)\[(\d+)\]\: (.+)$)")))
     SF->getSAMP()->getChat()->AddChatMessage(-1, "Ник: %s", chatres[1].str());


но после проверки всего этого в игре, происходит зависание. Смог вывести только "chatres" целиком, а не один его элемент. Почему так?
 
Ответить с цитированием

  #839  
Старый 09.04.2016, 18:56
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

str().c_str() заюзай
 
Ответить с цитированием

  #840  
Старый 11.04.2016, 17:07
Dydaev
Новичок
Регистрация: 26.11.2015
Сообщений: 7
С нами: 5506252

Репутация: 0
По умолчанию

Помогите исправить код, всё объявлено и код работает, но при активации телепортирует под землю и не замирает, то есть, если не поставить метку - в чат пишет, но самой телепортации не происходит, войд ниже.

Код:





Код:
void cheat_handle_coordmaster()

{

static int time=0;

if(cheat_state->_generic.coordmaster == 1) {

if(GetTickCount()-set.coord_time > time) {

if (*(int *)0xBA6774 != 0)

{

float mapPos[3];

for ( int i = 0; i GetWorld()->FindGroundZForPosition( mapPos[0], mapPos[1] ) + 2.0f;

float cpos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ};

char opa=0;

if(cpos[0] > mapPos[0]) {

if(cpos[0]-mapPos[0] > set.coord_distance) cpos[0] -= set.coord_distance;

else {

cpos[0] = mapPos[0];

opa++;

}

} else {

if(mapPos[0]-cpos[0] > set.coord_distance) cpos[0] += set.coord_distance;

else {

cpos[0] = mapPos[0];

opa++;

}

}

if(cpos[1] > mapPos[1]) {

if(cpos[1]-mapPos[1] > set.coord_distance) cpos[1] -= set.coord_distance;

else {

cpos[1] = mapPos[1];

opa++;

}

} else {

if(mapPos[1]-cpos[1] > set.coord_distance) cpos[1] += set.coord_distance;

else {

cpos[1] = mapPos[1];

opa++;

}

}

if(opa == 2) {

cpos[2] = mapPos[2];

cheat_state->_generic.coordmaster = 0;

GTAfunc_TogglePlayerControllable(0);

GTAfunc_LockActor(0);

}

else cpos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( cpos[0], cpos[1] )-20;

cheat_teleport(cpos,0);

}

}

} else {

addMessageToChatWindow("Поставьте метку на карте!");

cheat_state->_generic.coordmaster = 0;

}

time = GetTickCount();

}

}

return;

}
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.