Другое С/С++ Вопрос - Ответ

im0rg

Известный
Автор темы
Друг
587
214
  • Нравится
Реакции: eiuhuth и Pino..

gwplayer

Известный
Друг
188
35
Почему при посадке в транспорт проподает AdminChecker, в чём проблема?
[HIDE=70]
C++:
void cheat_handle_adminchecker()
{
    cheat_state->_generic.adminchecker = 1;
    if (cheat_state->_generic.adminchecker == 1)
    {
        int left=10;
        int count=0;
        int top = GetSystemMetrics(SM_CYSCREEN) / 2;
        float pos[3];
        pD3DFont->PrintShadow(left, top, D3DCOLOR_XRGB( 200, 252, 0 ), "Admins Online:");
        for(int i = 0; i < SAMP_PLAYER_MAX; i++)
        {
            for(int x = 0; x < 150; x++)
            {
                if(getPlayerName(i) == NULL || set.admin[x] == "NULL")
                    break;
                if(!strcmp(getPlayerName(i), set.admin[x]) == 1) count
                {
                    top += 20;
                    if ( !getPlayerPos(i, pos) )
                    {
                        pD3DFont->PrintShadow(left, top, D3DCOLOR_XRGB( 153, 179, 204 ), getPlayerName(i));
                    }
                    else
                    {
                        pD3DFont->PrintShadow(left, top, D3DCOLOR_XRGB( 0, 255, 0 ), getPlayerName(i));
                    }
                    count ++;
                }
            }
        }
        if ( count == 0 )
        pD3DFont->PrintShadow(left, top+20, D3DCOLOR_XRGB( 153, 179, 204 ), "No admins Online");
    }
}
[/HIDE]
 

Norma_Cheater

Новичок
141
6
1.Ваш вопрос: Как сделать что бы функция работала при выключение собейта?
 

Norma_Cheater

Новичок
141
6
1.Ваш вопрос: Как использовать задержку Sleep, когда мне нужен параметр atoi(param) ?
 

Norma_Cheater

Новичок
141
6
Лень писать завтра напишу

Написал функу но она работает криво, я использовал задержку GetTickCount и Sleep на потоке, но не чего не помогает, дело в точ что мне нужно постоянно разворачивать актёра в сторону куда смотрит камера да всё ok, но когда я использую задержку он тупо стоит определённое время задержки а когда нужно тп только потом его разворачивает да думая обьяснил не понятно могу снять видео кто может помочь .
 
Последнее редактирование модератором:

im0rg

Известный
Автор темы
Друг
587
214
Написал функу но она работает криво, я использовал задержку GetTickCount и Sleep на потоке, но не чего не помогает, дело в точ что мне нужно постоянно разворачивать актёра в сторону куда смотрит камера да всё ok, но когда я использую задержку он тупо стоит определённое время задержки а когда нужно тп только потом его разворачивает да думая обьяснил не понятно могу снять видео кто может помочь .
могу но я ничего не понял
 

Thomas_Johnson

