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

  #251  
Старый 18.01.2014, 11:49
Chesko
Познающий
Регистрация: 07.10.2013
Сообщений: 31
С нами: 6630532

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

Цитата:
Сообщение от Спойлер  

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

самый простой вариант
Цитата:
Сообщение от MoRG  

Код:





Код:
void addCmd ( char *name, int funci )
{
    if ( name == NULL || funci== NULL)
        return;
 
/*    if ( strlen(name) > 30 )
    {
        Log( "Error: command name '%s' was too long.", name );
        return;
    }
//Проверка на длину команды, реализуй..
*/
    uint32_t    data = g_dwSAMP_Addr + 0x212A28;
    uint32_t    func = g_dwSAMP_Addr + 0x7A8C0;
    __asm mov eax, data
    __asm mov ecx, [eax]
    __asm push funci
    __asm push name
    __asm call func
}



Вот так пробовал??
Не получается ни в какую, прошу помощи, крч.
 
Ответить с цитированием

  #252  
Старый 18.01.2014, 14:34
MoRG
Познающий
Регистрация: 27.06.2013
Сообщений: 52
С нами: 6776307

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

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

Не получается ни в какую, прошу помощи, крч.

сам пользуюсь таким кодом все ок
 
Ответить с цитированием

  #253  
Старый 24.01.2014, 18:55
Skel
Познающий
Регистрация: 31.03.2013
Сообщений: 92
С нами: 6903095

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

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

сам пользуюсь таким кодом все ок

аналогично
 
Ответить с цитированием

  #254  
Старый 07.02.2014, 15:23
William_Young1
Новичок
Регистрация: 17.07.2013
Сообщений: 11
С нами: 6748091

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

Код:





Код:
case ID_CHEAT_CFLY:
{
                    cheat_state->_generic.coord_fly ^= 1;
                    if(cheat_state->_generic.coord_fly == 0) {
                        float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ};
                        pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
                        cheat_teleport(pos,0);
                    }
                    GTAfunc_LockActor(cheat_state->_generic.coord_fly);
                    break;
                }


Вот код из dumb_menu.cpp

Как это реализовать через AntTweakBar?
 
Ответить с цитированием

  #255  
Старый 07.02.2014, 22:35
MasterCard
Познающий
Регистрация: 19.03.2013
Сообщений: 83
С нами: 6920791

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

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

Код:





Код:
case ID_CHEAT_CFLY:
{
                    cheat_state->_generic.coord_fly ^= 1;
                    if(cheat_state->_generic.coord_fly == 0) {
                        float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ};
                        pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
                        cheat_teleport(pos,0);
                    }
                    GTAfunc_LockActor(cheat_state->_generic.coord_fly);
                    break;
                }


Вот код из dumb_menu.cpp
Как это реализовать через AntTweakBar?

Хватит простого включения функции в АТБ без этого
 
Ответить с цитированием

  #256  
Старый 08.02.2014, 14:56
William_Young1
Новичок
Регистрация: 17.07.2013
Сообщений: 11
С нами: 6748091

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

Функция активируется, но работает очень криво..
 
Ответить с цитированием

  #257  
Старый 09.02.2014, 03:19
Maddy
Познающий
Регистрация: 08.04.2013
Сообщений: 35
С нами: 6891688

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

William_Young1,думаю ты хотел узнать как вставить эту функцию в ATB

В начало после всех TwBar

Код:





Код:
void TW_CALL function(void *)
{
  cheat_state->_generic.coord_fly ^= 1;
  if(cheat_state->_generic.coord_fly == 0)
  {
  float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ;
  pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
  cheat_teleport(pos,0);
  }
  GTAfunc_LockActor(cheat_state->_generic.coord_fly);
}


В void initializeBarsMenu()

[

Код:





Код:
TwAddButton(twBar_NewCheats,"001", function, NULL, "label='My Function'");
Код:
// параметры:
// twBar_NewCheats - бар(окно), в котором будет кнопка 
// 001 - напиши что угодно, главное чтобы не совпадало с другими элементами бара (кнопки и т.д) 
// function - наша TW_CALL функция 
// null - параметр client data. Обычно используется для получения ида нажатого элемента бара. Нам это не нужно, так что пусть будет нулем 
// "label='My Function'" - параметры элемента бара. Label - название кнопки, если его не указать то кнопка будет называться ]
// "001" - вторым параметром




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

  #258  
Старый 09.02.2014, 13:59
William_Young1
Новичок
Регистрация: 17.07.2013
Сообщений: 11
С нами: 6748091

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

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

William_Young1,думаю ты хотел узнать как вставить эту функцию в ATB
В начало после всех TwBar

Код:





Код:
void TW_CALL function(void *)
{
  cheat_state->_generic.coord_fly ^= 1;
  if(cheat_state->_generic.coord_fly == 0)
  {
  float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ;
  pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
  cheat_teleport(pos,0);
  }
  GTAfunc_LockActor(cheat_state->_generic.coord_fly);
}


В void initializeBarsMenu()

[

Код:





Код:
TwAddButton(twBar_NewCheats,"001", function, NULL, "label='My Function'");
Код:
[/I][/FONT]
// параметры:
// twBar_NewCheats - бар(окно), в котором будет кнопка 
// 001 - напиши что угодно, главное чтобы не совпадало с другими элементами бара (кнопки и т.д) 
// function - наша TW_CALL функция 
// null - параметр client data. Обычно используется для получения ида нажатого элемента бара. Нам это не нужно, так что пусть будет нулем 
// "label='My Function'" - параметры элемента бара. Label - название кнопки, если его не указать то кнопка будет называться ]
[FONT=Consolas][I]// "001" - вторым параметром






Есть написанный коорд флай

Его код лежит в cheat_generic.cpp

Функция работает, но очень криво без

Код:





Код:
void TW_CALL function(void *)
{
  cheat_state->_generic.coord_fly ^= 1;
  if(cheat_state->_generic.coord_fly == 0)
  {
  float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ;
  pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
  cheat_teleport(pos,0);
  }
  GTAfunc_LockActor(cheat_state->_generic.coord_fly);
}


Через dumb_menu все работает, я знаю где там этот код объявить

Недавно перешел на ATB и столкнулся с этой проблемой, незнаю куда этот код засунуть..
 
Ответить с цитированием

  #259  
Старый 09.02.2014, 20:26
Maddy
Познающий
Регистрация: 08.04.2013
Сообщений: 35
С нами: 6891688

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

Я сохранил оригинальную функцию, так что не удивительно что не работает. Твоя функция циклическая, поэтому вставь ее в подходящее место и сделай переключатель cheat_state->_generic.coord_fly 1 0
 
Ответить с цитированием

  #260  
Старый 10.02.2014, 08:14
Chesko
Познающий
Регистрация: 07.10.2013
Сообщений: 31
С нами: 6630532

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

Господа, возникла небольшая проблема: написал свою .dll'ку, все дела. Если подгружаю её инжектором - работает на ура, но если переименовать её в .asi и кинуть в папку с игрой, то крашит на моментах с ASM кодом. Тоесть на моментах с добавлением строки в чат и добавлением команды.

---

Разобрался сам
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.