[mod_sa] PulseHealt and read Basic Menu

Статус
В этой теме нельзя размещать новые ответы.

im0rg

Известный
Автор темы
Друг
587
216
Всем привет, вот как и обещал делаю урок по редактированию в стандартном меню с помощью "+" и "-"

Перед тем как продолжать читать сначала смотрим тему эту

Ну что ж начнем
Заходим в 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;
    }

Автор кода пульсатора Cico за это ставим в его репутацию "+"
С вами был Jesus, урок был сделан по заказу Norma_Cheater
Специально для сайта BlastHack.Net
При копировании указывать источник BlastHack.Net
 
  • Нравится
Реакции: key и RickAstley

BaHeK

Известный
84
6
спс за пример нето что мне надо было но переделал как мне надо было и работает лови +:trollface:
 

Norma_Cheater

Новичок
141
6
А как добавить 2 настройку ? я смотрел как устроено в callback_cheats там немного по другому
 

Norma_Cheater

Новичок
141
6
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;
}

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;
}

Так?
 

im0rg

Известный
Автор темы
Друг
587
216
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;
}
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;
}
Так?
Я не понял что ты написал, а самое главное что ты хочешь написать
 

fondamentolok

Новичок
101
0
1>------ Построение начато: проект: mod_sa, Конфигурация: Release Win32 ------
1> dumb_menu.cpp
1>dumb_menu.cpp(702): error C2065: mod: необъявленный идентификатор
1>dumb_menu.cpp(707): error C2065: mod: необъявленный идентификатор
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== WTF?
 

im0rg

Известный
Автор темы
Друг
587
216
Написано все по русский не объявил mod
 
Статус
В этой теме нельзя размещать новые ответы.