PDA

Просмотр полной версии : [mod_sa] PulseHealt and read Basic Menu


im0rg
11.05.2013, 13:34
Всем привет, вот как и обещал делаю урок по редактированию в стандартном меню с помощью "+" и "-"

Перед тем как продолжать читать сначала смотрим тему эту (http://blasthack.net/threads/mod_sa-%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D 0%B8%D0%B5-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9-%D0%B2-dumb_menu.759/)

Ну что ж начнем

Заходим в 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 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 = 100 ) pp = true;
}
else
{
p-= set.pulsespeed;
}
self->hitpoints = p; //100.0 - ставит хп кол-ва 100
self->armor = p; //тоже самое, только тут броня
}
return;
}






Автор кода пульсатора Cico (http://blasthack.net/members/cico.44/) за это ставим в его репутацию "+"

С вами был Jesus (http://blasthack.net/members/jesus.87/), урок был сделан по заказу Norma_Cheater (http://blasthack.net/members/norma_cheater.1367/)[/URL]

Специально для сайта [URL="http://blasthack.net/"]BlastHack.Net (http://blasthack.net/members/mister_gonwik.3/)

При копировании указывать источникBlastHack.Net (http://blasthack.net/)

Norma_Cheater
11.05.2013, 14:46
Спс за урок !

im0rg
11.05.2013, 15:05
Спс за урок !


Всегда пожалуйста

BaHeK
11.05.2013, 15:41
спс за пример нето что мне надо было но переделал как мне надо было и работает лови +:trollface:

Norma_Cheater
17.05.2013, 18:25
А как добавить 2 настройку ? я смотрел как устроено в callback_cheats там немного по другому

im0rg
17.05.2013, 20:14
А как добавить 2 настройку ? я смотрел как устроено в callback_cheats там немного по другому


Аналогично этой же.

Norma_Cheater
17.05.2013, 20:44
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 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 max)

{

set.pulsespeed = min;

}

return 1;

}

}

return 0;

}

Так?

im0rg
17.05.2013, 20:50
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 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 max)
{
set.pulsespeed = min;
}
return 1;
}
}
return 0;
}
Так?


Я не понял что ты написал, а самое главное что ты хочешь написать

Norma_Cheater
17.05.2013, 21:16
как использовать изменение "+" "-" на двух функциях.

im0rg
17.05.2013, 21:20
как использовать изменение "+" "-" на двух функциях.


Ааа так бы сразу сказал код правильный тогда вроде

fondamentolok
20.05.2013, 16:48
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
20.05.2013, 16:57
Написано все по русский не объявил mod

Norma_Cheater
20.05.2013, 17:03
Добавь после callback

int mod;

Active[X]
22.08.2013, 21:46
good tutorial!