• Страница 1 из 1
  • 1
mod_sa
Владислав
Дата: Воскресенье, 10.11.2013, 01:51 | Сообщение # 1
Главный
Сообщений:
527
Награды:
5
Offline
Что же из себя представляет этот "Housechecker"? Да в принципе ничего такого сложного в нем нет. Простой перебор всех пикапов, сравнение
модели, получение координат, телепорт к ним. "Ползая" по ресурсам
собейта, я наткнулся на код рендера модели и ИД пикапа и решил написать
по нему housecheker

Код
oid sampcheat_handle_housechecker()
{
traceLastFunc( "sampcheat_handle_housechecker()" );
if (KEY_PRESSED(set.key_sampcheat_housechecker)) // проверяем на нажатие клавиши
cheat_state->_generic.sampcheat_housechecker ^= 1; // ставим статус
if ( cheat_state->_generic.sampcheat_housechecker == 1) // если функция активна
{
for (int i = 0; i < SAMP_PICKUP_MAX; i++) // перебор всех пикапов по ID
{
if (g_SAMP->pPools.pPool_Pickup->pickup[i].iModelID == 1273) // если модель равна модели зеленого домика
{
struct actor_info *self = actor_info_get( ACTOR_SELF, 0 ); // получаем структуру персонажа.
float Pos[3];
vect3_copy( g_SAMP->pPools.pPool_Pickup->pickup[i].fPosition, Pos ); // получаем координаты пикапа.
if ( vect3_near_zero(Pos) )
continue; // если координаты равны 0, переходим к следующему пикапу.
if ( vect3_dist( Pos, &self->base.matrix[4 * 3] ) > 150.0 )
continue; // если дистанция больше нужной, переходим к след. пикапу.
if ( cheat_state->state == CHEAT_STATE_VEHICLE ) GTAfunc_RemoveActorFromCarAndPutAt(Pos); // если в машине, выкидываем перса сразу на нашу точку.
else cheat_actor_teleport(self, Pos, 0); // если пешком, то просто телепорт персонажа на нашу точку.
cheat_state->_generic.sampcheat_housechecker = 0; // отключаем.
}
}
}
}


Вот вам код, с объяснениями. Вам остается только объявить функцию,
сделать запись и чтение из INI клавишу и по желанию вынести на HUD

  • Страница 1 из 1
  • 1
Поиск: