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

  #1  
Старый 28.05.2017, 22:43
san0
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами: 6530249

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

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

А это при чем тут?
К тому, что первый байт, возможно, есть ID пакета.
 
Ответить с цитированием

  #2  
Старый 28.05.2017, 23:09
Jack_Savage
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами: 5008255

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

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

К тому, что первый байт, возможно, есть ID пакета.
bsIn.IgnoreBytes(sizeof(RakNet::MessageID));

Исправил. Спасибо большое :3
 
Ответить с цитированием

  #3  
Старый 29.05.2017, 15:43
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

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

Можно как-нибудь выполнить объявление переменной для конкретной функции, не переобъявляя с каждой итерацией функции, и не делая глобальной? (и если кто будет отвечать, то заодно напишите, пожалуйста, окажет ли подобная "подгонка" положительное влияние на производительность, или это лишь усложнит задачу компу)

И ещё один вопрос назрел, пока писал. Я вот так "упрощаю" работу процессору (наверное, так выполнение должно быть быстрее)

C++:





Код:
char
*
PTS
;
char
*
ppts
=
new
char
(
sstring
[
144
]
)
;
unsigned
__int16 nocis
,
scrx1
,
screex
=
0
;
unsigned
char
red
,
green
,
blue
=
rand
(
)
;


и вот когда я пытаюсь так же объединить указатели на символьные массивы, как обычные переменные - мне выдаёт ошибку. Можно как-нибудь "упростить" объявление указателей, сгруппировать что ли для пущей производительности?
 
Ответить с цитированием

  #4  
Старый 29.05.2017, 15:51
return
Участник форума
Регистрация: 23.10.2010
Сообщений: 125
С нами: 8186006

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

Цитата:
Сообщение от Снежок  

Можно как-нибудь выполнить объявление переменной для конкретной функции, не переобъявляя с каждой итерацией функции, и не делая глобальной?
Один вопрос, для чего?

Читаю твои сообщения и не понимаю тебя... Зачем изобретать какую то дичь, если до тебя уже всё придумали?
 
Ответить с цитированием

  #5  
Старый 29.05.2017, 15:54
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

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

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

Один вопрос, для чего?
Читаю твои сообщения и не понимаю тебя... Зачем изобретать какую то дичь, если до тебя уже всё придумали?
Если бы до меня придумали всё, не существовало бы ошибки в коде, которую не смог бы исправить компилятор, анализируя контекст. Если тебе нечего мне сказать по делу - пройди мимо, обоим будет лучше.
 
Ответить с цитированием

  #6  
Старый 29.05.2017, 16:40
p1cador
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами: 6395080

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

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

  #7  
Старый 30.05.2017, 12:21
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

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

C++:





Код:
short
PTC
=
0
;
PTCs
=
ppts
+
PTC
;


Почему так крашит уже через пару итераций?

C++:





Код:
short
PTC
=
1
;
PTCs
=
ppts
+
PTC
;


Вопреки тому, что так не крашит вовсе

это указатель на символ в строчке, если шо
 
Ответить с цитированием

  #8  
Старый 30.05.2017, 14:43
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Выход за пределы.
 
Ответить с цитированием

  #9  
Старый 30.05.2017, 14:48
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

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

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

Выход за пределы.
Можно более нубским языком?

И ещё.

C++:





