Une bibliothèque PC pour Gorilla Tag qui gère diverses choses liées à la pièce (et plus encore ?)
Si vous ne souhaitez pas installer manuellement, vous pouvez installer ce mod avec Monke Mod Manager
Si votre jeu n'est pas modifié avec BepinEx, FAITES-LE D'ABORD ! Accédez simplement à la dernière version de BepinEx et extrayez BepinEx_x64_VERSION.zip directement dans le dossier de votre jeu, puis exécutez le jeu une fois pour installer BepinEx correctement.
Ensuite, accédez à la dernière version de ce mod et extrayez-la directement dans le dossier de votre jeu. Assurez-vous qu'il est extrait directement dans le dossier de votre jeu et non dans un sous-dossier !
Avec la sortie d'Utilla 1.5.0, les mods doivent fonctionner uniquement dans les modes de jeu modifiés, et non dans n'importe quel lobby privé. Utilla fournit des attributs faciles à utiliser pour rendre cette transition aussi simple que possible. Voir ce commit pour un exemple de mise à jour de votre mod pour fonctionner avec le nouveau système.
Savoir si le joueur se trouve dans une salle modifiée est un élément très important pour garantir que votre mod ne sera pas utilisé pour tricher. Utilla facilite cela en fournissant des attributs à déclencher lorsqu'un lobby modifié est rejoint.
Le [ModdedGamemode]
doit être appliqué à la classe plugin de votre mod pour utiliser les autres attributs. [ModdedGamemodeJoin]
et [ModdedGamemodeLeave]
peuvent être appliqués à n'importe quelle méthode void au sein de cette classe, avec un paramètre de chaîne facultatif contenant la chaîne complète du mode de jeu. Ces méthodes sont appelées lorsqu'une salle modifiée est respectivement rejointe ou quittée.
using System ;
using BepInEx ;
using Utilla ;
namespace ExamplePlugin
{
[ BepInPlugin ( " org.legoandmars.gorillatag.exampleplugin " , " Example Plugin " , " 1.0.0 " ) ]
[ BepInDependency ( " org.legoandmars.gorillatag.utilla " , " 1.5.0 " ) ] // Make sure to add Utilla 1.5.0 as a dependency!
[ ModdedGamemode ] // Enable callbacks in default modded gamemodes
public class ExamplePlugin : BaseUnityPlugin
{
bool inAllowedRoom = false ;
private void Update ( )
{
if ( inAllowedRoom )
{
// Do mod stuff
}
}
[ ModdedGamemodeJoin ]
private void RoomJoined ( string gamemode )
{
// The room is modded. Enable mod stuff.
inAllowedRoom = true ;
}
[ ModdedGamemodeLeave ]
private void RoomLeft ( string gamemode )
{
// The room was left. Disable mod stuff.
inAllowedRoom = false ;
}
}
}
Utilla 1.5.0 apporte la prise en charge des modes de jeu personnalisés à Gorilla Tag. Un mod peut enregistrer des modes de jeu personnalisés via l'attribut [ModdedGamemode]
et apparaîtra à côté des modes de jeu par défaut dans le jeu.
[ BepInPlugin ( " org.legoandmars.gorillatag.exampleplugin " , " Example Plugin " , " 1.0.0 " ) ]
[ BepInDependency ( " org.legoandmars.gorillatag.utilla " , " 1.5.0 " ) ] // Make sure to add Utilla 1.5.0 as a dependency!
[ ModdedGamemode ( " mygamemodeid " , " MY GAMEMODE " , Models . BaseGamemode . Casual ) ] // Enable callbacks in a new casual gamemode called "MY GAMEMODE"
public class ExamplePlugin : BaseUnityPlugin { }
De plus, un gestionnaire de jeu entièrement personnalisé peut être utilisé, en créant une classe qui hérite de GorillaGameManager
. La création d'un mode de jeu personnalisé nécessite une connaissance avancée du code réseau de Gorilla Tag. Actuellement, le matchmaking ne fonctionne pas pour les modes de jeu entièrement personnalisés, mais ils peuvent toujours être utilisés via les codes de salle.
[ BepInPlugin ( " org.legoandmars.gorillatag.exampleplugin " , " Example Plugin " , " 1.0.0 " ) ]
[ BepInDependency ( " org.legoandmars.gorillatag.utilla " , " 1.5.0 " ) ] // Make sure to add Utilla 1.5.0 as a dependency!
[ ModdedGamemode ( " mygamemodeid " , " MY GAMEMODE " , typeof ( MyGameManager ) ) ] // Enable callbacks in a new custom gamemode using MyGameManager
public class ExamplePlugin : BaseUnityPlugin { }
public class MyGameManager : GorillaGameManager
{
// The game calls this when this is the gamemode for the room.
public override void StartPlaying ( )
{
// Base needs to run for base GorillaGamanger functionality to run.
base . StartPlaying ( ) ;
}
// Called by game when you leave a room or gamemode is changed.
public override void StopPlaying ( )
{
// Base needs to run for the game mode stop base GorillaGameManager functionality from running.
base . StopPlaying ( ) ;
}
// Called by the game when you leave a room after StopPlaying, use this for all important clean up and resetting the state of your game mode.
public override void Reset ( )
{
}
// Gamemode names must not have spaces and must not contain "CASUAL", "INFECTION", "HUNT", or "BATTLE".
// Names that contain the name of other custom gamemodes will confilict.
public override string GameModeName ( )
{
return " CUSTOM " ;
}
// GameModeType is an enum which is really an int, so any int value will work.
// Make sure to use a unique value not taken by other game modes.
public override GameModeType GameType ( )
{
return ( GameModeType ) 765 ;
}
public override int MyMatIndex ( Player forPlayer )
{
return 3 ;
}
}
Utilla fournit des événements à diffuser lorsqu'une salle est rejointe. Il n'est pas recommandé d'activer et de désactiver votre mod, pour cela, utilisez les attributs décrits ci-dessus. Utilla propose deux événements pour rejoindre et quitter une salle, Utilla.Events.RoomJoined
et Utilla.Events.RoomLeft
using System ;
using BepInEx ;
using Utilla ;
namespace ExamplePlugin
{
[ BepInPlugin ( " org.legoandmars.gorillatag.exampleplugin " , " Example Plugin " , " 1.0.0 " ) ]
[ BepInDependency ( " org.legoandmars.gorillatag.utilla " , " 1.5.0 " ) ] // Make sure to add Utilla as a dependency!
public class ExamplePlugin : BaseUnityPlugin
{
void Awake ( )
{
Utilla . Events . RoomJoined += RoomJoined ;
Utilla . Events . RoomLeft += RoomLeft ;
}
private void RoomJoined ( object sender , Events . RoomJoinedArgs e )
{
UnityEngine . Debug . Log ( $" Private room: { e . isPrivate } , Gamemode: { e . Gamemode } " ) ;
}
private void RoomLeft ( object sender , Events . RoomJoinedArgs e )
{
UnityEngine . Debug . Log ( $" Private room: { e . isPrivate } , Gamemode: { e . Gamemode } " ) ;
}
}
}
Utilla fournit un événement qui est déclenché après l'initialisation de Gorilla Tag, utilisez-le si vous obtenez des erreurs de référence nulles sur des objets singleton tels que GorillaLocomotion.Player.Instance
using System ;
using BepInEx ;
using Utilla ;
namespace ExamplePlugin
{
[ BepInPlugin ( " org.legoandmars.gorillatag.exampleplugin " , " Example Plugin " , " 1.0.0 " ) ]
[ BepInDependency ( " org.legoandmars.gorillatag.utilla " , " 1.5.0 " ) ] // Make sure to add Utilla as a dependency!
public class ExamplePlugin : BaseUnityPlugin
{
void Awake ( )
{
Utilla . Events . GameInitialized += GameInitialized ;
}
private void GameInitialized ( object sender , EventArgs e )
{
// Player instance has been created
UnityEngine . Debug . Log ( GorillaLocomotion . Player . Instance . jumpMultiplier ) ;
}
}
}
Si vous souhaitez rejoindre des salons privés personnalisés avec votre mod, Utilla implémente également des méthodes pour cela.
Utilla . Utils . RoomUtils . JoinPrivateLobby ( ) // Joins a private lobby with a random 6 character code
Utilla . Utils . RoomUtils . JoinPrivateLobby ( " TestLobby " ) // Joins a private lobby with the code TestLobby
Utilla . Utils . RoomUtils . JoinPrivateLobby ( " TestLobby " , true ) // Joins a private casual lobby with the code TestLobby
Si vous souhaitez utiliser des files d'attente personnalisées avec votre mod, Utilla implémente également des méthodes pour cela.
Utilla . Utils . RoomUtils . JoinModdedLobby ( " TestQueue " ) // Joins a random room in the queue TestQueue
Utilla . Utils . RoomUtils . JoinModdedLobby ( " TestQueue " , true ) // Joins a random casual room in the queue TestQueue
Ce projet est construit en C# en utilisant .NET Standard.
Pour les références, créez un dossier Libs dans le même dossier que la solution du projet. À l'intérieur de ce dossier, vous devrez copier :
0Harmony.dll
BepInEx.dll
BepInEx.Harmony.dll
depuis Gorilla TagBepInExplugins
, et
Assembly-CSharp.dll
PhotonRealtime.dll
PhotonUnityNetworking.dll
UnityEngine.dll
UnityEngine.CoreModule.dll
à partir de Gorilla TagGorilla Tag_DataManaged
.
Ce produit n'est pas affilié à Gorilla Tag ou Another Axiom LLC et n'est ni approuvé ni autrement sponsorisé par Another Axiom LLC. Certaines parties du matériel contenu dans le présent document sont la propriété de Another Axiom LLC. ©2021 Un autre Axiom LLC.