|
Форум Программирование C++/C Программирование [mod_sa] PulseHealt and read Basic Menu |
[mod_sa] PulseHealt and read Basic Menu |
Offline
Всем привет, вот как и обещал делаю урок по редактированию в стандартном меню с помощью "+" и "-"
Перед тем как продолжать читать сначала смотрим тему эту Ну что ж начнем Заходим в dumb_menu.cpp И ищем там вот такую строчку Код: static int menu_callback_cheats ( int op, struct menu_item *item ) И перед ней добавляем Код: static int menu_callback_newcheats ( int op, struct menu_item *item ) { int mod; switch ( op ) { case MENU_OP_ENABLED: switch ( item->id ) { case ID_NEWCHEAT_PULSEHEALTH: return cheat_state->_generic.pulsehealth; } break; case MENU_OP_SELECT: switch ( item->id ) { case ID_NEWCHEAT_PULSEHEALTH: cheat_state->_generic.pulsehealth ^= 1; break; } case MENU_OP_DEC: case MENU_OP_INC: mod = ( op == MENU_OP_DEC ) ? -1 : 1; int max = 30; int min = 1; if ( item->id == ID_NEWCHEAT_PULSESPEED ) { set.pulsespeed += (int)mod; // К нашей скорости прибавляем mod ( это и есть + и - ) menu_item_name_set( item, "Pulse speed: %d", set.pulsespeed ); if (set.pulsespeed < min) { set.pulsespeed = max; } else if (set.pulsespeed > max) { set.pulsespeed = min; } return 1; } } return 0; } Теперь добавим ко все define Код: #define ID_NEWCHEAT_PULSEHEALTH 8923// сама функция #define ID_NEWCHEAT_PULSESPEED 8924/// скорость Теперь добавим ко всем меню Код: menu_item_add( menu_newcheats, NULL ,"PulseHealth", ID_NEWCHEAT_PULSEHEALTH, MENU_COLOR_DEFAULT, NULL ); snprintf( name, sizeof(name), "Pulse speed: %d", set.pulsespeed ); menu_item_add( menu_newcheats, NULL, name, ID_NEWCHEAT_PULSESPEED, MENU_COLOR_DEFAULT, NULL ); В cheat.h Код: int pulsehealth; В ini.cpp Код: if ( (ent = ini_register_entry("pulsespeed", TYPE_INT)) != NULL ) ini_register_data( ent, &set.pulsespeed, "4" ); В ini.h Код: int pulsespeed; Ну и сам пульсатор в samp.cpp Код: if(cheat_state->_generic.pulsehealth == 1) { struct actor_info *self = actor_info_get( ACTOR_SELF, ACTOR_ALIVE ); static int p = 1; static bool pp = false; if ( p <= set.pulsespeed*1 ) pp = false; { if ( pp == false ) { p+= set.pulsespeed; if ( p >= 100 ) pp = true; } else { p-= set.pulsespeed; } self->hitpoints = p; //100.0 - ставит хп кол-ва 100 self->armor = p; //тоже самое, только тут броня } return; } |
| |||
| |||