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

  #1751  
Старый 07.08.2016, 14:52
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

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

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

C++:





Код:
void
CALLBACK
cmd_show_info_player
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
;
int
i
=
std
::
stoi
(
param
)
;
char
buf
[
128
]
;
stRemotePlayer
*
pPlayer
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
;
if
(
!
pPlayer
)
return
;
sprintf
(
buf
,
"Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d"
,
pPlayer
->
szPlayerName
,
pPlayer
->
iPing
,
pPlayer
->
iScore
,
pPlayer
->
iIsNPC
,
pPlayer
->
pPlayerData
->
iAFKState
==
2
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
;


Почему-то функция выходит после if(!pPlayer).

Насколько я понимаю, что-то не так с указателем на объект класса stRemotePlayer; но i == 0, как я и указал в команде: /showinfo 0, и игрок с таким ID есть, но всё равно !pPlayer возвращает true, и из-за этого выполнение функции прекращается. Что не так?
ты это не на свой ид юзаешь?
 
Ответить с цитированием

  #1752  
Старый 07.08.2016, 15:41
loremi735
Новичок
Регистрация: 26.07.2016
Сообщений: 11
С нами: 5157565

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

Цитата:
Сообщение от Woofing Giraffe  

ты это не на свой ид юзаешь?
Ок, попробовал на других игроках и работает. Благодарю
 
Ответить с цитированием

  #1753  
Старый 08.08.2016, 09:00
da9
Новичок
Регистрация: 29.08.2013
Сообщений: 12
С нами: 6686454

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

Как работать с CHandlingEntry

Код:





Код:
for (int i = 0; i GetPools()->GetVehicle(i)) {
            continue;
        }
        CHandlingEntry *entry = GAME->GetPools()->GetVehicle(i)->GetHandlingData();
        entry->SetABS(true);
    }


моментально крашит игру при вызове любого метода этого класса.:help:
 
Ответить с цитированием

  #1754  
Старый 08.08.2016, 09:38
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

После получение CHandlingEntry делай проверку на валидность

Код:





Код:
if(entry){
entry->SetABS(true);
} else {
SF->Log("CHandlingEntry empty");
}
 
Ответить с цитированием

  #1755  
Старый 08.08.2016, 10:12
da9
Новичок
Регистрация: 29.08.2013
Сообщений: 12
С нами: 6686454

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

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

После получение CHandlingEntry делай проверку на валидность

Код:





Код:
if(entry){
entry->SetABS(true);
} else {
SF->Log("CHandlingEntry empty");
}

Они все пустые или я что-то не так делаю
 
Ответить с цитированием

  #1756  
Старый 08.08.2016, 10:20
CarLCas
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами: 6755146

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

Не путай SAMP ID авто и GTA ID (Handle).

C++:





Код:
if
(
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pVehicle
->
iIsListed
[
i
]
)
GAME
->
GetPools
(
)
->
GetVehicle
(
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pVehicle
->
GetCarHandleFromSAMPCarID
(
i
)
)
;
 
Ответить с цитированием

  #1757  
Старый 08.08.2016, 15:40
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

PHP:





Код:
void
CALLBACK
textflood
(
std
:
:
string param
)
{
if
(
param
.
empty
(
)
)
return
;
char b
[
64
]
;
sscanf
(
param
.
c_str
(
)
,
"%s"
,
&
b
)
;
SF
-
>
Log
(
" %s"
,
b
)
;
}
;


Если вводить текст например blast hack.

Будет выводиться только blast. Как его заставить что бы полностью брал текст?
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

param юзай.
 
Ответить с цитированием

  #1759  
Старый 08.08.2016, 18:04
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

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

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

PHP:





Код:
void
CALLBACK
textflood
(
std
:
:
string param
)
{
if
(
param
.
empty
(
)
)
return
;
char b
[
64
]
;
sscanf
(
param
.
c_str
(
)
,
"%s"
,
&
b
)
;
SF
-
>
Log
(
" %s"
,
b
)
;
}
;


Если вводить текст например blast hack.
Будет выводиться только blast. Как его заставить что бы полностью брал текст?
Либо полностью выводи param, либо регулярное выражение заюзай (например sscanf(param.c_str(), "%[a-zA-Z]", b)
 
Ответить с цитированием

  #1760  
Старый 08.08.2016, 20:33
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Цитата:
Сообщение от Woofing Giraffe  

либо регулярное выражение заюзай (например sscanf(param.c_str(), "%[a-zA-Z]", b)
Тот же результат будет. Пробел то не учитываешь
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.