GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Showroom SA:MP => Discussion démarrée par: S!m le 12 Juillet 2011, 04:12:54

Titre: [INC] teams - gestion d'équipes
Posté par: S!m le 12 Juillet 2011, 04:12:54
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++
Titre: Re : [INC] teams - gestion d'équipes
Posté par: ShaDowxx™ le 12 Juillet 2011, 09:16:56
Déjà je dis un GRAND merci ! Sa simplifie la vie ! Je vais l'essayer et si il y a une ou plusieurs erreur comte sur moi
Titre: Re : [INC] teams - gestion d'équipes
Posté par: Xolokos le 12 Juillet 2011, 11:11:35
Beaucoup de choix peut être encore amélioré comme tu le dit je vais testé pour voir je pense que ça vas être utile !
Titre: Re : [INC] teams - gestion d'équipes
Posté par: Gilux le 12 Juillet 2011, 11:23:58
Merci, c'est très utile de travailler sur cette include  :)
Titre: Re : [INC] teams - gestion d'équipes
Posté par: cristab le 12 Juillet 2011, 11:25:59
grand bravo a toi

Titre: Re : [INC] teams - gestion d'équipes
Posté par: S!m le 12 Juillet 2011, 13:20:53
Salut,

merci à vous et je compte sur votre aide pour améliorer la librairie  ;)

sinon, en allant me coucher, j'ai trouvé une erreur alors que j'était couché, je sors donc la version 0.1.1 dans quelques minutes...

Beaucoup de choix peut être encore amélioré comme tu le dit je vais testé pour voir je pense que ça vas être utile !
Si tu pouvais me donner quelques exemples, je me ferais un plaisir de changer ces points.

++Sim++
Titre: Re : [INC] teams - gestion d'équipes
Posté par: Xolokos le 12 Juillet 2011, 14:29:37
Un Team capture territoire je pense qui change le territoire a la couleur de la team qu'il la capturé si tu vois ce que je veut dire ?
Titre: Re : Re : [INC] teams - gestion d'équipes
Posté par: Hector le 12 Juillet 2011, 18:17:52
Un Team capture territoire je pense qui change le territoire a la couleur de la team qu'il la capturé si tu vois ce que je veut dire ?

Un Tag wars quoi ?
Titre: Re : [INC] teams - gestion d'équipes
Posté par: Ssk le 12 Juillet 2011, 18:36:31
Tu l'as finalement sortit, sympa de ta part et GG :D
Titre: Re : Re : [INC] teams - gestion d'équipes
Posté par: S!m le 13 Juillet 2011, 04:31:17
Salut,

Tu l'as finalement sortit, sympa de ta part et GG :D

ouais ça a pris un certains temps, j'ai beaucoup hésité avec Frag'n fun mais ça ne fait pas le serveur, loin de là...

Un Team capture territoire je pense qui change le territoire a la couleur de la team qu'il la capturé si tu vois ce que je veut dire ?
Je pense que ça devrait être fait directement dans le gm, sinon on ne peut pas choisir soi même la façon dont le territoire est capturé etc...
J'ai ajouté quelques fonctions qui simplifient légèrement ce genre de choses... peut-être ajouter TeamPlayerCountInZone(teamid, Float:xmin, Float:xmax, Float:ymin, Float:ymax) ou avec un cercle/une sphère...

++Sim++
Titre: Re : [INC] teams - gestion d'équipes
Posté par: chneubeul le 13 Juillet 2011, 11:01:56
Beau travail, Sim ! :)  :king
Titre: Re : [INC] teams - gestion d'équipes
Posté par: Xartrick le 13 Juillet 2011, 23:20:16
Citation de: Sim
avec un cercle/une sphère

Plus un cercle, car mathématiquement, la sphère n'a pas d'aire :P.
Sinon, bon travail !
Titre: Re : Re : [INC] teams - gestion d'équipes
Posté par: S!m le 14 Juillet 2011, 00:51:37
Salut,
Citation de: Sim
avec un cercle/une sphère

Plus un cercle, car mathématiquement, la sphère n'a pas d'aire :P.
Sinon, bon travail !


mais je parle d'une fonction qui évalue le nombre de joueur d'une équipe se trouvant dans le volume d'une sphère ou dans l'aire d'un cercle..

++Sim++
Titre: Re : [INC] teams - gestion d'équipes
Posté par: Xartrick le 14 Juillet 2011, 01:52:52
Effectivement, je n'avais pas compris cela, je pensais que tu restais dans une aire sans hauteur prit en compte.
Titre: Re : Re : [INC] teams - gestion d'équipes
Posté par: S!m le 14 Juillet 2011, 02:18:56
Salut,

Effectivement, je n'avais pas compris cela, je pensais que tu restais dans une aire sans hauteur prit en compte.

tout à fait compréhensible, ce genre de chose porte souvent à confusion... avec mon chargé de cours l'année passé on avait de la difficulté à se comprendre entre le contour du cercle et son aire...

++Sim++
Titre: Re : [INC] teams - gestion d'équipes
Posté par: Azz45 le 28 Juillet 2011, 01:01:32
Dans la présentation de ton include qui est good, j'ai remarqué une erreur.

Tu dis de mettre ça en haut du GM : #include <team>, ceux qui suivent ton mini tuto vont le faire et en compilant bim erreur . Pourquoi ?

Parce que le fichier include lorsque qu'on le télécharge se nomme teamS avec un S et donc erreur.

Simple remarque à faire attention (pour la dernière version.)

Nice l'include Sim.  ;)
Titre: Re : Re : [INC] teams - gestion d'équipes
Posté par: S!m le 31 Juillet 2011, 18:29:32
Salut,

Dans la présentation de ton include qui est good, j'ai remarqué une erreur.

Tu dis de mettre ça en haut du GM : #include <team>, ceux qui suivent ton mini tuto vont le faire et en compilant bim erreur . Pourquoi ?

Parce que le fichier include lorsque qu'on le télécharge se nomme teamS avec un S et donc erreur.

Simple remarque à faire attention (pour la dernière version.)

Nice l'include Sim.  ;)

merci Azz45, j'ai corrigé l'erreur

++Sim++