GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Alexendro_Torres le 06 Mars 2010, 17:42:27

Titre: Aide Annonce
Posté par: Alexendro_Torres le 06 Mars 2010, 17:42:27
Salut, j'ai crée un annoce pour mon server RPG, ( je les pris sur un autre GM )
mais je compil ect sa marche mais IG sa fait rien help



#pragma tabsize 0
new Ann;
new Annonces[NombreAnnonces][128] =
{
        {"IC=S'utilise directement avec la touche T Pas de xD,^^Ect, !"},
        {"Cheat-Insulte OOC, Non respect des règles = Jail,Kick,Ban !"},
        {"OOC = C'est vous qui parler la, S'utilise avec /( !"},
        {"Flood, Pub pour votre serveur = Ban !"},
        {"Vous devez toujours respectez les règles du Serveur RPG, Regles & information = forum !"},
        {"Un problème ? Une question ? /report ou /aide! !"}
        
        
};
forward EnvoiAnnonce();
public EnvoiAnnonce()
{
        switch (Ann)
        {
            case 0: {SendClientMessageToAll(RED, Annonces[0]); Ann++;} /*Envoi de premier message*/
            case 1: {SendClientMessageToAll(RED, Annonces[1]); Ann++;}
            case 2: {SendClientMessageToAll(RED, Annonces[2]); Ann++;}
            case 3: {SendClientMessageToAll(RED, Annonces[3]); Ann++;}
            case 4: {SendClientMessageToAll(RED, Annonces[4]); Ann++;}
            case 5: {SendClientMessageToAll(RED, Annonces[5]); Ann=0;} /*Envoi du dernier message*/
        }
        return 1;
}
Titre: Re : Re : Aide Annonce
Posté par: Anonyme le 06 Mars 2010, 17:57:34
Dans ton OnFilterscriptInit si tu utilise un Filterscript, ou dans ton OnGamemodeInit si tu utilise un Gamemode, ajoute ça.
SetTimer("EnvoiAnnonce",120000,true);
Normalement ça devrait marcher, même si ton script est un beau bric à brac. Jette un coup d'œil sur le Filterscript d'annonces déposé par MisterT (MrT) dans la Showroom, il devrait te correspondre.


En fait c'est celui la je pense, vu que je l'utilise aussi je confirme, c'est lui  :laugh

il faut ajouter ceci a ton OnGamemodeInit :

Ann = 0;
SetTimer("EnvoiAnnonce", 60000, 1);
Titre: Re : Re : Re : Aide Annonce
Posté par: Alexendro_Torres le 06 Mars 2010, 17:59:46
Dans ton OnFilterscriptInit si tu utilise un Filterscript, ou dans ton OnGamemodeInit si tu utilise un Gamemode, ajoute ça.
SetTimer("EnvoiAnnonce",120000,true);
Normalement ça devrait marcher, même si ton script est un beau bric à brac. Jette un coup d'œil sur le Filterscript d'annonces déposé par MisterT (MrT) dans la Showroom, il devrait te correspondre.


En fait c'est celui la je pense, vu que je l'utilise aussi je confirme, c'est lui  :laugh

il faut ajouter ceci a ton OnGamemodeInit :

Ann = 0;
SetTimer("EnvoiAnnonce", 60000, 1);

Merci les mecs
Juste pour savoir, je trouve pas le lien du FS annonce O_o

Double post
Merci sa marche, mais comment je regle le temps, car je veux qu'il y est un espace de 10 minutes entre chaque message, faut regler sa ou ?
Titre: Re : Aide Annonce
Posté par: Syg le 09 Mars 2010, 18:24:51
Gszume, tu es fâché avec les heures ?
Ne te rappelles-tu pas que pour les secondes et les minutes on est en base 60 ?
60000 ms = 60 secondes = 1 minute
Donc pour faire 10 minutes, il faut mettre 600000 (six cents mille) comme paramètre dans SetTimer.

Sinon, pour ta fonction EnvoiAnnonce, Alexendro, il serait mieux de faire comme ça :
public EnvoiAnnonce()
{
   SendClientMessageToAll (RED, Annonces[Ann]);
   Ann++;
   if (Ann == NombreAnnonces)
   {
      Ann = 0;
   }
}
NB : Il faut avoir pris soin d'initialiser Ann à 0 au début du gamemode.

De cette façon, si tu veux ajouter des annonces tu ne touches qu'au tableau Annonces et à la variable NombreAnnonces, sans avoir besoin de modifier la fonction EnvoiAnnonce.

++
Syg
Titre: Re : Aide Annonce
Posté par: S!m le 09 Mars 2010, 23:23:39
Salut,

ce serait encore mieux en faisant de NombreAnnonce une constante:

#define NombreAnnonce 7
new Annonces[NombreAnnonce][] =
{
    ".....",
    ".....",
    ....
    "..."
};

bonne chance ;)

++Sim++