Код:
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
stFontInfo
*
pFont
;
unsigned
short
scrx
=
GetSystemMetrics
(
SM_CXSCREEN
)
;
char
sstring
[
1
]
;
char
qwe
[
1
]
;
short
int
PTC
=
scrx
;
char
*
ppts
=
new
char
(
sstring
[
scrx
]
)
;
char
*
ptqwe
=
new
char
(
qwe
[
scrx
]
)
;
unsigned
__int16 nocis
;
unsigned
char
red
,
green
,
blue
;
char
*
PTCs
;
bool
CALLBACK
Present
(
CONST RECT
*
pSourceRect
,
CONST RECT
*
pDestRect
,
HWND hDestWindowOverride
,
CONST RGNDATA
*
pDirtyRegion
)
{
if
(
SUCCEEDED
(
SF
->
getRender
(
)
->
BeginRender
(
)
)
)
{
memset
(
ptqwe
,
0
,
strlen
(
ptqwe
)
)
;
memset
(
ppts
,
0
,
strlen
(
ppts
)
)
;
PTC
-=
1
;
PTCs
=
ppts
+
PTC
;
strcat
(
PTCs
,
"Число символов в строке: "
)
;
nocis
=
_scprintf
(
PTCs
)
;
itoa
(
nocis
,
ptqwe
,
10
)
;
strcat
(
PTCs
,
ptqwe
)
;
//SF->getSAMP()->getChat()->AddChatMessage(555555, "%s", ppts);
red
=
rand
(
)
;
green
=
rand
(
)
;
blue
=
rand
(
)
;
pFont
->
Print
(
PTCs
,
D3DCOLOR_ARGB
(
255
,
red
,
green
,
blue
)
,
0
,
500
,
false
)
;
SF
->
getRender
(
)
->
EndRender
(
)
;
}
;
return
true
;
}
;


с данным кодом через четверть минуты игры происходит нечто странное, что удалось разглядеть, лишь записав - после этого игра крашит.

Примечательно, что я не делал так, чтоб строка вообще клеилась, не то что уж заполняла себя своими копиями

Как такое происходит?
 
Ответить с цитированием

  #10  
Старый 30.05.2017, 17:40
Jack_Savage
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами: 5008255

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

Цитата:
Сообщение от Снежок  

Можно более нубским языком?
И ещё.

C++:





Код:
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
stFontInfo
*
pFont
;
unsigned
short
scrx
=
GetSystemMetrics
(
SM_CXSCREEN
)
;
char
sstring
[
1
]
;
char
qwe
[
1
]
;
short
int
PTC
=
scrx
;
char
*
ppts
=
new
char
(
sstring
[
scrx
]
)
;
char
*
ptqwe
=
new
char
(
qwe
[
scrx
]
)
;
unsigned
__int16 nocis
;
unsigned
char
red
,
green
,
blue
;
char
*
PTCs
;
bool
CALLBACK
Present
(
CONST RECT
*
pSourceRect
,
CONST RECT
*
pDestRect
,
HWND hDestWindowOverride
,
CONST RGNDATA
*
pDirtyRegion
)
{
if
(
SUCCEEDED
(
SF
->
getRender
(
)
->
BeginRender
(
)
)
)
{
memset
(
ptqwe
,
0
,
strlen
(
ptqwe
)
)
;
memset
(
ppts
,
0
,
strlen
(
ppts
)
)
;
PTC
-=
1
;
PTCs
=
ppts
+
PTC
;
strcat
(
PTCs
,
"Число символов в строке: "
)
;
nocis
=
_scprintf
(
PTCs
)
;
itoa
(
nocis
,
ptqwe
,
10
)
;
strcat
(
PTCs
,
ptqwe
)
;
//SF->getSAMP()->getChat()->AddChatMessage(555555, "%s", ppts);
red
=
rand
(
)
;
green
=
rand
(
)
;
blue
=
rand
(
)
;
pFont
->
Print
(
PTCs
,
D3DCOLOR_ARGB
(
255
,
red
,
green
,
blue
)
,
0
,
500
,
false
)
;
SF
->
getRender
(
)
->
EndRender
(
)
;
}
;
return
true
;
}
;


с данным кодом через четверть минуты игры происходит нечто странное, что удалось разглядеть, лишь записав - после этого игра крашит.
Примечательно, что я не делал так, чтоб строка вообще клеилась, не то что уж заполняла себя своими копиями
Как такое происходит?
что оно должно сделать?
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...