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

  #1  
Старый 08.05.2018, 17:13
Revalto
Постоянный
Регистрация: 13.02.2016
Сообщений: 532
С нами: 5392682

Репутация: 93


По умолчанию

Вообщем, проблема такая. RegEx не может найти ник в чате. Что не так?

Код:





Код:
std::string chatm = msg;
        std::smatch chatres;
        std::regex poisk(R"(Samuel_Revalto)");
        if (std::regex_match(chatm, chatres, poisk))
            SF->getSAMP()->getChat()->AddChatMessage(-1, "Найдено");
        SF->getSAMP()->getChat()->AddChatMessage(-1, "%s", poisk);


Пробовал даже выводить его в AddChatMessage, на что я получал это:



Пример сообщения:

Администратор Samuel_Revalto[235] для Paolo_Boone[133]: Транслит офф
 
Ответить с цитированием

  #2  
Старый 08.05.2018, 17:20
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

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

Вообщем, проблема такая. RegEx не может найти ник в чате. Что не так?
Дай всю строку.
 
Ответить с цитированием

  #3  
Старый 09.05.2018, 14:25
Revalto
Постоянный
Регистрация: 13.02.2016
Сообщений: 532
С нами: 5392682

Репутация: 93


По умолчанию

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

Дай всю строку.
Спасибо, я забыл, что создавал подобную тему в SF API, вы мне тогда ответили, все прекрасно работает!

Код:





Код:
#include 
#include 
using namespace std;

bool CALLBACK incomingRPC(stRakNetHookParams *params) {
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage) {
        DWORD        len, color;
        char        msg[144];
        BitStream *bs = params->bitStream;
        bs->Read(color);
        bs->Read(len);
        bs->Read(msg, len);
        msg[len] = '\0';
        string str = msg;
        try {
            if (color == 0xFF5030AA &&
                regex_search(msg, res, regex(R"(Администратор (.*) выдал бан чата игроку)"))){
                SF->getSAMP()->getChat()->AddChatMessage(-1, "%s", res[1].str().c_str());
            }
        }
        catch (const exceptions &e){
            SF->Log("%s | %s", __FUCTION__, e.what());
        }
    };
    return true; // успешно завершаем обработку RPC.
};


Цитата:
Сообщение от Vlad Horii  

C++:





Код:
regex_search

Уже нашел ответ...
 
Ответить с цитированием

  #4  
Старый 08.05.2018, 18:30
Vlad Horii
Постоянный
Регистрация: 16.07.2017
Сообщений: 310
С нами: 4645623

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

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

Вообщем, проблема такая. RegEx не может найти ник в чате. Что не так?

Код:





Код:
std::string chatm = msg;
        std::smatch chatres;
        std::regex poisk(R"(Samuel_Revalto)");
        if (std::regex_match(chatm, chatres, poisk))
            SF->getSAMP()->getChat()->AddChatMessage(-1, "Найдено");
        SF->getSAMP()->getChat()->AddChatMessage(-1, "%s", poisk);


Пробовал даже выводить его в AddChatMessage, на что я получал это:



Пример сообщения:
Администратор Samuel_Revalto[235] для Paolo_Boone[133]: Транслит офф
C++:





Код:
regex_search
 
Ответить с цитированием

  #5  
Старый 13.05.2018, 18:29
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

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

В чем тут проблема?

При нажатии клавиши "1", "2" или "3" должна эмулироватся игровая клавиша под номером "1", которая заставляет игрока бежать вперед/назад.

Писал код на CLEO - все работает безупречно, персонаж бежит.

Писал код на SF API, используя SF->getGame()->emulGTAKey() - персонаж не бежит

Писал код на SF API, используя SF->getCLEO()->callOpcode() - персонаж не бежит

Проверял, что функции SF API вызываются, выводя в чат сообщение перед и после их вызова - сообщения в чат выводились, но игрок так же не бежал.

Код CLEO:

CLEO:





Код:
while
true
wait
0
key_down
49
jf
continue
0B56:
set_game_key
1
state -
128
end


Код SF API:

C++:





Код:
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
init
)
{
if
(
SF
->
getGame
(
)
->
isKeyDown
(
50
)
)
SF
->
getGame
(
)
->
emulateGTAKey
(
1
,
-
128
)
;
if
(
SF
->
getGame
(
)
->
isKeyDown
(
51
)
)
SF
->
getCLEO
(
)
->
callOpcode
(
"0B56: set_game_key 1 state -128"
)
;
return
;
}
if
(
!
init
)
{
if
(
GAME
==
nullptr
||
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
||
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
init
=
true
;
}
}
 
Ответить с цитированием

  #6  
Старый 15.05.2018, 17:55
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

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

Вопрос, почему зависает при использовании рендера у Windows XP? На 7, 8, 10 всё нормально работает, а на XP - зависание.
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

Потому, что ХП - уже мертвая система. Забей на её поддержку.
 
Ответить с цитированием

  #8  
Старый 15.05.2018, 23:34
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

Есть у кого функция удаления пикапов?
 
Ответить с цитированием

  #9  
Старый 16.05.2018, 16:55
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

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

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

Есть у кого функция удаления пикапов?
Эмулируй RPC_DestroyPickup
 
Ответить с цитированием

  #10  
Старый 16.05.2018, 22:48
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

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

Эмулируй RPC_DestroyPickup
Хорошо , скинь мне эмуляцию не на SF.
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.