مكتبة كمبيوتر خاصة بـ Gorilla Tag تتعامل مع العديد من الأشياء المتعلقة بالغرفة (والمزيد؟)
إذا كنت لا ترغب في التثبيت يدويًا، فيمكنك تثبيت هذا التعديل باستخدام Monke Mod Manager
إذا لم تكن لعبتك معدلة باستخدام BepinEx، فافعل ذلك أولاً! ما عليك سوى الانتقال إلى أحدث إصدار من BepinEx واستخراج BepinEx_x64_VERSION.zip مباشرةً إلى مجلد لعبتك، ثم تشغيل اللعبة مرة واحدة لتثبيت BepinEx بشكل صحيح.
بعد ذلك، انتقل إلى أحدث إصدار من هذا التعديل واستخرجه مباشرة إلى مجلد اللعبة. تأكد من استخراجه مباشرة إلى مجلد لعبتك وليس إلى مجلد فرعي!
مع إصدار Utilla 1.5.0، يُطلب من التعديلات أن تعمل فقط في أوضاع الألعاب المعدلة، بدلاً من العمل في أي ردهة خاصة. توفر Utilla سمات سهلة الاستخدام لجعل هذا الانتقال غير مؤلم قدر الإمكان. راجع هذا الالتزام للحصول على مثال لتحديث الوضع الخاص بك للعمل مع النظام الجديد.
يعد التعامل مع وجود اللاعب في غرفة معدلة جزءًا مهمًا جدًا للتأكد من عدم استخدام التعديل الخاص بك للغش. تعمل Utilla على تسهيل ذلك من خلال توفير السمات التي يتم تشغيلها عند الانضمام إلى الردهة المعدلة.
يجب تطبيق [ModdedGamemode]
على فئة البرنامج المساعد الخاصة بتعديلك لاستخدام السمات الأخرى. يمكن تطبيق [ModdedGamemodeJoin]
و [ModdedGamemodeLeave]
على أي طريقة فارغة ضمن هذه الفئة، مع معلمة سلسلة اختيارية تحتوي على سلسلة gamemode الكاملة. يتم استدعاء هذه الأساليب عند الانضمام إلى غرفة معدلة أو تركها، على التوالي.
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 الدعم لأوضاع الألعاب المخصصة لـ Gorilla Tag. يمكن للموديل تسجيل أوضاع اللعب المخصصة من خلال خاصية [ModdedGamemode]
، وسيظهر بجوار أوضاع اللعب الافتراضية في اللعبة.
[ 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 { }
بالإضافة إلى ذلك، يمكن استخدام مدير ألعاب مخصص تمامًا، عن طريق إنشاء فئة ترث GorillaGameManager
. يتطلب إنشاء وضع لعب مخصص معرفة متقدمة برمز شبكة Gorilla Tag. في الوقت الحالي، لا تعمل عملية التوفيق مع أوضاع اللعب المخصصة بالكامل، ولكن لا يزال من الممكن استخدامها من خلال رموز الغرفة.
[ 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 أحداثًا للبث عند انضمام أي غرفة. لا يُنصح بتمكين وتعطيل التعديل الخاص بك، لاستخدام السمات الموضحة أعلاه. توفر Utilla حدثين للانضمام إلى الغرفة ومغادرتها، Utilla.Events.RoomJoined
و 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 حدثًا يتم تشغيله بعد تهيئة علامة Gorilla، استخدم هذا إذا كنت تحصل على أخطاء مرجعية فارغة على كائنات مفردة مثل 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 ) ;
}
}
}
إذا كنت ترغب في الانضمام إلى جماعات الضغط الخاصة المخصصة باستخدام التعديل الخاص بك، فإن Utilla تنفذ طرقًا لذلك أيضًا.
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
إذا كنت ترغب في استخدام قوائم انتظار مخصصة مع التعديل الخاص بك، فإن Utilla تنفذ طرقًا لذلك أيضًا.
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
تم إنشاء هذا المشروع باستخدام لغة C# باستخدام .NET Standard.
بالنسبة للمراجع، قم بإنشاء مجلد Libs في نفس المجلد الموجود فيه حل المشروع. ستحتاج إلى نسخ داخل هذا المجلد:
0Harmony.dll
BepInEx.dll
BepInEx.Harmony.dll
من Gorilla TagBepInExplugins
و
Assembly-CSharp.dll
PhotonRealtime.dll
PhotonUnityNetworking.dll
UnityEngine.dll
UnityEngine.CoreModule.dll
من Gorilla TagGorilla Tag_DataManaged
.
هذا المنتج ليس تابعًا لشركة Gorilla Tag أو شركة Axiom LLC أخرى ولا يتم اعتماده أو رعايته من قبل شركة Axiom LLC الأخرى. أجزاء من المواد الواردة هنا مملوكة لشركة أخرى اكسيوم ذ.م.م. ©2021 اكسيوم أخرى ذ.م.م.