[mod_sa C++] Добавляем команду /warp - Форум Cheat-Master.ru
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Sanoxxx, Alowir  
[mod_sa C++] Добавляем команду /warp
RedisKa Дата: Суббота, 20.10.2012, 23:21 | Сообщение # 1
Бывалый
Сообщений: 332
Статус: Offline
Доброго времени суток ув. юзеры.
Сегодня я вам покажу как добавить команду /warp в собейт.
Команда позволяет нам телепортироваться к указанному игроку в радиусе прорисовки.
/warp <player ID>
Начнем.
Для начала добавим клиентскую команду в samp.cpp:
После
Код
addClientCommand( "m0d_teleport_locations", (int)cmd_tele_locations );
вставим это:
Код
addClientCommand( "warp", (int)cmd_warp ); // добавляем клиентскую команду

Дальше ищем вот это:
Код
void cmd_current_server ( char *param )
{
       addMessageToChatWindow( "Server Name: %s", g_SAMP->szHostname );
       addMessageToChatWindow( "Server Address: %s:%i", g_SAMP->szIP, g_SAMP->ulPort );
       addMessageToChatWindow( "Username: %s", getPlayerName(g_Players->sLocalPlayerID) );
}

И после этого вставляем данный код:
Код
void cmd_warp( char *param )        
{       
struct actor_info    *actor = NULL; // получение инфы о игроке
int    playerid = atoi(param); // объявляем переменную playerid
float pos[3]; // объявляем массив который состоит из 3ех координат
        if ( g_Players == NULL ) // если игроков не найдено - вернуться на исходную
         return;
        if ( g_Players->iIsListed[playerid] != 1 ) // Если нет n ида в радиусе прорисовки
        {
         addMessageToChatWindow( "Player does not exist." ); // Добавить в чат: Player does not exist.
         return;
        }

        if ( g_Players->pRemotePlayer[playerid]->pPlayerData == NULL
         ||  g_Players->pRemotePlayer[playerid]->pPlayerData->pSAMP_Actor == NULL ) // если не получена инфа о выбранном игроке
        {
         if ( vect3_near_zero(g_stStreamedOutInfo.fPlayerPos[playerid]) ) // если игрок находится вне радиуса прорисовки
         {
          addMessageToChatWindow( "Player is not streamed in." );  // написать в чат Player is not streamed in.
          return;
         }

         g_stStreamedOutInfo.fPlayerPos[playerid][1] += 1.0f; // получение инфы о позиции выбранного игрока

         cheat_teleport( g_stStreamedOutInfo.fPlayerPos[playerid], 0 ); // телепорт к выбранному игроку
        }

        if ( !getPlayerPos(playerid, pos) ) // Если не получена инфа о игроке
        {
         addMessageToChatWindow( "Bad player info." ); // Добавить в чат: Bad player info.
         return;
        }

        if ( g_Players->pRemotePlayer[playerid]->pPlayerData != NULL
         &&  g_Players->pRemotePlayer[playerid]->pPlayerData->pSAMP_Actor != NULL )
         actor = g_Players->pRemotePlayer[playerid]->pPlayerData->pSAMP_Actor->pGTA_Ped; // перевод из гта ид в самп ид

        if ( actor != NULL && ACTOR_IS_DEAD(actor) ) // Если игрок мертв
        {
         addMessageToChatWindow( "Player is dead." ); // Добавить в чат: Player is dead.
         return;
        }

        pos[1] += 1.0f; // изменяем позиция по х на +1
        cheat_teleport( pos, actor->base.interior_id ); // телепорт к игроку
}

Скрин:

Конечно, лучше всего было если бы вы писали это вручную, а не просто копировали. Иначе в этих уроках нету смысла smile
Пишу свой собейт, решил сделать и поделится. Большое спасибо Голубю, без него не сделал бы. Удачи)
Прикрепления: 8986960.png (159.2 Kb)
Manriqa Дата: Суббота, 20.10.2012, 23:29 | Сообщение # 2
Боец
Сообщений: 122
Статус: Offline
Quote (FriendlyCheater)
Пишу свой собейт

Когда примерно готов будет? Оценим wink
RedisKa Дата: Суббота, 20.10.2012, 23:30 | Сообщение # 3
Бывалый
Сообщений: 332
Статус: Offline
Quote (Manriqa)
Когда примерно готов будет? Оценим

Думаю ещё не скоро. Да и писал для себя)
Если всё будет как я планирую, то выложу в паблик)
[CM]BaNNan Дата: Суббота, 20.10.2012, 23:37 | Сообщение # 4
Любитель
Сообщений: 35
Статус: Offline
А что за команда /warp?
RedisKa Дата: Суббота, 20.10.2012, 23:38 | Сообщение # 5
Бывалый
Сообщений: 332
Статус: Offline
[CM]BaNNan, телепорт к указанному игроку
/warp <player id>
alex3931 Дата: Вторник, 23.10.2012, 08:28 | Сообщение # 6
Боец
Сообщений: 129
Статус: Offline
Было бы неплохо после каждого кода в комментариях писать описания, половина когда понятна половина нет)))

Пишу софт на заказ.Скайп sprilt

