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

  #1571  
Старый 01.07.2016, 13:01
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

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

Цитата:
Сообщение от Vadim.dll  

Это наверно из-за того что вот ты допустим открыл диалог 27 и проверка у тебя оказалась true и он выводит сообщение но она выводит пустоту потомучто ты не ввел ничего сейчас попробую попроще объяснить
первый диалог 27 test = 0 ты ввел в диалог test и хочешь чтобы при следуещем открытии диалога вывело тест
Второй раз открыл диалог 27 test = 1 проверка сбылась, но ты не ввел пока тут ничего

Какаято хрень но вроде по логике так
Мне кажется нет, вот полный код моего изобретения...

Код:





Код:
if (params->packetId == ScriptRPCEnumeration::RPC_ScrShowDialog)
    {
        stSAMPDialog sampDialog;
        BitStream bsData;
        params->bitStream->Read(sampDialog.wDialogID);
        params->bitStream->Read(sampDialog.bDialogStyle);

        params->bitStream->Read(sampDialog.bTitleLength);
        params->bitStream->Read(sampDialog.szTitle, sampDialog.bTitleLength);
        sampDialog.szTitle[sampDialog.bTitleLength] = 0;

        params->bitStream->Read(sampDialog.bButton1Len);
        params->bitStream->Read(sampDialog.szButton1, sampDialog.bButton1Len);
        sampDialog.szButton1[sampDialog.bButton1Len] = 0;

        params->bitStream->Read(sampDialog.bButton2Len);
        params->bitStream->Read(sampDialog.szButton2, sampDialog.bButton2Len);
        sampDialog.szButton2[sampDialog.bButton2Len] = 0;

        SF->getRakNet()->DecodeString(sampDialog.szInfo, 256, params->bitStream);

        char buff[64];
        sprintf(buff, "%d", sampDialog.wDialogID);
        if ((statusinfo == 1) && (sampDialog.wDialogID == 74))
        {
            statusinfo = 0;
            SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "%s", buff);
            SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), sampDialog.szInfo);
        }
    };

void CALLBACK getdialogtext(std::string param)
{
    statusinfo = 1;
    SF->getSAMP()->getPlayers()->pLocalPlayer->Say("/mn");
}
 
Ответить с цитированием

  #1572  
Старый 01.07.2016, 13:53
Vadim.dll
Участник форума
Регистрация: 04.07.2015
Сообщений: 168
С нами: 5715860

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

Проще можно сделать вот тут функи есть лянь

SF->getSAMP()->getDialog()->
 
Ответить с цитированием

  #1573  
Старый 01.07.2016, 14:18
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Цитата:
Сообщение от Vadim.dll  

Проще можно сделать вот тут функи есть лянь
SF->getSAMP()->getDialog()->
Не проще.
 
Ответить с цитированием

  #1574  
Старый 01.07.2016, 14:19
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

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

Как задержку сделать? Sleep фризит игру.

Цитата:
Сообщение от Vadim.dll  

Проще можно сделать вот тут функи есть лянь
SF->getSAMP()->getDialog()->
Все с этого и начиналось и дошло до хука.
 
Ответить с цитированием

  #1575  
Старый 01.07.2016, 14:29
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

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

Как задержку сделать? Sleep фризит игру.

Все с этого и начиналось и дошло до хука.
Таймер юзать. Слип нельзя юзать.
 
Ответить с цитированием

  #1576  
Старый 01.07.2016, 14:45
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

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

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

Таймер юзать. Слип нельзя юзать.
Можно пример? Я нашел другой пример, но он для mainloop был и я немного не понял как его юзать)
 
Ответить с цитированием

  #1577  
Старый 01.07.2016, 15:58
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

static DWORD timer = 0;

void mainloop(){

if(GetTickCount() - timer > 1000){ // ms

//code;

timer = GetTickCount();

}
 
Ответить с цитированием

  #1578  
Старый 01.07.2016, 16:52
Vadim.dll
Участник форума
Регистрация: 04.07.2015
Сообщений: 168
С нами: 5715860

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

Тогда поставить хук на OnCloseDialog и заносить каждый раз инфу в переменные
 
Ответить с цитированием

  #1579  
Старый 01.07.2016, 17:08
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Цитата:
Сообщение от Vadim.dll  

Тогда поставить хук на OnCloseDialog и заносить каждый раз инфу в переменные
Нет такого РПЦ. Есть DIALOGRESPONSE
 
Ответить с цитированием

  #1580  
Старый 01.07.2016, 17:54
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от Vadim.dll  

Должно быть так: SF->getGame()->emulateGTAKey(GTA_KEY_1,true)
Но оно не работает лично у меня например если нужно в машину залезть то не сработает нензнаю крч какаято фигня оно наверно с чатом и диалогами работать будет может из-за того что в игре все кнопки обрабатываются через DirectKey помоему и там задержка нужна после нажатия
там не true, а некое значение, например для клавиши UpDown 255 - идем назад, -1 - идти вперед, 65535 - идти вперед шагом
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.