 |
|

12.06.2016, 13:12
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Сообщение от SR_team
в собе глянь
Я хз где там. Я искал и не нашёл.
|
|
|

12.06.2016, 15:30
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Что за hook_handle_rpc_packet1 и hook_handle_rpc_packet2? Нашёл в собейте/ Это зачем? Ведь есть OnSendRPC, OnSendPacket и OnReceivePacket?
Так что, знает кто где в собейте устанавливается хук на game destructor?
|
|
|

16.06.2016, 22:57
|
|
Новичок
Регистрация: 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;
}
помогите, пожалуйста
|
|
|

16.06.2016, 23:36
|
|
Постоянный
Регистрация: 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 последнего меню?
}
|
|
|

17.06.2016, 00:19
|
|
Новичок
Регистрация: 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, то все работает, но они нужны.
всё ещё в поисках помощи, посоны
|
|
|

17.06.2016, 01:05
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Сообщение от Dimoz
спасибо, надо учебники уже читать начать, уж больно интересны эти пляски с памятью
UPD:
чет рано обрадовался, игра-то вылетает все равно.
если убрать указатели на другие структуры из stMenuInfo, то все работает, но они нужны.
всё ещё в поисках помощи, посоны
А ты юзаешь их? Или что ты вообще хочешь сделать?
|
|
|

17.06.2016, 01:11
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Вы пытаетесь вызывать, то что не существует.
|
|
|

17.06.2016, 01:23
|
|
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами:
2851002
Репутация:
0
|
|
Сообщение от AWRage
А ты юзаешь их? Или что ты вообще хочешь сделать?
cmenu, pmenu - уберу (понял, как сделать без этого)
а вот struct stButtonInfo *btn - это инфа о элементах меню. Элементы добавляются точно таким же способом.
|
|
|

17.06.2016, 02:38
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Сообщение от Dimoz
cmenu, pmenu - уберу (понял, как сделать без этого)
а вот struct stButtonInfo *btn - это инфа о элементах меню. Элементы добавляются точно таким же способом.
Указатели - это лишь указатели на объект, если ты его не создавал, то и обращаться к нему нельзя. Кидай код.
|
|
|

17.06.2016, 08:41
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от _CHUCK_
когда стреляю из машины пули отправляются не через ID_BULLET_SYNC через какой пакет они отправляются тогда
ты про стрельбу в сторону из окна? там по клавишам синхра
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|