Сообщение отредактировал alex3931 - Вторник, 23.10.2012, 08:28
RedisKa Дата: Четверг, 01.11.2012, 17:47 | Сообщение # 7
Бывалый
Сообщений: 332
Статус: Offline
Обновил
shoma19981 Дата: Вторник, 20.11.2012, 15:50 | Сообщение # 8
Боец
Сообщений: 201
Статус: Offline
RedisKa, Спс за урок

Добавлено (20.11.2012, 15:50)
---------------------------------------------
RedisKa, Всё всё получилось моя ошибка была smile

RedisKa Дата: Понедельник, 24.12.2012, 00:41 | Сообщение # 9
Бывалый
Сообщений: 332
Статус: Offline
upd
RedisKa Дата: Суббота, 05.01.2013, 22:50 | Сообщение # 10
Бывалый
Сообщений: 332
Статус: Offline
убрал ошибки
_AMG_ Дата: Суббота, 05.01.2013, 22:54 | Сообщение # 11
Бывалый
Сообщений: 319
Статус: Offline
cheat_teleport( g_stStreamedOutInfo.fPlayerPos[playerid], 0 ); // телепорт к выбранному игроку

cheat_teleport( pos, actor->base.interior_id ); // телепорт к игроку

а вторая зачем если первая телепортирует?


--MURDERED--
AMG CARTEL DOBRA
Skype: murdered1017
RedisKa Дата: Воскресенье, 06.01.2013, 00:17 | Сообщение # 12
Бывалый
Сообщений: 332
Статус: Offline
можно юзать только это
cheat_teleport( pos, actor->base.interior_id ); // телепорт к игроку
работать будет полюбому, просто когда я это все делал, я брал из стандартных функций и изменял под себя
pr9n Дата: Воскресенье, 06.01.2013, 02:04 | Сообщение # 13
Авторитет
Сообщений: 921
Статус: Offline
Код
void cmd_warp( char *param )         
{        
struct actor_info    *actor = NULL; // получение инфы о игроке  
int  playerid = atoi(param); // объявляем переменную playerid  
float pos[3]; // объявляем массив который состоит из 3ех координат  
         if ( g_Players == NULL ) // если игроков не найдено - вернуться на исходную  
          return;  
         if ( g_Players->iIsListed[playerid] != 1 ) return addMessageToChatWindow( "Player does not exist." ); //

         if ( g_Players->pRemotePlayer[playerid]->pPlayerData == NULL  
          ||  g_Players->pRemotePlayer[playerid]->pPlayerData->pSAMP_Actor == NULL ) // если не получена инфа о выбранном игроке  
         {  
          if ( vect3_near_zero(g_stStreamedOutInfo.fPlayerPos[playerid]) ) return addMessageToChatWindow( "Player is not streamed in." );  // написать в чат Player is not streamed in.  

          g_stStreamedOutInfo.fPlayerPos[playerid][1] += 1.0f; // получение инфы о позиции выбранного игрока  
          cheat_teleport( g_stStreamedOutInfo.fPlayerPos[playerid], 0 ); // телепорт к выбранному игроку  
         }  

         if ( !getPlayerPos(playerid, pos) ) return addMessageToChatWindow( "Bad player info." ); // Добавить в чат: Bad player info.  

         if ( g_Players->pRemotePlayer[playerid]->pPlayerData != NULL  
          &&  g_Players->pRemotePlayer[playerid]->pPlayerData->pSAMP_Actor != NULL )  
          actor = g_Players->pRemotePlayer[playerid]->pPlayerData->pSAMP_Actor->pGTA_Ped; // перевод из гта ид в самп ид  

         if ( actor != NULL && ACTOR_IS_DEAD(actor) ) return addMessageToChatWindow( "Player is dead." ); //  

         pos[1] += 1.0f; // изменяем позиция по х на +1  
         cheat_teleport( pos, actor->base.interior_id ); // телепорт к игроку  
}
По моему так меньше и тоже будет работать


[url=http://vk.com/ipr9n][img]http://i.imgur.com/kaVwM9K.png[/img][/url][url=http://instagram.com/ipr9n][img]http://i.imgur.com/eNAwOKh.jpg[/img][/url]
EnD1ZeR Дата: Воскресенье, 06.01.2013, 11:31 | Сообщение # 14
Дизель
Сообщений: 137
Статус: Offline
Цитата (RedisKa)
в радиусе прорисовки

и нахуя, простите? не лучше ли сделать для всех игроков?


C:

Сообщение отредактировал EnD1ZeR - Воскресенье, 06.01.2013, 11:32
_AMG_ Дата: Воскресенье, 06.01.2013, 11:40 | Сообщение # 15
Бывалый
Сообщений: 319
Статус: Offline
EnD1ZeR, для Рп сервера, чтобы не кикало
Прикрепления: 0558010.gif (2.4 Kb)


--MURDERED--
AMG CARTEL DOBRA
Skype: murdered1017
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
billienq1 [01:47]

staciah1 [01:15]

maksmovictimofej [00:18]

jamiedv6 [21:25]

billieds7 [20:51]

aprilez9 [15:57]

am9350450 [14:36]

dcvfre [11:04]

Sheroz [10:38]

dominiquevp60 [08:59]

derrickuy11 [05:48]

leannaaw60 [04:45]

nonaxn11 [23:52]