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

  #1  
Старый 01.11.2024, 14:42
maksmanus228
Участник форума
Регистрация: 23.10.2020
Сообщений: 135
С нами: 2925217

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

добрый день, у меня есть новая функция UpdateNetwork (пока что переписанная с idb сампа) и у меня крашит игра при попытке прописать packet->data

вот код

Код:

Код:
void __fastcall SSmpPackets::UpdateNetwork(CNetGame* game, void* edx)
{
    Packet* packet = nullptr;
    uint8_t* localdata = nullptr;
    uint8_t state {};
    for(packet = game->m_pRakClient->Receive(); packet; packet = game->m_pRakClient->Receive())
    {
        localdata = packet->data;
        
        if(*localdata == 40) state = localdata[5];
        switch(state)
        {   
            case 12:
                game->Packet_AuthKey(packet);
                break;
            case 29:
            {
                AddDebugMessage("The server didn't respond. Retrying..");
                game->m_nGameState = 1;
                break;
            }
            case 31:
            {
                AddDebugMessage("The server didn't respond. Retrying..");
                break;
            }
            case 32:
                game->Packet_DisconnectionNotification(packet);
                break;
            case 33:
                game->Packet_ConnectionLost(packet);
                break;
            case 34:
                game->Packet_ConnectionSucceeded(packet);
                break;
            case 35:
                AddDebugMessage("Failed to initialize encryption.");
                break;
            case 36:
                AddDebugMessage("You are banned from this server.");
                break;
            case 37:
            {
                AddDebugMessage("Wrong server password.");
                game->m_pRakClient->Disconnect(0, 0);
                break;
            }
            case 200:
                game->Packet_VehicleSync(packet);
                break;
            case 203:
                game->Packet_AimSync(packet);
                break;
            case 206:
                game->Packet_BulletSync(packet);
                break;
            case 207:
                game->Packet_PlayerSync(packet);
                break;
            case 208:
                game->Packet_MarkersSync(packet);
                break;
            case 209:
                game->Packet_UnoccupiedSync(packet);
                break;
            case 210:
                game->Packet_TrailerSync(packet);
                break;
            case 211:
                game->Packet_PassengerSync(packet);
                break;
            default: break;
        }
        game->m_pRakClient->DeallocatePacket(packet);
    }
}



В чем может быть дело? структура Packet взяты из этого репозитория:


рак нет для сампа

и еще: работает ли правильно структура Packet2 от этого же репозитория
 
Ответить с цитированием

  #2  
Старый 01.11.2024, 17:12
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

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

m_pRakClient->Receive
может возвращать nullptr, поэтому проверяй, что пакет и дата в нем указывают на данные
 
Ответить с цитированием

  #3  
Старый 01.11.2024, 21:27
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

Что стало с выгрузкой ASI файлов при выгрузке(иногда даже загрузке)?

Все Visual C++ 2005-2022 установлены.

Раньше стабильно загружал/выгружал через консоль SF (pload, pfree) - сейчас ловлю краш игры.

При попытке отладить стек вызовов направляет на ntdll модуль. При ещё более подробной отладке выяснил что после вызова DLLMain со статусом DLL_PROCESS_DETACH проходит корректно и дальше уходит в dll_main_dispatch и внутрение штуки виндовс.

Данную штуку не проверял на обычной сборке, может вне запуска аризоны через лаунчер работает все корректно.
 
Ответить с цитированием

  #4  
Старый 01.11.2024, 22:13
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

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

Что стало с выгрузкой ASI файлов при выгрузке(иногда даже загрузке)?
Все Visual C++ 2005-2022 установлены.
Раньше стабильно загружал/выгружал через консоль SF (pload, pfree) - сейчас ловлю краш игры.
При попытке отладить стек вызовов направляет на ntdll модуль. При ещё более подробной отладке выяснил что после вызова DLLMain со статусом DLL_PROCESS_DETACH проходит корректно и дальше уходит в dll_main_dispatch и внутрение штуки виндовс.
Данную штуку не проверял на обычной сборке, может вне запуска аризоны через лаунчер работает все корректно.
а плагин может быть даже пустым и крашить? он точно не оставляет никаких своих следов в игре?
 
