Teams
Une libraire de gestion d'équipes
Présentation
Cette librairie a été créé lors du développement du nouveau serveur de GtaOnline.
Son principal but était très simple : simplifier la vie des scripteurs du projet au niveau de la gestion des équipes.
Bien sur, de nombreuses améliorations peuvent encore être apportées à cette librairie et je n'ai pas l'intention de prétendre qu'il s'agisse d'une référence.
Toutefois, je crois que mon but original est atteint, l'utilisation de cette librairie permet de simplifier la gestion des équipes.
Utilisation
Pour utiliser cette librairie, il suffit de la transférer dans le dossier include du bon pawno puis ajouter la ligne #include <teams> en haut du mode en cours de développement.
Si vous rencontrez des erreurs, veuillez les poster dans ce fil de discussion et j'ajouterai une liste dans cette section des erreurs potentielles, leurs causes et leurs solutions.
Cette librairie utilise des variables qui ne sont pas accessible pour une fonction hors du fichier source (de la librairie).
Normalement, toutes les fonctions nécessaire à la manipulation des teams devraient être incluses, vous ne devriez donc pas avoir à modifier la librairie.
Toutefois, il existe des limites établies par des constantes dans le fichier même. Ces constantes peuvent être modifiées si vous désirez ajouter plus de teams différentes, augmenter la taille des noms de team etc..
Vous les trouverez aux lignes 101 à 103 telle que ci-dessous:
#define MAX_TEAMS (16)
#define MAX_TEAM_VEHICLES (128)
#define MAX_TEAM_NAME (16)
La première constante correspond au nombre maximal d'équipes différentes autorisées.
La seconde, le nombre maximal de véhicule associé à chaque équipe.
La dernière correspond à la longueur maximale du nom de la team.
Les fonctions listées dans le fichier peuvent être utilisées ou non sans problème.
Il est toutefois possible que certaines erreurs subsistent dans certaines fonctions, j'avoue ne pas les avoir toutes testées.
Liste des fonctions
GetPlayerTeam(playerid);
SetPlayerTeam(playerid, teamid);
bool:IsSameTeam(playerid, pid);
BlockTeamKills();
UnblockTeamKills();
GiveTeamPoints(teamid, points);
GetTeamPoints(teamid);
SetTeamPoints(teamid, points);//les points ne peuvent être négatifs
TextDrawShowForTeam(teamid, Text:td);
TextDrawHideForTeam(teamid, Text:td);
GameTextForTeam(teamid, const string[], time, style);
SendPlayerMessageToTeam(teamid, senderid, msg[]);
SendTeamMsg(teamid, msg[]);
GiveTeamWeapon(teamid, weaponid, ammo);
GiveTeamArmor(teamid, amount);
GiveTeamHealth(teamid, amount);
GiveTeamMoney(teamid, amount);
SetTeamVirtualWorld(teamid, worldid);
SetTeamInterior(teamid, interiorid);
WarpTeam(teamid, Float:X, Float:Y, Float:Z);
SetTeamObjective(teamid, Float:X, Float:Y, Float:Z, Float:radius);//checkpoint normal
RemoveTeamObjective(teamid);
SetTeamWantedLevel(teamid, level);
SetTeamSpec(teamid, playerid);//la team teamid spec le joueur playerid (ou avec une team)
StopTeamSpec(teamid);
ExploseTeam(teamid, type = 7, Float:radius = 10.0);//voir les params par défaut
CreateTeamVehicle(model, Float:X, Float:Y, Float:Z, Float:angle, color1, color2, respawn_time, teamid = INVALID_TEAM)
DestroyTeamVehicle(vehicleid);
SetTeamName(teamid, const name[]);
GetTeamName(teamid, name[], len = MAX_TEAM_NAME);
SetTeamSpawnWeapon(teamid, weaponid, ammo, pos = 0);
SetTeamSpawnHealth(teamid, Float:health);
SetTeamSpawnArmor(teamid, Float:armor);
GangZoneShowForTeam(teamid, zoneid, color);
GangZoneHideForTeam(teamid, zoneid);
GangZoneFlashForTeam(teamid, zoneid);
GangZoneStopFlashForTeam(teamid, zoneid);
Les callbacks suivantes sont "interceptées" par la librairie:
OnPlayerSpawn
OnPlayerEnterVehicle
OnPlayerEnterCheckpoint
OnPlayerLeaveCheckpoint
si vous avez des problèmes de compatibilité concernant le système d’accrochage des callbacks, veuillez m'en faire part.
Normalement, la méthode utilisée est compatible avec la plupart des librairies, du moins, celles qui suivent la méthode développée par Y_LESS.
Voilà, je crois avoir fait le tour, bonne chance à vous.
Venons en aux faits:
Téléchargement
V0.1.1:
Lien Pastebin (http://pastebin.gtaonline.fr/pastebin.php?show=1135)
Lien SolidFiles (http://solidfiles.com/d/48c07/)
V0.1.0 - ANCIENNE VERSION:
Lien Pastebin (http://pastebin.gtaonline.fr/pastebin.php?show=1133)
Lien SolidFiles (http://solidfiles.com/d/153a/)
License:
(http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png) (http://creativecommons.org/licenses/by-nc-sa/3.0/)
Planification
- Ajout d'une fonction pour balancer les équipes actives (encore à déterminer la méthode pour savoir quelles équipes sont actives)
Historique
V0.1.1 : Correction du test d'atteinte des objetifs (ce sont des checkpoints)
V0.1.0 : Sortie officielle et initiale
Commentaires
Les suggestions et commentaires sont les bienvenus, surtout si constructifs.
Merci à vous d'utiliser cette librairie ^^
++Sim++