Créer des équipes vous permet de trier les joueurs dans des groupes qui compèrent pour terminer un objectif commun, comme le score le plus de points ou le franchissement d'une ligne d'arrivée avant les autres membres d'équipe ennemis. Pour un tireur de première personne, la création de команas est particulièrement importante car elle établit des stratégies de jeu complexes et coordonnées au-delà du jeu de compétence de n'importe quel joueur individuel.
En utilisant l'expérience de balise laser échantillon comme référence, cette section du tutoriel vous apprend à trier les joueurs en équipes, y compris les conseils de script sur :
- En utilisant la fonctionnalité par défaut du service Teams, vous pouvez attribuer des joueurs à l'équipe verte ou rose.
- Aider les joueurs à se différencier entre leurs alliés et les membres de l'équipe ennemie grâce à des indicateurs d'équipe et à des expériences sur l'écran.
- Activer le jeu pardonnant qui ne pénalise pas les joueurs pour avoir fait exploser leur coéquipier.
Après avoir terminé cette section, vous en apprendrez sur les scripts qui permettent aux joueurs de générer ou de réapparaître dans une zone de lobby neutralise ou d'équipe, personnaliser les visuels de champ de force en première personne et gérer l'état du client, soit du serveur que du client.
Attribuer des couleurs d'équipe
L'expérience de laser de poche utilise le service Teams comme base pour créer deux équipes parce que le service offre un comportement de tri d'équipe intégré qui fonctionne largement hors de la boîte. Par exemple, sans effort supplémentaire de script, le service gère des actions comme :
- Trie et équilibrage des joueurs de manière égale dans chaque équipe.
- Grouper les joueurs sous leur équipe dans le classements.
- Teintur les noms des joueurs dans l'espace 3D pour leur couleur de l'équipe correspondante.
- Générer des joueurs à des endroits de génération distincts que seul leur équipe peut accès.
En raison de cette fonctionnalité par défaut, l'échantillon permet au service Teams d'utiliser deux objets Team avec des propriétés de valeur Team.Color différents
Il est important de noter le nom exact de BrickColor pour la propriété Team.Color car l'expérience utilise
startSyncingTeamColor références Team.Color afin qu'il puisse attribuer la bonne couleur et l'icône pour l'indicateur de l'équipe du joueur dans le coin inférieur gauche de leur écran.
local function setPlayerTeamIcon(gui: ScreenGui)
for _, teamColorIcon in gui.PlayerDisplay.TeamIcons:GetChildren() do
local iconTeamColor = teamColorIcon:GetAttribute(GuiAttribute.teamColor)
teamColorIcon.Visible = localPlayer.TeamColor == iconTeamColor
end
end
local function startSyncingTeamColor(gui: ScreenGui)
setPlayerTeamIcon(gui)
localPlayer:GetPropertyChangedSignal("Team"):Connect(function()
setPlayerTeamIcon(gui)
end)
end
Afficher les indicateurs de l'équipe
Une fois qu'un joueur a été classé dans une équipe, il doit être capable de déchiffrer rapidement à quelle équipe il appartient et de différentier entre ses alliés et les membres de l'équipe ennante. Cette capacité est importante car la jouabilité d'un jeu de tir à la première personne exige que les joueurs prennent des décisions stratégiques rapides lorsqu'ils sont dans les zones de combat afin qu'ils ne soient pas tagués et perdent la manche.
Pour configurer les joueurs pour le succès, l'expérience de marquage laser fournit plusieurs indicateurs d'équipe à l'écran et dans l'espace 3D :
- Indicateur du joueur – Personnalisez l'interface de l'utilisateur sur l'écran qui affiche la couleur et l'icône de l'équipe du joueur.
- Indicateur d'équipe – Personnalisez l'interface de l'expérience qui affiche la couleur de l'équipe du joueur.
- Leaderboard Indicator – Service d'interface utilisateur par défaut qui regroupe les joueurs sous leur couleur d'équipe.
- Nom Tint – Service d'équipe par défaut dans l'interface de l'utilisateur qui teint le nom du joueur au-dessus de leur tête dans leur couleur d'équipe.
Vous n'avez pas besoin de faire de travail supplémentaire pour l'indicateur de classement ou la teinture de nom en dehors de l'attribution des couleurs d'équipe à partir de la section précédente du tutoriel, mais les indicateurs personnalisés exigent plus d'effort de programmation pour afficher les indicateurs et exclure les indicateurs ennemis lorsqu'ils sont derrière des murs. Pour une explication
Désactiver les feux d'artifice amicaux
Bien que certains jeux de tir en première personne pénalisent les joueurs qui explosent leurs coéquipiers, l'expérience de laser de police permet un jeu plus tolérant en désactivant le lancerd'amitié. Cette décision de conception permet à tout le monde de ne augmenter que le score de leur équipe, pas de le soustraire en raison des accidents de jeu.
Pour comprendre comment le script d'exemple implémente cette fonctionnalité, examinez comment ServerScriptService > LaserBlastHandler > processTaggedPlayers > 1> onPlayerTagged1> gère les dégâts à tagged les jou
local function onPlayerTagged(playerBlasted: Player, playerTagged: Player, damageAmount: number)
Avant qu'il réduise la santé, le script vérifie d'abord si le joueur tagué est dans la même équipe que le joueur qui a initialisé l'explosion. S'il est dans la même équipe, le script ignore les données d'explosion entièrement.
local character = playerTagged.Characterlocal isFriendly = playerBlasted.Team == playerTagged.Team-- Désactiver le lancerif isFriendly thenreturnend
Cependant, si le joueur marqué est sur l'équipe ennemi, le joueur prend la quantité appropriée de dégâts en fonction du taperde blaster. De plus, si le joueur prend suffisamment de dégâts pour devenir tagué, le script récompense un point à l'équipe du joueur qui a initialisé le blast. Pour plus d'informations sur la façon dont les points sont suivis, voir ajouter des tours plus tard dans le tutoriel.
local humanoid = character and character:FindFirstChild("Humanoid")if humanoid and humanoid.Health > 0 thenlocal damage = math.min(damageAmount, humanoid.Health)humanoid:TakeDamage(damage)if humanoid.Health <= 0 thenScoring.incrementScore(playerBlasted, 1)endendendreturn onPlayerTagged
Si vous testiez l'expérience en ce moment, tous les joueurs apparaîtraient au hasard dans l'une des zones d'apparition à chaque extré de l'arène, indépendamment de l'équipe à laquelle ils appartiennent, ce qui signifie que chaque équipe apparaîtraait juste à côté de l'autre.
Pour résoudre ce problème, la section suivante du tutoriel vous apprend à propos de la logique personnalisée derrière la restreinte de l'apparition d'équipe à certains endroits d'apparition, le traitement du client état lorsque les joueurs quittent la zone d'apparition après avoir sélectionné leur blaster, et le réapparition des joueurs dans leur zone d'apparition ou leur zone de lobby lorsque leur santé atteint zéro.