• 05 Juin 2026, 10:53:38


Auteur Sujet: système d'alliance  (Lu 10357 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : système d'alliance
« Réponse #15 le: 03 Avril 2013, 11:29:43 »
Oui enfin, je te conseille quand-même d'indenter ton code. Ce sera plus lisible. ;)

Hors ligne natsu00

  • *
  • Tueur en série
  • Messages: 169
    • Voir le profil
Re : système d'alliance
« Réponse #16 le: 03 Avril 2013, 11:35:40 »
oui parce que la je comprend pas tout,
donc je fait
-commande /jointeam (oneplayercommand un truc comme ca mais je sais ^^)
-une boite de dialogue pour le nom des team (onedialoguereponse)
-on clique sur ne team === >  nouvelle boite de dialogue avec un mot de passe
-si le mot de passe est bon alors
-le joueur rejoins la team (message ) et ne peut plus tirer sur ses coequipier, et un message


Par contre je l'a créé comment la team? faut bien que j'attribue la team aux joueurs?
merci je sais je suis nul

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : système d'alliance
« Réponse #17 le: 03 Avril 2013, 11:47:26 »
Tu crées un tableau de cette forme :
Code: (pawn) [Sélectionner]
new TeamJoueur[MAX_PLAYERS] = {0};Ceci va créer un tableau d'une case, et d'un nombre de lignes égal au nombre maximum de joueurs. Pour attribuer une team à un joueur, tu feras :
Code: (pawn) [Sélectionner]
TeamJoueur[playerid] = TEAM_BALLAS;Ce n'est qu'un exemple, et tu peux utiliser des chiffres plutôt que des directives de préprocesseur (dans mon exemple, ça requiert un #define TEAM_BALLAS 1 en haut de ton script, et pour les autres teams, tu modifie le 1 en 2, puis 3...).
Enfin, pour la vérification de l'équipe...
Code: (pawn) [Sélectionner]
if(TeamJoueur[playerid] == TEAM_BALLAS) { ... }C'est aussi simple que ça.

Sinon, une autre technique (dont je ne suis plus très sûr, vérifies sur le wiki que les fonctions existent) consiste à utiliser SetPlayerTeam(playerid, teamid) et GetPlayerTeam(playerid). Tu évites ainsi de consommer de la mémoire avec un tableau. Les tirs alliés seront impossibles avec cette technique.

EDIT - Après vérification, cette seconde technique fonctionne. Je ne me souvenais plus de si les fonctions étaient présentes nativement sous SA:MP ou non. Voici les liens vers le wiki :
Enfin, pour un meilleur fonctionnement en interne du serveur, tu peux utiliser SetTeamCount, dans la callback OnGameModeInit(). C'est recommandé, mais pas obligatoire.
« Modifié: 03 Avril 2013, 11:53:47 par Gzsume »

Hors ligne natsu00

  • *
  • Tueur en série
  • Messages: 169
    • Voir le profil
Re : système d'alliance
« Réponse #18 le: 03 Avril 2013, 12:13:59 »
Ok merci beaucoup pour ton explcitation clair ! Je vais y réfléchir et le fairé apres !
Ensuite e ferai le mor de passe mas je préfère finir les team sans mot de passe on vera après merci

Hors ligne natsu00

  • *
  • Tueur en série
  • Messages: 169
    • Voir le profil
Re : système d'alliance
« Réponse #19 le: 03 Avril 2013, 15:06:29 »
hum sur un tout autres sujet j'ai un probleme pour enregistrer avec samp editor, je fait show code, je le met dans mon gamemode? si oui bha quand je fait import avec le logiciel il le reconnait mais dans le jeu rien n'est modifier....
merci

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : système d'alliance
« Réponse #20 le: 03 Avril 2013, 15:07:38 »
Les doubles post sont interdits !



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne natsu00

  • *
  • Tueur en série
  • Messages: 169
    • Voir le profil
Re : système d'alliance
« Réponse #21 le: 03 Avril 2013, 15:23:37 »
ha oui désolé x)
j'ai trouvé je l'avais pas mis dans oneplayerconnect  :happy:

quelqu'un connais la solution pour ajouter de l'eau ?
« Modifié: 03 Avril 2013, 15:59:35 par natsu00 »

vincentdu90

  • Invité