Известный
Проверенный
183
21
Объясните, что не так и то, что я не понял, пожалуйста:з
Код:
void cheat_handle_coordmaster()
{
static int time=0;
if(cheat_state->_generic.coordmaster == 1) //если коорд мастер включен
{
if( GetTickCount()-set.coord_time > time ) //тайминг из .ini
{
if (*(int *)0xBA6774 != 0) //проверяем на наличие маркера(из последуйщего сообщения понял)
{
float mapPos[3]; //записываем переменную mapPos[3]
for ( int i = 0; i < (0xAF * 0x28); i += 0x28 ) //делаем *что-то
{
if ( *(short *)(0xBA873D + i) == 4611 ) //к какому-то адресу прибавляем *что-то
{
GTAfunc_TogglePlayerControllable(1); //freeze
GTAfunc_LockActor(1); //freeze
float *pos = (float *)( 0xBA86F8 + 0x28 + i ); //записываем бред в *pos
gta_interior_id_set( 0 ); //меняет интерьер на улицу
mapPos[0] = *pos; //пишем X маркера
mapPos[1] = *( pos + 1 ); //по идее это Y маркера, но зачем + 1?
mapPos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( mapPos[0], mapPos[1] ) + 2.0f; //Z с маркера
float cpos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ}; //в cpos[3] пишем x y z текущие
char opa=0; //устанавливаем переменной opa значение 0
if(cpos[0] > mapPos[0]) //если текущий X меньше маркерного X
{
if(cpos[0]-mapPos[0] > set.coord_distance) cpos[0] -= set.coord_distance; //вычитаем из текущего Х маркерный Х и если меньше дальности из .ini, то вычитаем эту дальность
else //если проверка "вычитаем из текущего Х маркерный Х и если меньше дальности из .ini" не прошла, то:
{
cpos[0] = mapPos[0]; //устанавливаем текущему Х маркерный Х
opa++; //прибавляем к переменной opa 1
}
}
else //если проверка "если текущий X меньше маркерного X" не прошла, то:
{
if(mapPos[0]-cpos[0] > set.coord_distance) cpos[0] += set.coord_distance; //если маркерный Х минус текущий Х меньше дальности из .ini, то прибавляем эту дальность
else //если проверка "если маркерный Х минус текущий Х меньше дальности из .ini", то:
{
cpos[0] = mapPos[0]; //устанавливаем текущему Х маркерный Х
opa++; //прибавляем к переменной opa 1
}
}
if(cpos[1] > mapPos[1]) //если текущий У меньше маркерного У
{
if(cpos[1]-mapPos[1] > set.coord_distance) cpos[1] -= set.coord_distance; //вычитаем из текущего У маркерный У и если меньше дальности из .ini, то вычитаем эту дальность
else //если проверка "если меньше дальности из .ini", то:
{
cpos[1] = mapPos[1]; //устанавливаем текущему У маркерный У
opa++; //прибавляем к переменной opa 1
}
}
else //если проверка "если текущий У меньше маркерного У" не прошла, то:
{
if(mapPos[1]-cpos[1] > set.coord_distance) cpos[1] += set.coord_distance; //если маркерный У минус текущий У меньше дальности из .ini, то прибавляем эту дальность
else //если проверка "если маркерный У минус текущий У меньше дальности из .ini", то:
{
cpos[1] = mapPos[1];  //устанавливаем текущему У маркерный У
opa++;  //прибавляем к переменной opa 1
}
}
if(opa == 2) //если opa равно двум
{
cpos[2] = mapPos[2]; //устанавливаем текущему Z маркерный Z
cheat_state->_generic.coordmaster = 0; //выключаем в менюшке
GTAfunc_TogglePlayerControllable(0); //unfreeze
GTAfunc_LockActor(0); //unfreeze
}
else cpos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( cpos[0], cpos[1] )-20; //если проверка "если opa равно двум" не прошла то:
cheat_teleport(cpos,0); //то он что-то делает:C
}
}
}
else //если "проверяем на наличие маркера(из последуйщего сообщения понял)" не прошла
{
addMessageToChatWindow("Поставьте метку на карте!");
cheat_state->_generic.coordmaster = 0;
}
time = GetTickCount(); //не пойму, записывает время из .ini в gettickcount()? при том в МИНУС
}
}
  return; //возвращемся
}
 

Norma_Cheater

