Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 16 апр 2024, 11:01

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 22 июл 2013, 19:10 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
15 апр 2024, 15:23
Сообщения: 6866
Because this control char is for strings - it denotes special symbols. ^ is default one for amxx, \ is default for C. So I often change it with this pragma.
^ in code you gave is not a control char in string, this is XOR operator, so you have to leave it as it is.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 22 июл 2013, 19:53 
Не в сети
Зарегистрирован:
12 апр 2011, 14:58
Последнее посещение:
12 янв 2014, 06:02
Сообщения: 50
If I didn't declare #pragma ctrlchar '\' in the code, the chat doesn't come up in color. I need to declare it but when I declare it, it give that error as in my previous post. I've done multiple tests and I can confirm the chat won't show up colored if I didn't declare #pragma ctrlchar '\'.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 22 июл 2013, 20:38 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
15 апр 2024, 15:23
Сообщения: 6866
If you don't decalare that pragma then you need to escape ^ with a control char, that is ^. xD
So actually to send your test you have to replace
Код:
client_print(id, print_chat, "Colored text Test: ^1red ^3yellow");
with
Код:
client_print(id, print_chat, "Colored text Test: ^^1red ^^3yellow");
About your sample, it isn't affected by pragma. Thats you who broke it by replacing ^ with \.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 22 июл 2013, 21:30 
Не в сети
Зарегистрирован:
12 апр 2011, 14:58
Последнее посещение:
12 янв 2014, 06:02
Сообщения: 50
Oh....
So I don't need to declare what the ctrl char is afterall. Good to know that.

You just gave me a bad example in that post :p

Thanks. This case is solved!

P/S: my suggestions and one bug report (yes there's one bug, only one though) for this client dll/so are coming! Sit tight! :D


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 18 окт 2013, 01:45 
Не в сети
Зарегистрирован:
18 окт 2013, 01:38
Последнее посещение:
19 окт 2013, 02:21
Сообщения: 2
А как искать адреса / смещения? К примеру, той же цветной консоли (хотя бы первый шаг). Как я понял, сначала находится строка GameConsole003, потом адрес этой строки подставляется в небольшой массив байт, который затем тоже ищется в памяти. Сразу после массива байт в памяти располагается адрес, указывающий на место в памяти, где через 4 байта находится адрес CGameConsole003. Как вы все это определили и нашли?

Заранее спасибо.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 18 окт 2013, 02:35 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
15 апр 2024, 15:23
Сообщения: 6866
Это суровые техники реверсинжиниринга. Так просто на пальцах и не объяснить, тем более с разбегу.
В общем и целом, надо сначала понять что там за код, а потом найти возможность за что-то зацепиться. Зачастую это строки.
В данном случае "CGameConsole003" используется для создания интерфейса по доступу к консоли.

Есть код:
Код:
g_pCGameConsole003 = ((int (__cdecl *)(_DWORD, _DWORD))pCreateInterfaceGameUI_)("GameConsole003", 0);
Код:
.text:01D011A3 6A 00                                   push    0
.text:01D011A5 68 C4 51 E6 01                          push    offset aGameconsole003 ; "GameConsole003"
.text:01D011AA A3 88 5A E9 01                          mov     g_pCGameUI007, eax
.text:01D011AF FF D7                                   call    edi
.text:01D011B1 6A 00                                   push    0
.text:01D011B3 68 D4 51 E6 01                          push    offset aCareerui001 ; "CareerUI001"
.text:01D011B8 A3 8C 5A E9 01                          mov     g_pCGameConsole003, eax
Ищется начало этого кода, с подстановкой адреса строки. Потом берется адрес g_pCGameUI007 и прибавляется 4. Это несколько упрощенный путь, т.к. g_pCGameConsole003 лежит сразу после него:
Код:
.data:01E95A88 00 00 00 00             g_pCGameUI007   dd 0                    ; DATA XREF: sub_1D010D0+9r
.data:01E95A8C 00 00 00 00             g_pCGameConsole003 dd 0                 ; DATA XREF: sub_1D010D0+E8w


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 18 окт 2013, 23:11 
Не в сети
Зарегистрирован:
18 окт 2013, 01:38
Последнее посещение:
19 окт 2013, 02:21
Сообщения: 2
Lev писал(а):
 "Листинг"
То есть, судя по листингу, можно было, к примеру, искать CareerUI001, потом массив байт с адресом на него, а от массива байт сразу адрес на g_pCGameConsole003?


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 18 окт 2013, 23:16 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
15 апр 2024, 15:23
Сообщения: 6866
Пожалуй.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 13 янв 2014, 20:43 
Не в сети
Аватара пользователя
Зарегистрирован:
21 мар 2012, 13:21
Последнее посещение:
27 дек 2023, 02:51
Сообщения: 165
А возможно ли перевести на vgui2 клиентскую часть? Чтобы кириллические ники в таблице отображались.
Хотя Альфред отказался переводить, сказал, что хлопотно очень.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Bugfixed and improved HLSDK
СообщениеДобавлено: 16 янв 2014, 11:35 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
15 апр 2024, 15:23
Сообщения: 6866
На этом пути есть несколько проблем:
Чтобы попробовать vgui2 надо инклюдники (.h) от него и либу (.lib). В HLSDK этого нет. В Source SDK есть. Vgui2 может быть разным и нужны файлы именно от той версии что нужно. Вариантов Source SDK есть несколько. Возможно от каких-нибудь старых годов подойдет. А какая нужна? Также возникает вопрос: а совместим ли старый vgiu2 с новым? Увы, довольно маловероятно, т.е. теряется совместимость client.dll со старыми сборками. Я попробовал подсунуть старому клиенту vgui2 от нового. Не вышло, падает. Возможно есть ещё какие-то взаимосвязи, можно попробовать разобраться.
Так что путь этот весьма тернист для нас, для Альфреда значительно проще, и тем не менее он отказался (я думаю CS они на vgui2 перевели уже очень давно).
Имхо, проще заменить vgui для ников в скореборде на что-нибудь другое...
Или есть ещё какие-то места?


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB