Последние сообщения

Страницы: [1] 2 3 ... 10
1
Программирование / Re: Написание плагина. Настройка проекта
« Последний ответ от egor230 Апрель 04, 2020, 05:41:32 pm »
Если долго мучиться, что-нибудь получится. Искал в базе, вот нашёл.

Нашёл скриптовую команду игрок целиться в педа, проверяем педа.
Код: Javascript
  1. bool check_target = Command<COMMAND_IS_PLAYER_TARGETTING_CHAR>(CWorld::PlayerInFocus, CPools::GetPedRef(ped));
  2.  

Также научился изменять характеристики оружия, пока урон.

Код: Javascript
  1.         CWeapon weapon = ped->m_aWeapons[ped->m_nActiveWeaponSlot];
  2.         eWeaponType type = weapon.m_nType;
  3.         CWeaponInfo* w = CWeaponInfo::GetWeaponInfo(type);
  4.         w->m_nDamage = 500
  5.  

размер обоймы пока изменить не удалось.

Выяснил, что Shutdown помогает удалить текущее оружие.

Код: Javascript
  1. ped->SetAmmo((eWeaponType)tipe, 0);
  2. CWeapon weapon = ped->m_aWeapons[ped->m_nActiveWeaponSlot];
  3. ped->RemoveWeaponModel(idweapon);
  4. weapon.Shutdown();
  5. weapon.UpdateWeapons();
  6.  
  7.  

такой прогресс.
2
Программирование / Re: Написание плагина. Настройка проекта
« Последний ответ от egor230 Март 29, 2020, 03:51:48 pm »

Спасибо большое за ваш ответ уважаемый kenking.
Хорошо, что у нас есть база, где можно посмотреть функции, жаль, что с ней мало кто может работать продуктивно.   
Нужны знания ассемблера, он гораздо сложнее с++.

Изучаю sdk plugin. Вот, что выяснил.
Код: Javascript
  1. CCamera* cam;
  2. cam = (CCamera*)0x7E4688;
  3. //float res = cam->CarZoomIndicator; // режим камеры в авто от 0 до 5, 4 пропускает.
  4. //float res = cam->CarZoomValue;// что-то с зумом в авто, насколько приближенная к авто.
  5. //float res = cam->DistanceToWater;// странная дистанция до воды.
  6. //float res = player->GetHeading();// получить угол педа
  7. CWeapon weapon = ped->m_aWeapons[ped->m_nActiveWeaponSlot];
  8. int ammo = weapon.m_nTotalAmmo;// кол-во патронов в текущем оружии.
  9.  
  10. Также научился немного  работать с огнём.
  11. int fire;// переменная хранить id огня.
  12. CPed* ped = findpedinpool(p);//  получить указатель на педа.
  13. Command<COMMAND_START_CHAR_FIRE>(CPools::GetPedRef(ped), &fire);// создать огонь на педе.
  14.  
  15. CVehicle* car = findcarinpool(p);// получить указатель на авто.
  16. Command<COMMAND_START_CAR_FIRE>(CPools::GetVehicleRef(car), &fire);// создать огонь на авто.
  17.  
  18. float x = lua_tonumber(L, 1);
  19. float y = lua_tonumber(L, 2); float z = lua_tonumber(L, 3);
  20. int fire;// переменная хранить id огоня.
  21. CVector pos = { x,y,z };
  22.  
  23. Command<COMMAND_START_SCRIPT_FIRE>( pos.x, pos.y, pos.z, &fire);// создать огонь на координатах.
  24.  
  25. Command<COMMAND_REMOVE_SCRIPT_FIRE>(fire);// удалить огонь.
  26.  
  27.  
У меня возникли вопросы, при вызове этих функции, нет никакого эффекта

Код: Javascript
  1. CWeapon weapon = ped->m_aWeapons[ped->m_nActiveWeaponSlot];
  2. weapon.InitialiseWeapons();
  3. weapon.Shutdown();*/
  4. //weapon.ShutdownWeapons();
  5. weapon.Reload();
  6.  

может кто-то из вас с ними работает? Скажите, пожалуйста, как они действуют, на что они влияют?   
3
Программирование / Re: Написание плагина. Настройка проекта
« Последний ответ от kenking Март 24, 2020, 02:59:15 pm »
Цитировать
Интересно, можно ли  заменить их функциями?
Как я уже писал ранее, надо открыть базу и посмотреть соответствующие опкоды. Для разбора опкодов можно взять базу для GTA3, большинство опкодов для VC и тройки одинаковые. А база для тройки разобрана намного больше.

опкод 01F0: set_max_wanted_level_to 6 - CWanted::SetMaximumWantedLevel

опкод 010D: set_player $PLAYER_CHAR wanted_level_to 6 - CPlayerPed::SetWantedLevel
4
Программирование / Re: Написание плагина. Настройка проекта
« Последний ответ от egor230 Март 24, 2020, 01:45:11 am »
Спасибо  xanser  вам ответ.

Камера работает следующим образом
Код: Javascript
  1. CCamera* cam;
  2. cam = (CCamera*)0x7E4688;
  3. cam->Restore();
  4.  
 

Наконец-то удалось  установить угол для  камеры https://www.youtube.com/watch?v=kyDgJicxGdQ&feature=youtu.be

Спасибо за подсказку, теперь уровень розыска устанавливается нужный.
Код: Javascript
  1.  
  2. Command<COMMAND_SET_MAX_WANTED_LEVEL>(wanted);
  3.  
  4. Command<COMMAND_ALTER_WANTED_LEVEL>(CWorld::PlayerInFocus, wanted);
  5.  
  Интересно, можно ли  заменить их функциями?
Скажите, пожалуйста, какие функции отвечают за проверки целиться игрок ли в педа? Получил ли пед  урон от игрока, получил ли пед урон конкретного вида оружия?
5
Программирование / Re: Написание плагина. Настройка проекта
« Последний ответ от Saint Март 13, 2020, 11:39:51 pm »
Почему-то не могу получить 5 или 6 звёзд розыска с помощью скриптовой команды , 

cначало надо установить максимальный уровень розыска https://gtamods.com/wiki/01F0
6
Программирование / Re: Написание плагина. Настройка проекта
« Последний ответ от xanser Март 13, 2020, 04:33:27 pm »
Функции, которые вы написали, нет в "CCamera.h", может просто ещё не добавляли в репозиторий.

Поищи по адресам в CCamera.cpp, у меня другие названия.

Допустим, установили камеру в нужных нам координатах, но нужно её развернуть по вертикальной оси или наклонить от себя или от себя, для хорошего операторского ракурса, какие функции для этого использовать?

Функция 0x46A494 устанавливает точку, в которую камера смотрит.
7
По поводу Lua и прочее скрипты, нужно смотреть как на язык дизайнера, делать всякие расчеты, сложные функции какие нибудь ближе к харду, это совсем не лучшее решение. А вот выносить в луа, чисто для мода функции, как раз рациональное решение. Аналог тому, как рокстар сделал опкоды так называемые. Чисто геймдизайнерский подход.

По поводу изменить значения, ну луа об этом не обязан знать, об этом я писал статью по созданию плагина под Lua:
http://gtabuilder.ru/gta_vc/modding/other_lessons/120-sozdanie-prostogo-plagina-dlya-vice-lua.html
http://gtabuilder.ru/gta_vc/modding/other_lessons/121-sozdanie-plagina-dlya-vice-lua.html

Это один из моментов.


8
Вот написал новую миссию, конечно простую, выезжать взять пикап, доехать до точки.
Вот видео  https://www.youtube.com/watch?v=r6R4Rt4sGaU&feature=youtu.be
Постоянно что-то  обновляю, тестирую, нахожу баги,  исправляю их.   
9
Программирование / Re: Написание плагина. Настройка проекта
« Последний ответ от egor230 Март 09, 2020, 05:25:07 pm »
Спасибо большое за ответ уважаемый  xanser. Конечно мучений много, но это того стоит, например, миссии писать  легко. Ещё  можно как-то упростить, чтобы  ускорить написание кода скрипта.
Функции, которые вы написали, нет в "CCamera.h", может просто ещё не добавляли в репозиторий.
Скажите, пожалуйста, что делает эта функции?
Понимаю, что она принимает числа, где посмотреть какие именно ?
Код: Javascript
  1. CCamera* c;
  2.                                         c->SetNewPlayerWeaponMode(3,1,3);
  3. SetNearClipScript(float fNearClipScript);
  4.         void SetNewPlayerWeaponMode(short Mode, short MinZoom, short MaxZoom);
  5.         void SetZoomValueCamStringScript(short mode);
  6.         void SetZoomValueFollowPedScript(short mode);
  7.         void StartTransition(short mode);
  8.  

Допустим, установили камеру в нужных нам координатах, но нужно её развернуть по вертикальной оси или наклонить от себя или от себя, для хорошего операторского ракурса, какие функции для этого использовать?


Скажите, пожалуйста, функцию, которая проверяет игрок целиться в педа?

Почему-то не могу получить 5 или 6 звёзд розыска с помощью скриптовой команды , 
Command<COMMAND_ALTER_WANTED_LEVEL>(CWorld::PlayerInFocus, wanted); только максимум 4 звезды розыска можно получить.

10
пользуюсь только ВК
Жаль. В Дискорде есть много спецов. Целые группы, полные опытными модмейкерами.
Страницы: [1] 2 3 ... 10