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/)
Перед тем как продолжать читать сначала смотрим тему эту (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/)