Исходник MFPS 2.0: Multiplayer FPS + 20 аддонов

Пользователь
Статус
Оффлайн
Регистрация
14 Апр 2023
Сообщения
76
Реакции[?]
32
Поинты[?]
25K

Пожалуйста, авторизуйтесь для просмотра ссылки.
MFPS 2.0 is an advanced multiplayer first-person shooter game kit to help kickstart the development of your own online multiplayer First Person Shooter (FPS) game. this template includes all the basics and tons of advanced systems and features that all multiplayer shooters require; this game framework is very polished, utilizing the latest Unity game engine technologies with high efficiency and performance, including a professional UI using full UGUI, player Mecanim animations, and plenty of options to customize to your taste and needs. Utilizing Photon PUN 2 as the network framework solution, you have three different game modes in the core of the kit: Free for All, Team Death Match, and Capture the Flag. Additionally, there are four player classes that you can modify to your taste and seven different kinds of weapons: Rifle, Sniper, Shotgun, Pistol, Grenade, Launcher, and Knife. This kit comes with AAA graphics-ready and is very easy to customize and reskin even for beginner developers; the built-in editor tutorials and documentation, plus the complete source C# code, make this kit one of the world's best online multiplayer development assets available right now.

В архиве добавлены 20 аддонов последней версии для MFPS 1.9.3
ULogin
Clan system
Class customization
Customizer
Cover point
Gunrace
Elimination
Emblems
Game resume pro
Kill streak notifer
Level system
Mini map
Mobile control
Paypal for shop
Player pack 1
Player pack 2
Player selector
Scope pro
Shop
Weapon pack 1
Скачать:



Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.



FPLegs+MatchMakingPro

Интеграция с ассетом Destroit Destruction

Интеграция с ассетом Loading screen и аддон Game News
https://yougame.biz/threads/290884/post-2919020

Аддон Demolition
https://yougame.biz/threads/290884/post-2919463
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
14 Апр 2023
Сообщения
76
Реакции[?]
32
Поинты[?]
25K
Фикс если есть баг с оружием

Problem: FPWeapons don't get back to the default position when aiming after running or walking, when using Animator and using custom walk and run animations.

Report: ⁠Неизвестно


In bl_WeaponAnimation.cs > add these function:
Код:
/// <summary>
    ///
    /// </summary>
    private void OnDisable()
    {
        if (m_AnimationType == AnimationType.Animator)
        {
            bl_EventHandler.onLocalAimChanged -= OnAim;
        }  
    }

/// <summary>
    ///
    /// </summary>
    /// <param name="isAiming"></param>
    void OnAim(bool isAiming)
    {
        if (m_AnimationType == AnimationType.Animator)
        {
            if (!isAiming || ParentGun.FPState == PlayerFPState.Reloading) return;

            animator.Play("Idle", 0, 0);
        }
    }
In the same script, in the OnEnable() function > add this line:
Код:
  bl_EventHandler.onLocalAimChanged += OnAim;
after this line:
Код:
 if (AnimatedMovements) { playerReferences.weaponBob.AnimatedThis(UpdateAnimated, true); } else { playerReferences.weaponBob.AnimatedThis(null, false); }
Finally, make sure your FPWeapon Animator Controller does have an Idle Animation Clip in the Idle StateMachine.

----------------------------------------------------------------------------

Фикс не засчитываются очки в режиме FFA:

In bl_PlayerHealtManager.cs > AddKill(...) > change this line:
Код:
 if (elimatedTeam != Team.All && elimatedTeam != bl_PhotonNetwork.LocalPlayer.GetPlayerTeam())
With:
Код:
  if (elimatedTeam == Team.All || elimatedTeam != bl_PhotonNetwork.LocalPlayer.GetPlayerTeam())
In bl_AIShooterHealth.cs > Die(...) > change this line:
Код:
 if (shooterAgent.AITeam != Team.All && shooterAgent.AITeam != bl_MFPS.LocalPlayer.Team)
With:
Код:
 if (shooterAgent.AITeam == Team.All || shooterAgent.AITeam != bl_MFPS.LocalPlayer.Team)
 
Пользователь
Статус
Оффлайн
Регистрация
14 Апр 2023
Сообщения
76
Реакции[?]
32
Поинты[?]
25K
Problem: Players can join to private rooms using the auto-matchmaking
Fix:
Add this parameter In bl_Lobby.cs:
Код:
 public bool JoinedWithPassword { get; set; } = false;
In the same script > SetRoomPassword(...) > add this line:
Код:
 JoinedWithPassword = true;
after these lines:
Код:
 if (checkingRoom.PlayerCount < checkingRoom.MaxPlayers)                {
in bl_WaitingRoom.cs > WaitUntilFullyJoin() > add these lines:
Код:
       if ((string)bl_PhotonNetwork.CurrentRoom.CustomProperties[PropertiesKeys.RoomPassword] != string.Empty && !bl_Lobby.Instance.JoinedWithPassword)        {            // if not, that means the player enter to a room with password using the matchmaking,            // the matchmaking is controller by Photon so it doesn't check if a room has a password before select it            // so we can only determine this once joined to the room            PhotonNetwork.LeaveRoom();            Debug.Log("Leaving room because this is a private room.");            yield break;        }
after these lines:
Код:
 while (!PhotonNetwork.InRoom)        {            yield return null;        }
In bl_Lobby.cs > CreateRoom(...) > add this line:
Код:
 JoinedWithPassword = true;
After these lines:
Код:
 SetLobbyChat(false); justCreatedRoomName = roomInfo.roomName;
 
Пользователь
Статус
Оффлайн
Регистрация
14 Апр 2023
Сообщения
76
Реакции[?]
32
Поинты[?]
25K
Инструкция по интеграции с ассетом DestroyIt - Destruction System

1) Импортировать ассет
2) На нужной сцене Открыть в верхнем меню Window => DestroyIt и выбрать Setup – Minimal
3) Переместить на сцену префаб Column из папки \DestroyIt\Demos (safe to delete)\Prefabs\Destructible Objects\Pristine
4)Добавить префабу Column два компонента PhotonView и PhotonTransformView ( во втором компоненте должны быть отмемечены галочки Position и Rotation)
5) В скрипте \DestroyIt\Scripts\Behaviors\Destructible.cs перед методом
Код:
public void AppleDamage(float amount)
добавить
Код:
[Photon.Pun.PunRPC]
6) В скрипте bl_Bullet.cs найти
Код:
private bool OnHit(RaycastHit hit)
и после строки
Код:
if (!bulletData.isNetwork)
        {
добавить
Код:
DestroyIt.Destructible destObj = hit.collider.gameObject.GetComponentInParent<DestroyIt.Destructible>();
            if (destObj != null)
            {
            PhotonView pv = destObj.GetComponent<PhotonView>();
            pv.RPC("ApplyDamage", RpcTarget.All, bulletData.Damage);
            }
На этом все Интеграция завершена Можно тестить
 
Пользователь
Статус
Оффлайн
Регистрация
14 Апр 2023
Сообщения
76
Реакции[?]
32
Поинты[?]
25K
Интеграция с ассетом Loading Screen

1) На сцене MainMenu перенсти выбранный префаб SceneLoaders


2) Для MFPS 19.x в скрипте bl_SimpleSceneLoader.cs раскоментировать строку #define Loading_Screen

Для версии 1.8.х

В скрипте bl_Lobby.cs находим метод IEnumerator MoveToGameScene():

в нем стороку
Код:
 bl_UtilityHelper.LoadLevel((string)bl_PhotonNetwork.CurrentRoom.CustomProperties[PropertiesKeys.SceneNameKey]);
заменяем на
Код:
 bl_SceneLoaderManager.LoadScene((string)bl_PhotonNetwork.CurrentRoom.CustomProperties[PropertiesKeys.SceneNameKey]);
Интеграция завершена
________________________________________________________________________________________________

Аддон новостей

Пожалуйста, авторизуйтесь для просмотра ссылки.


скачать
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
14 Апр 2023
Сообщения
76
Реакции[?]
32
Поинты[?]
25K
Сверху Снизу