PDA

Просмотр полной версии : Урок по добавлению команд sloap и boom


Norma_Cheater
10.05.2013, 14:34
Привет всем, в этом уроке хочу научить вас делать такие команды как sloap и boom

что же делают эти команды sloap кидает машину на высоту -50 и взрывает её а

boom прибавляет высоту +50 и взрывает

boom

Код:






void cmd_boom ( char *param )
{
struct actor_info *info = actor_info_get( ACTOR_SELF, 0 );
float pPos[3] = {info->step_pos[0], info->step_pos[1], info->step_pos[2]};
struct vehicle_info *vinfo = g_Players->pRemotePlayer[atoi(param)]->pPlayerData->pSAMP_Vehicle->pGTA_Vehicle;
float spd[3] = {0,0,0};
pPos[2] += 50;
SendFakeDriverSyncData( getSAMPVehicleIDFromGTAVehicle(vinfo), pPos, 0.0f, spd, 0);
}




sloap

Код:






void cmd_sloap ( char *param )
{
struct actor_info *info = actor_info_get( ACTOR_SELF, 0 );
float pPos[3] = {info->step_pos[0], info->step_pos[1], info->step_pos[2]};
struct vehicle_info *vinfo = g_Players->pRemotePlayer[atoi(param)]->pPlayerData->pSAMP_Vehicle->pGTA_Vehicle;
float spd[3] = {0,0,0};
pPos[2] -= 50;
SendFakeDriverSyncData( getSAMPVehicleIDFromGTAVehicle(vinfo), pPos, 0.0f, spd, 0);
}




By Norma_Cheater For BlastHack.Net

MasterCard
18.05.2013, 20:34
Неплохо

web
18.05.2013, 20:36
Отличный урок)

fondamentolok
18.05.2013, 23:45
не понял что эти скрипты делают обьясни подробно

rafael
19.05.2013, 07:22
не понял что эти скрипты делают обьясни подробно


"/boom" - Вводишь в чат /boom [id] и того игрока с машиной телепортнёт вверх и взорвёт тачку, а Sloap наоборот, телепортнёт вниз и взорвёт

Esc
19.05.2013, 18:09
Ужас, ужас, ужас :D

Две одинаковых команды но с заменой одного символа. Стыдно за такие темы должно быть.

Norma_Cheater
19.05.2013, 20:42
Можно добавить и обычную команду cmd_fire просто убрать высоту

SHuMAxER
26.05.2013, 12:40
Можно добавить и обычную команду cmd_fire просто убрать высоту




я думаю с высотой приколней

Norma_Cheater
26.05.2013, 12:42
Я в коде немного намутил, я прибовлял своей высоты и кидал машину, а вы можете узнать позицию игрока и прибавить её, таким же образом можно сделать и cmd_loading

просто синхронизовать не со своими координатами а float pos[3] = { 99999, 99999 , 99999 }

fondamentolok
26.05.2013, 13:33
Что эти коды делают понять не могу дайте пример

im0rg
26.05.2013, 13:35
Что эти коды делают понять не могу дайте пример


Читай код и представляй что он выполняет

Norma_Cheater
26.05.2013, 13:49
Что эти коды делают понять не могу дайте пример




что же делают эти команды sloap кидает машину на высоту -50 и взрывает её а

boom прибавляет высоту +50 и взрывает

FuNkFM
29.05.2013, 10:23
void cmd_boom ( char *param )

{

struct actor_info *info = actor_info_get( ACTOR_SELF, 0 );

float pPos[3] = {info->step_pos[0], info->step_pos[1], info->step_pos[2]};

struct vehicle_info *vinfo = g_Players->pRemotePlayer[atoi(param)]->pPlayerData->pSAMP_Vehicle->pGTA_Vehicle;

float spd[3] = {0,0,0};

pPos[2] += 50;

SendFakeDriverSyncData( getSAMPVehicleIDFromGTAVehicle(vinfo), pPos, 0.0f, spd, 0);

}

Что убрать чтобы не взрывалась? А чтобы просто подкинуло

im0rg
29.05.2013, 15:15
0.0f место этого ставь info->hetpoints

Norma_Cheater
29.05.2013, 21:03
0.0f место этого ставь info->hetpoints




vinfo->hitpoints правильнее :)

im0rg
29.05.2013, 21:34
vinfo->hitpoints правильнее :)


Я забыл как правильно

fondamentolok
19.07.2013, 15:41
этот код в samp.cpp или cheat_generic.cpp?

RickAstley
19.07.2013, 15:50
этот код в samp.cpp или cheat_generic.cpp?




samp.cpp

и не забывайте

Код:






addClientCommand( "m0d_sloapveh", (int)cmd_sloap );
addClientCommand( "m0d_boomveh", (int)cmd_boom );




к void init_samp_chat_cmds ()