Re : système d'alliance
« Réponse #22 le: 03 Avril 2013, 16:06:19 »
Ça n'est possible que sur MTA pas sur SA:MP.  :wink:

Hors ligne natsu00

  • *
  • Tueur en série
  • Messages: 169
    • Voir le profil
Re : système d'alliance
« Réponse #23 le: 03 Avril 2013, 17:51:04 »
ok c'est dommage ^^
« Modifié: 03 Avril 2013, 19:41:37 par natsu00 »

Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3551
    • Voir le profil
Re : Re : système d'alliance
« Réponse #24 le: 03 Avril 2013, 20:08:29 »
j'ai trouvé je l'avais pas mis dans oneplayerconnect  :happy:



Non mais à la base, le mapping c'est mieux de le charger au lancement du gamemode ^^


Adju ♥
(-_-)



Hors ligne natsu00

  • *
  • Tueur en série
  • Messages: 169
    • Voir le profil
Re : système d'alliance
« Réponse #25 le: 03 Avril 2013, 20:35:47 »
ok merci je vais rectifier !

Hors ligne natsu00

  • *
  • Tueur en série
  • Messages: 169
    • Voir le profil
Re : système d'alliance
« Réponse #26 le: 05 Avril 2013, 17:18:43 »
bonjour,
j'ai un nouveau probleme, je viens de terminer mon aréne et maintenant je vais enregistrer des positions, donc je vais sur mon serveur et je vais sur mon aréne et j'enregistre avec /save position...

mais quand je rentre les positions dans mon gamemod, bha y a rien qui marche; ca ce compile mais avec 1 warning et surtout il me teleporte dans le ciel et je tombe au nord de las ventura....

qui soais pourquoi?

ensuite je souhaite désactiver le marqueur donc pour cela j'utilise cette fonction
http://wiki.sa-mp.com/wiki/SetPlayerMarkerForPlayer

mais le probleme c'est que je veux pas activer un id en particulier mais désactiver pour tous les joueurs ?
comment je fais? merci

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : système d'alliance
« Réponse #27 le: 05 Avril 2013, 17:28:00 »
Tu utilises une boucle qui va passer par tout les joueurs :

for(new playerid; playerid <= MAX_PLAYERS; playerid++)
{
    if(IsPlayerConnected(playerid))
    {
        //L'action que tu veux effectuer
    }
}

(Si tu es dans une callback où l'id playerid est déjà défini, tu changes le nom de la variable dans la boucle par "id", où comme tu veux, mais n'oublie pas de tout remplacer dans la boucle, y compris l'id inscrit dans la fonction.
Exemple d'utilisation :

for(new playerid; playerid <= MAX_PLAYERS; playerid++)
{
    if(IsPlayerConnected(playerid))
    {
        SendClientMessage(playerid, #FFFFFF, "Ce message a été envoyé a tout les joueurs");
    }
}

[/url]

Hors ligne natsu00

  • *
  • Tueur en série
  • Messages: 169
    • Voir le profil
Re : système d'alliance
« Réponse #28 le: 05 Avril 2013, 17:42:28 »
ok cool merci beaucoup,
mais je souhaiterais desactiver
donc je met ta boucle, mais la fonction je me laquelle ?
parce que setplayermarker ne fonctionne pas car elle active le marker e moi je veux les désactiver
merci

vincentdu90

  • Invité
Re : Re : système d'alliance
« Réponse #29 le: 05 Avril 2013, 18:12:18 »
Tu utilises une boucle qui va passer par tout les joueurs :

for(new playerid; playerid <= MAX_PLAYERS; playerid++)
{
    if(IsPlayerConnected(playerid))
    {
        //L'action que tu veux effectuer
    }
}

(Si tu es dans une callback où l'id playerid est déjà défini, tu changes le nom de la variable dans la boucle par "id", où comme tu veux, mais n'oublie pas de tout remplacer dans la boucle, y compris l'id inscrit dans la fonction.
Exemple d'utilisation :

for(new playerid; playerid <= MAX_PLAYERS; playerid++)
{
    if(IsPlayerConnected(playerid))
    {
        SendClientMessage(playerid, #FFFFFF, "Ce message a été envoyé a tout les joueurs");
    }
}

Bonjour,

    Attention tout de même de penser à initialiser playerid à 0.

Code: (Pawn) [Sélectionner]

for(new playerid = 0; playerid <= MAX_PLAYERS; playerid++)