Perpustakaan PC untuk Gorilla Tag yang menangani berbagai hal terkait ruangan (dan banyak lagi?)
Jika Anda tidak ingin menginstal secara manual, Anda dapat menginstal mod ini dengan Monke Mod Manager
Jika game Anda tidak dimodifikasi dengan BepinEx, LAKUKAN ITU TERLEBIH DAHULU! Cukup buka rilis BepinEx terbaru dan ekstrak BepinEx_x64_VERSION.zip langsung ke folder game Anda, lalu jalankan game tersebut sekali untuk menginstal BepinEx dengan benar.
Selanjutnya, buka rilis terbaru mod ini dan ekstrak langsung ke folder game Anda. Pastikan itu diekstraksi langsung ke folder game Anda dan bukan ke subfolder!
Dengan dirilisnya Utilla 1.5.0, mod diharuskan hanya berfungsi di mode game yang dimodifikasi, bukan di lobi pribadi mana pun. Utilla menyediakan atribut yang mudah digunakan untuk membuat transisi ini semudah mungkin. Lihat penerapan ini untuk contoh memperbarui mod Anda agar berfungsi dengan sistem baru.
Menangani apakah pemain berada di ruang mod adalah bagian yang sangat penting untuk memastikan mod Anda tidak digunakan untuk menipu. Utilla mempermudah hal ini dengan menyediakan atribut untuk dipicu ketika lobi yang dimodifikasi bergabung.
[ModdedGamemode]
harus diterapkan ke kelas plugin mod Anda untuk menggunakan atribut lainnya. [ModdedGamemodeJoin]
dan [ModdedGamemodeLeave]
dapat diterapkan ke metode void apa pun dalam kelas ini, dengan parameter string opsional yang berisi string gamemode lengkap. Metode-metode ini dipanggil masing-masing ketika ruangan yang dimodifikasi bergabung atau ditinggalkan.
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 menghadirkan dukungan untuk mode permainan khusus ke Gorilla Tag. Mod dapat mendaftarkan gamemode khusus melalui atribut [ModdedGamemode]
, dan akan muncul di sebelah gamemode default dalam game.
[ 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 { }
Selain itu, pengelola permainan yang sepenuhnya dapat disesuaikan dapat digunakan, dengan membuat kelas yang mewarisi GorillaGameManager
. Membuat gamemode khusus memerlukan pengetahuan tingkat lanjut tentang kode jaringan Gorilla Tag. Saat ini, perjodohan tidak berfungsi untuk mode permainan yang sepenuhnya disesuaikan, namun masih dapat digunakan melalui kode ruangan.
[ 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 menyediakan acara untuk disiarkan ketika ada ruangan yang bergabung. Mereka tidak disarankan untuk mengaktifkan dan menonaktifkan mod Anda, untuk itu gunakan atribut yang dijelaskan di atas. Utilla menyediakan dua acara untuk bergabung dan keluar ruangan, Utilla.Events.RoomJoined
dan 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 menyediakan peristiwa yang dipicu setelah inisialisasi Tag Gorilla, gunakan ini jika Anda mendapatkan kesalahan referensi nol pada objek tunggal seperti 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 ) ;
}
}
}
Jika Anda ingin bergabung dengan lobi pribadi khusus dengan mod Anda, Utilla juga menerapkan metode untuk itu.
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
Jika Anda ingin menggunakan antrean khusus dengan mod Anda, Utilla juga mengimplementasikan metode untuk itu.
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
Proyek ini dibangun dengan C# menggunakan .NET Standard.
Untuk referensi, buat folder Libs di folder yang sama dengan solusi proyek. Di dalam folder ini Anda perlu menyalin:
0Harmony.dll
BepInEx.dll
BepInEx.Harmony.dll
dari Gorilla TagBepInExplugins
, dan
Assembly-CSharp.dll
PhotonRealtime.dll
PhotonUnityNetworking.dll
UnityEngine.dll
UnityEngine.CoreModule.dll
dari Gorilla TagGorilla Tag_DataManaged
.
Produk ini tidak berafiliasi dengan Gorilla Tag atau Another Axiom LLC dan tidak didukung atau disponsori oleh Another Axiom LLC. Bagian dari materi yang terkandung di sini adalah milik Another Axiom LLC. ©2021 Aksioma Lain LLC.