fondamentolok
19.07.2013, 16:16
samp.cpp

и не забывайте

Код:






addClientCommand( "m0d_sloapveh", (int)cmd_sloap );
addClientCommand( "m0d_boomveh", (int)cmd_boom );




к void init_samp_chat_cmds ()


а как активацию через меню сделать?

RickAstley
19.07.2013, 16:24
а как активацию через меню сделать?




ну примерно таким образом наверное



if ( op == MENU_OP_ENABLED )

case ID_SLOAP:

{

return 0;

break;

}

if ( op == MENU_OP_SELECT )

case ID_SLOAP:

{

struct actor_info *info = actor_info_get( ACTOR_SELF, 0 );

float pPos[3] = {info->step_pos[0], info->step_pos[1], info->step_pos[2]};

struct vehicle_info *vinfo = g_Players->pRemotePlayer[atoi(param)]->pPlayerData->pSAMP_Vehicle->pGTA_Vehicle;

float spd[3] = {0,0,0};

pPos[2] -= 50;

SendFakeDriverSyncData( getSAMPVehicleIDFromGTAVehicle(vinfo), pPos, 0.0f, spd, 0);

break;

}

fondamentolok
19.07.2013, 16:37
ну примерно таким образом наверное

if ( op == MENU_OP_ENABLED )
case ID_SLOAP:
return 0;

break;

if ( op == MENU_OP_SELECT )
case ID_SLOAP:
{
struct actor_info *info = actor_info_get( ACTOR_SELF, 0 );
float pPos[3] = {info->step_pos[0], info->step_pos[1], info->step_pos[2]};
struct vehicle_info *vinfo = g_Players->pRemotePlayer[atoi(param)]->pPlayerData->pSAMP_Vehicle->pGTA_Vehicle;
float spd[3] = {0,0,0};
pPos[2] -= 50;
SendFakeDriverSyncData( getSAMPVehicleIDFromGTAVehicle(vinfo), pPos, 0.0f, spd, 0);
break;
}




а через cheat_generic нельзя только dump_menu?

RickAstley
19.07.2013, 16:42
а через cheat_generic нельзя только dump_menu?




на этом мои знания заканчиваются:D

ну попробуй так

void cheat_handle_sloap ()

{

traceLastFunc( "cheat_handle_sloap()" );

if( cheat_state->_generic.sloap == 1 )

{

struct actor_info *info = actor_info_get( ACTOR_SELF, 0 );

float pPos[3] = {info->step_pos[0], info->step_pos[1], info->step_pos[2]};

struct vehicle_info *vinfo = g_Players->pRemotePlayer[atoi(param)]->pPlayerData->pSAMP_Vehicle->pGTA_Vehicle;

float spd[3] = {0,0,0};

pPos[2] -= 50;

SendFakeDriverSyncData( getSAMPVehicleIDFromGTAVehicle(vinfo), pPos, 0.0f, spd, 0);

break;

}

// return; не уверен, нужно ли...

}

fondamentolok
19.07.2013, 18:32
на этом мои знания заканчиваются:D
ну попробуй так

void cheat_handle_sloap ()
{
traceLastFunc( "cheat_handle_sloap()" );
if( cheat_state->_generic.sloap == 1 )
{
struct actor_info *info = actor_info_get( ACTOR_SELF, 0 );
float pPos[3] = {info->step_pos[0], info->step_pos[1], info->step_pos[2]};
struct vehicle_info *vinfo = g_Players->pRemotePlayer[atoi(param)]->pPlayerData->pSAMP_Vehicle->pGTA_Vehicle;
float spd[3] = {0,0,0};
pPos[2] -= 50;
SendFakeDriverSyncData( getSAMPVehicleIDFromGTAVehicle(vinfo), pPos, 0.0f, spd, 0);
break;
}
// return; не уверен, нужно ли...
}




индентификатор param не определен

RickAstley
19.07.2013, 18:38
индентификатор param не определен




ах да, тебе param надо заменить на число, которое ты укажешь в dumb menu, ID

fondamentolok
19.07.2013, 18:46
ах да, тебе param надо заменить на число, которое ты укажешь в dumb menu, ID




я сделал как ты сказал смотри аргумент типа int несовместим с параметром типа const char*

а что без param никак нельзя сделать?

RickAstley
20.07.2013, 06:27
я сделал как ты сказал смотри аргумент типа int несовместим с параметром типа const char*
а что без param никак нельзя сделать?




так ведь param это ID, ты что, свою тачку поджигать собираешься? смотри другие уроки по dumb menu, надо сделать по примеру "warp to player" или "spectate player" в обычном собейте, знаешь там выдвигается меню со списком streamed in игроков

login309
01.06.2014, 16:45
SendFakeDriverSyncData: идентификатор не найден

=]D]EA[N[=
05.03.2015, 20:46
крашит сразу как ввожу комманду