Ответить с цитированием

  #5  
Старый 02.11.2024, 18:57
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

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

а плагин может быть даже пустым и крашить? он точно не оставляет никаких своих следов в игре?
Решил проблему. Оказалось краш происходил из-за не корректного хука dx9 (present, reset).

Заюзал пример из этого треда и выгрузка работает на УРА.

Линк - LINK
 
Ответить с цитированием

  #6  
Старый 04.11.2024, 00:27
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

Как исправить рендер текста кириллицы из текст_дравов. Шрифт имгуи точно поддерживает кириллицу. При дебаге текст так-же валидный, а на рисовке уже покрывается знаками вопроса.

Юзаю смейк проект, стандарт С++ 20, sampapi



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

  #7  
Старый 04.11.2024, 02:51
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

Как исправить рендер текста кириллицы из текст_дравов. Шрифт имгуи точно поддерживает кириллицу. При дебаге текст так-же валидный, а на рисовке уже покрывается знаками вопроса.
Юзаю смейк проект, стандарт С++ 20, sampapi
imgui понимает текст только в utf8, самп - только в cp1251. Конвертируй кодировки
 
Ответить с цитированием

  #8  
Старый 18.11.2024, 23:49
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

Как корректно получить киррилицу при хуке rpc 134(RPC_ScrShowTextDraw).

Цитата:
Сообщение от Спойлер  




Цитата:
Сообщение от Спойлер  


C++:





Код:
rakhook
::
on_receive_rpc
+=
[
]
(
unsigned
char
&
id
,
RakNet
::
BitStream
*
bs
)
->
bool
{
// Версия сампа R1/R3
if
(
id
==
134
)
// RPC_ScrShowTextDraw
{
WORD TID
,
TLen
;
char
Text
[
1024
]
;
bs
->
Read
(
TID
)
;
bs
->
IgnoreBits
(
504
)
;
bs
->
Read
(
TLen
)
;
bs
->
Read
(
Text
,
TLen
)
;
bs
->
ResetReadPointer
(
)
;
Text
[
TLen
]
=
'\0'
;
SendChatMessage
(
"[%d]: %s"
,
TID
,
Text
)
;
}
return
true
;
}
;


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

  #9  
Старый 18.11.2024, 23:51
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

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

Как корректно получить киррилицу при хуке rpc 134(RPC_ScrShowTextDraw).

Цитата:
Сообщение от Спойлер  


Цитата:
Сообщение от Спойлер  


C++:





Код:
rakhook
::
on_receive_rpc
+=
[
]
(
unsigned
char
&
id
,
RakNet
::
BitStream
*
bs
)
->
bool
{
// Версия сампа R1/R3
if
(
id
==
134
)
// RPC_ScrShowTextDraw
{
WORD TID
,
TLen
;
char
Text
[
1024
]
;
bs
->
Read
(
TID
)
;
bs
->
IgnoreBits
(
504
)
;
bs
->
Read
(
TLen
)
;
bs
->
Read
(
Text
,
TLen
)
;
bs
->
ResetReadPointer
(
)
;
Text
[
TLen
]
=
'\0'
;
SendChatMessage
(
"[%d]: %s"
,
TID
,
Text
)
;
}
return
true
;
}
;


Исходник - Гайд - Для новичков в Lua | Русские буквы в TextDraw

Русские буквы в TextDraw Для того, чтобы использовать русские буквы текстдравах, нам понадобится таблица: Каждая буква имеет свой символ ( написан после = ), вставив который вы получите ту русскую букву, у которой брали символ. Для тех кто не понял - прикрепил снизу два скрипта. Один из них...

www.blast.hk
 
Ответить с цитированием

  #10  
Старый 20.11.2024, 17:13
chopisat
Новичок
Регистрация: 13.11.2021
Сообщений: 17
С нами: 2369897

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

static_assert failed: 'Unexpected std::string sizeof.' при сборке sf плагина
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.