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

  #961  
Старый 12.06.2016, 13:12
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

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

в собе глянь
Я хз где там. Я искал и не нашёл.
 
Ответить с цитированием

  #962  
Старый 12.06.2016, 15:30
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

Что за hook_handle_rpc_packet1 и hook_handle_rpc_packet2? Нашёл в собейте/ Это зачем? Ведь есть OnSendRPC, OnSendPacket и OnReceivePacket?

Так что, знает кто где в собейте устанавливается хук на game destructor?
 
Ответить с цитированием

  #963  
Старый 16.06.2016, 22:57
dimoz
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами: 2851002

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

пытаюсь сделать динамическое выделение памяти для менюхи, как в собейте, но вылетает через 1-2 секунды после загрузки игры, если madd() вызывать

Код:





Код:
struct stMenuInfo
{
    const char *mname;
    struct stMenuInfo *pmenu;
    struct stMenuInfo *cmenu;
    unsigned int bcount;
    struct stButtonInfo *btn;
};

struct stMenuInfo* mdata;
unsigned int mcount = 0;

unsigned int madd(const char* mname)
{
    struct stMenuInfo *new_mn;
    memset(&new_mn, 0, 0);
    new_mn = (struct stMenuInfo *)realloc(mdata, (mcount + 1) * sizeof(struct stMenuInfo));

    if (new_mn == NULL)
        return NULL;

    mdata = new_mn;
    mdata[mcount].mname = _strdup(mname);
    mcount++;
    return mcount - 1;
}


помогите, пожалуйста
 
Ответить с цитированием

  #964  
Старый 16.06.2016, 23:36
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

Если я понял тебя правильно.

C++:





Код:
struct
stMenuInfo
{
const
char
*
mname
;
struct
stMenuInfo
*
pmenu
;
struct
stMenuInfo
*
cmenu
;
unsigned
int
bcount
;
struct
stButtonInfo
*
btn
;
}
;
struct
stMenuInfo
*
mdata
;
unsigned
int
mcount
=
0
;
unsigned
int
madd
(
const
char
*
mname
)
{
// Есть массив меню и их количество.
// realloc - это функция, которая изменяет количество выделенной памяти
// для нашего участка памяти (массива mdata)
// и возвращает содержимое предыдущего участка, то есть наш массив с +1 элементом.
// То есть, мы должны присвоить mdata её return,
// а в аргументах указать участок для которого хотим выделить память
// и количество выделенной памяти.
// То есть, mdata и ++mcount (сразу добавляем 1 к mcount, важно чтобы ++ стояло перед переменной, загугли почему если не знаешь)
// умножить на размер структуры.
// Таким образом, у нас есть массив который содержит все те же элементы,
// но у которого появился еще один элемент с "мусором".
mdata
=
(
struct
stMenuInfo
*
)
realloc
(
mdata
,
++
mcount
*
sizeof
(
struct
stMenuInfo
)
)
;
// Очищаем "мусор".
// Почему mcount - 1? Потому что у нас отсчет не с 1, а с 0 и последний элемент это всегда = количество_меню - 1.
memset
(
&
mdata
[
mcount
-
1
]
,
0
,
sizeof
(
struct
stMenuInfo
)
)
;
mdata
[
mcount
-
1
]
.
mname
=
_strdup
(
mname
)
;
return
mcount
-
1
;
// возвращаем id последнего меню?
}
 
Ответить с цитированием

  #965  
Старый 17.06.2016, 00:19
dimoz
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами: 2851002

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

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

Если я понял тебя правильно.

C++:





Код:
struct
stMenuInfo
{
const
char
*
mname
;
struct
stMenuInfo
*
pmenu
;
struct
stMenuInfo
*
cmenu
;
unsigned
int
bcount
;
struct
stButtonInfo
*
btn
;
}
;
struct
stMenuInfo
*
mdata
;
unsigned
int
mcount
=
0
;
unsigned
int
madd
(
const
char
*
mname
)
{
// Есть массив меню и их количество.
// realloc - это функция, которая изменяет количество выделенной памяти
// для нашего участка памяти (массива mdata)
// и возвращает содержимое предыдущего участка, то есть наш массив с +1 элементом.
// То есть, мы должны присвоить mdata её return,
// а в аргументах указать участок для которого хотим выделить память
// и количество выделенной памяти.
// То есть, mdata и ++mcount (сразу добавляем 1 к mcount, важно чтобы ++ стояло перед переменной, загугли почему если не знаешь)
// умножить на размер структуры.
// Таким образом, у нас есть массив который содержит все те же элементы,
// но у которого появился еще один элемент с "мусором".
mdata
=
(
struct
stMenuInfo
*
)
realloc
(
mdata
,
++
mcount
*
sizeof
(
struct
stMenuInfo
)
)
;
// Очищаем "мусор".
// Почему mcount - 1? Потому что у нас отсчет не с 1, а с 0 и последний элемент это всегда = количество_меню - 1.
memset
(
&
mdata
[
mcount
-
1
]
,
0
,
sizeof
(
struct
stMenuInfo
)
)
;
mdata
[
mcount
-
1
]
.
mname
=
_strdup
(
mname
)
;
return
mcount
-
1
;
// возвращаем id последнего меню?
}

спасибо, надо учебники уже читать начать, уж больно интересны эти пляски с памятью

UPD:

чет рано обрадовался, игра-то вылетает все равно.

если убрать указатели на другие структуры из stMenuInfo, то все работает, но они нужны.

всё ещё в поисках помощи, посоны
 
Ответить с цитированием

  #966  
Старый 17.06.2016, 01:05
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

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

спасибо, надо учебники уже читать начать, уж больно интересны эти пляски с памятью

UPD:
чет рано обрадовался, игра-то вылетает все равно.
если убрать указатели на другие структуры из stMenuInfo, то все работает, но они нужны.
всё ещё в поисках помощи, посоны
А ты юзаешь их? Или что ты вообще хочешь сделать?
 
Ответить с цитированием

  #967  
Старый 17.06.2016, 01:11
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Вы пытаетесь вызывать, то что не существует.
 
Ответить с цитированием

  #968  
Старый 17.06.2016, 01:23
dimoz
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами: 2851002

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

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

А ты юзаешь их? Или что ты вообще хочешь сделать?
cmenu, pmenu - уберу (понял, как сделать без этого)

а вот struct stButtonInfo *btn - это инфа о элементах меню. Элементы добавляются точно таким же способом.
 
Ответить с цитированием

  #969  
Старый 17.06.2016, 02:38
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

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

cmenu, pmenu - уберу (понял, как сделать без этого)
а вот struct stButtonInfo *btn - это инфа о элементах меню. Элементы добавляются точно таким же способом.
Указатели - это лишь указатели на объект, если ты его не создавал, то и обращаться к нему нельзя. Кидай код.
 
Ответить с цитированием

  #970  
Старый 17.06.2016, 08:41
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

когда стреляю из машины пули отправляются не через ID_BULLET_SYNC через какой пакет они отправляются тогда
ты про стрельбу в сторону из окна? там по клавишам синхра
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.