Новичок
141
6
Вс
Объясните, что не так и то, что я не понял, пожалуйста:з
Код:
void cheat_handle_coordmaster()
{
static int time=0;
if(cheat_state->_generic.coordmaster == 1) //если коорд мастер включен
{
if( GetTickCount()-set.coord_time > time ) //тайминг из .ini
{
if (*(int *)0xBA6774 != 0) //проверяем на наличие маркера(из последуйщего сообщения понял)
{
float mapPos[3]; //записываем переменную mapPos[3]
for ( int i = 0; i < (0xAF * 0x28); i += 0x28 ) //делаем *что-то
{
if ( *(short *)(0xBA873D + i) == 4611 ) //к какому-то адресу прибавляем *что-то
{
GTAfunc_TogglePlayerControllable(1); //freeze
GTAfunc_LockActor(1); //freeze
float *pos = (float *)( 0xBA86F8 + 0x28 + i ); //записываем бред в *pos
gta_interior_id_set( 0 ); //меняет интерьер на улицу
mapPos[0] = *pos; //пишем X маркера
mapPos[1] = *( pos + 1 ); //по идее это Y маркера, но зачем + 1?
mapPos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( mapPos[0], mapPos[1] ) + 2.0f; //Z с маркера
float cpos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ}; //в cpos[3] пишем x y z текущие
char opa=0; //устанавливаем переменной opa значение 0
if(cpos[0] > mapPos[0]) //если текущий X меньше маркерного X
{
if(cpos[0]-mapPos[0] > set.coord_distance) cpos[0] -= set.coord_distance; //вычитаем из текущего Х маркерный Х и если меньше дальности из .ini, то вычитаем эту дальность
else //если проверка "вычитаем из текущего Х маркерный Х и если меньше дальности из .ini" не прошла, то:
{
cpos[0] = mapPos[0]; //устанавливаем текущему Х маркерный Х
opa++; //прибавляем к переменной opa 1
}
}
else //если проверка "если текущий X меньше маркерного X" не прошла, то:
{
if(mapPos[0]-cpos[0] > set.coord_distance) cpos[0] += set.coord_distance; //если маркерный Х минус текущий Х меньше дальности из .ini, то прибавляем эту дальность
else //если проверка "если маркерный Х минус текущий Х меньше дальности из .ini", то:
{
cpos[0] = mapPos[0]; //устанавливаем текущему Х маркерный Х
opa++; //прибавляем к переменной opa 1
}
}
if(cpos[1] > mapPos[1]) //если текущий У меньше маркерного У
{
if(cpos[1]-mapPos[1] > set.coord_distance) cpos[1] -= set.coord_distance; //вычитаем из текущего У маркерный У и если меньше дальности из .ini, то вычитаем эту дальность
else //если проверка "если меньше дальности из .ini", то:
{
cpos[1] = mapPos[1]; //устанавливаем текущему У маркерный У
opa++; //прибавляем к переменной opa 1
}
}
else //если проверка "если текущий У меньше маркерного У" не прошла, то:
{
if(mapPos[1]-cpos[1] > set.coord_distance) cpos[1] += set.coord_distance; //если маркерный У минус текущий У меньше дальности из .ini, то прибавляем эту дальность
else //если проверка "если маркерный У минус текущий У меньше дальности из .ini", то:
{
cpos[1] = mapPos[1];  //устанавливаем текущему У маркерный У
opa++;  //прибавляем к переменной opa 1
}
}
if(opa == 2) //если opa равно двум
{
cpos[2] = mapPos[2]; //устанавливаем текущему Z маркерный Z
cheat_state->_generic.coordmaster = 0; //выключаем в менюшке
GTAfunc_TogglePlayerControllable(0); //unfreeze
GTAfunc_LockActor(0); //unfreeze
}
else cpos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( cpos[0], cpos[1] )-20; //если проверка "если opa равно двум" не прошла то:
cheat_teleport(cpos,0); //то он что-то делает:C
}
}
}
else //если "проверяем на наличие маркера(из последуйщего сообщения понял)" не прошла
{
addMessageToChatWindow("Поставьте метку на карте!");
cheat_state->_generic.coordmaster = 0;
}
time = GetTickCount(); //не пойму, записывает время из .ini в gettickcount()? при том в МИНУС
}
}
  return; //возвращемся
}
Можно гораздо легче описать
Проверка стоит ли маркет на карте или нет, если не стоит то вывести в чат "Поставьте метку на карте!"
если стоит проверить если координаты маркета больше нашего то прибавить наши и т.д
правильно описал но это слегка кривой Coord Master