HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #231  
Старый 24.07.2015, 17:37
Harch
Познающий
Регистрация: 08.07.2015
Сообщений: 40
С нами: 5709574

Репутация: 0
По умолчанию

Также интересует вопрос, как поставить игру на паузу прямо из плагина? Какая функция?
 
Ответить с цитированием

  #232  
Старый 24.07.2015, 18:06
spiceman
Участник форума
Регистрация: 18.03.2013
Сообщений: 104
С нами: 6921972

Репутация: 0
По умолчанию

урсхадов фип кто там ау разработчик в общем. фикс говноедство, типа

Код:





Код:
void CALLBACK mainloop() {
    static bool init = false;
    if (!init) {
        if (GAME == nullptr)
            return;

        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;

        if (!SF->getSAMP()->IsInitialized())
            return;

        SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "SAMPFUNCS Plugin loaded.");

        init = true;
    }
}

bool APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved) {
    switch (dwReasonForCall) {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
    }
    return true;
}


сделойте в методе инициализации плагина еще один параметр, колбек, вызывающийся после инициализации плагина. а основная петля будет вызываться уже после инициализации.

т.е будет нечто такое прекрасное, за что вам будут благодарны боги всех религий

Код:





Код:
void onPluginInit() {
    SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC);
    SF->getSAMP()->registerChatCommand("showinfo", cmd_show_info_player);
}

void mainloop() {
    if(SF->getGame()->isKeyPressed( 'H' )) {           
        int &iDialogStatus = SF->getSAMP()->getDialog()->iIsActive;
        iDialogStatus ^= true;
        if(!iDialogStatus)
            SF->getSAMP()->getMisc()->ToggleCursor(false);
    };
}

bool APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved) {
    switch (dwReasonForCall) {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(onPluginInit, mainloop, hModule);
    }
    return true;
}
 
Ответить с цитированием

  #233  
Старый 24.07.2015, 22:04
Harch
Познающий
Регистрация: 08.07.2015
Сообщений: 40
С нами: 5709574

Репутация: 0
По умолчанию

Попытался так. Но мотоциклы и машины так тпшит, а вот поезд - нет :C Что не так?

Код:





Код:
void vehicleTeleport(float x, float y, float z)
{
    actor_info *self = SF->getGame()->actorInfoGet(VEHICLE_SELF, VEHICLE_ALIVE);
    self->vehicle->base.matrix[4 * 3] = x;
    self->vehicle->base.matrix[4 * 3 + 1] = y;
    self->vehicle->base.matrix[4 * 3 + 2] = z;
}
 
Ответить с цитированием

  #234  
Старый 25.07.2015, 01:34
slonoboyko
Познающий
Регистрация: 26.05.2014
Сообщений: 40
С нами: 6297017

Репутация: 0
По умолчанию

Цитата:
Сообщение от Harch  

Попытался так. Но мотоциклы и машины так тпшит, а вот поезд - нет :C Что не так?

Код:





Код:
void vehicleTeleport(float x, float y, float z)
{
    actor_info *self = SF->getGame()->actorInfoGet(VEHICLE_SELF, VEHICLE_ALIVE);
    self->vehicle->base.matrix[4 * 3] = x;
    self->vehicle->base.matrix[4 * 3 + 1] = y;
    self->vehicle->base.matrix[4 * 3 + 2] = z;
}

Насколько я знаю, поезд не может тпхнутся. Он всегда на рельсах
 
Ответить с цитированием

  #235  
Старый 25.07.2015, 03:57
Harch
Познающий
Регистрация: 08.07.2015
Сообщений: 40
С нами: 5709574

Репутация: 0
По умолчанию

По идее при ТП поезд должен встать на ближайшие рельсы. В скриптах, по крайней мере, при установке поезда так.

Ладно, как тогда поставить игру на паузу? Аналог нажатия escape фактически?
 
Ответить с цитированием

  #236  
Старый 26.07.2015, 16:56
CarLCas
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами: 6755146

Репутация: 78
По умолчанию

Как получить скин игрока?
 
Ответить с цитированием

  #237  
Старый 26.07.2015, 17:37
White_116
Новичок
Регистрация: 30.10.2014
Сообщений: 18
С нами: 6070899

Репутация: 3
По умолчанию

Цитата:
Сообщение от CarLCas  

Как получить скин игрока?
Попробуй:

Код:





Код:
SF->getSAMP->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.model_alt_id;
    //or 
SF->getSAMP->getPlayers()->pRemotePlayer[id]->pPlayerData->pSAMP_Actor->pGTA_Ped->base.model_alt_id;
 
Ответить с цитированием

  #238  
Старый 27.07.2015, 12:44
Enjoy
Участник форума
Регистрация: 13.07.2014
Сообщений: 164
С нами: 6227977

Репутация: 83
По умолчанию

Можно ли перехватить как-то выгрузку плагина (т.е. pfree NAME).

Я просто хочу убить поток в это время.
 
Ответить с цитированием

  #239  
Старый 27.07.2015, 18:19
CarLCas
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами: 6755146

Репутация: 78
По умолчанию

Подскажите пожалуйста как получить координаты игрока сидящего в машине?
 
Ответить с цитированием

  #240  
Старый 29.07.2015, 03:56
return
Участник форума
Регистрация: 23.10.2010
Сообщений: 125
С нами: 8186006

Репутация: 1
По умолчанию

Как выводить в рендер значения переменных?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.