|
Форум Программирование C++/C Программирование mod_sa |
mod_sa |
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 |
| |||
| |||