Annonce

Réduire

Entraide : les règles à respecter

Bonjour,

Avant de poster, merci de bien vouloir lire et respecter les règles suivantes :
  • Effectuez une recherche avant de poster. Commencez par regarder si la question n'a pas déjà été posée par un autre joueur. Le moteur de recherche de notre forum et le VeryWiki, véritable encyclopédie de l'administration de serveur de jeux sont à votre disposition.
  • Cherchez le forum approprié et limitez le post à ce forum. Les doublons sont systématiquement effacés.
  • Choisissez un titre explicite afin de renseigner les membres qui voudraient lire le post : les messages du type "help", "lisez ceci", "besoin d'aide"... sont tout sauf explicites.
  • Tâchez de rédiger un post complet, avec le maximum de détails afin que l'on puisse répondre précisément.
  • Soignez votre orthographe, par respect pour ceux qui vous lisent.
  • Oubliez le style SMS. Si vous souhaitez que les gens prennent le temps de vous répondre, prenez le temps de leur écrire.
  • N'écrivez pas en MAJUSCULES : Pour les habitués d'internet, c'est associé au fait de crier.
  • Toute proposition de prestation onéreuse ou revente de quelque produit que ce soit sont strictement interdites : Ce forum est une interface d'entraide et d'échange communautaire et doit conserver cette vocation.
  • La courtoisie est de rigueur. Tout manque de respect est malvenu, vis à vis de personnes ou d'une entité quelle qu'elle soit.
  • La publicité pour une marque concurrente est strictement interdite que ce soit dans le contenu d'un post, d'une signature ou d'un avatar.
  • Si la question est destinée au staff VeryGames, pensez à indiquer votre ServerID, que l'on puisse vous identifier dans notre base de données client. D'une manière générale, pensez à écrire le nom du jeu ou du MOD concerné.
  • N'oubliez pas que le forum est une interface d'entraide, si vous rencontrez un problème technique nécessitant l'intervention de notre équipe de support, ouvrez un ticket (ou ici sur l'ancien site) via votre panel d'administration.


Ces règles ne sont pas là pour vous embêter, c'est simplement dans le but d'avoir un forum clair, lisible et convivial ;)


Bien cordialement,
Le Staff VeryGames
Voir plus
Voir moins

[Gift] Finit et recherche des testeurs, idées, avis ;)

Réduire
X
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • [Gift] Finit et recherche des testeurs, idées, avis ;)

    Coucou tout le monde,

    Ça fait quelques temps que je travaille sur mon !gift et je vous le propose à vous ! Donc veuillez me dire toutes vos idées, bugs !

    -- OPTIMISÉ POUR BAJAIL V6 --

    Bonus :

    Vie +/-
    USP
    Glock
    Vitesse +/-
    Mal de tête
    Rien
    Lancé de cut
    Jailvip
    Gravité +/-
    Être malade
    Droit à un autre !gift
    P'tite loterie à vous de voir si vous la laissez ^^
    Tour de magie
    Dégâts +/-
    Spy
    Regen HP
    Size +/-
    Voler de vos propres ailes

    V3.0 : Release


    V4.0 : Spy optimisé grâce à Kriax,
    Ajout : - Regen d'hp
    - Size +/-
    - Voler de vos propres ailes
    Fichier translations OK
    -----------------------------------------------------------------------

    Idées futures : Balle illimité, !respawn.

    -----------------------------------------------------------------------

    Base du plugin de dertione.

    Lien utile :

    http://s-low.net/forum/viewtopic.php...2d30af8b0e2f46
    http://s-low.net/forum/viewtopic.php...14ec206f6dc19a
    http://s-low.net/forum/viewtopic.php...14ec206f6dc19a

    Pour le spy pensez à bien changer le skin ;)

    Donc voilà tout pour mon deuxième plug-in dans ce language j'espère qui vous plaira et sachez que mon orthographe n'est pas au TOP donc vous pouvez me corriger et si vous avez des idées pour améliorer le code ou des idées de bonus supplémentaire dîtes les à la suite du sujet ! :P

    Cordialement,

    Had3s99
    Fichiers attachés
    Dernière modification par had3s99, 10 septembre 2015, 21h10.

  • #2
    Gift v 3.0 car j'ai fais plein de modifs avant de le mettre tout public ! Et donc je metterai en place un changelog au sujet en fonction de vos idées !
    https://fr.wikipedia.org/wiki/Version_d'un_logiciel

    Code:
    new g_jailvip[MAXPLAYERS+1];
    new g_spyt[MAXPLAYERS+1];
    new g_spyct[MAXPLAYERS+1];
    Code:
    new bool:g_jaivip[MAXPLAYERS + 1];
    new bool:g_spyt[MAXPLAYERS + 1];
    new bool:g_spyct[MAXPLAYERS + 1];
    Tu peu facilement utiliser seulement une variable pour ton truc !spy, et faire une seule commande avec une vérification de team du genre :

    Code:
    public Action:Command_spy(client, args)
    {
        if ((GetUserFlagBits(client) & ADMFLAG_CUSTOM4 || GetUserFlagBits(client) & ADMFLAG_ROOT)&&IsPlayerAlive(client))
        {
            if(g_spy[client])
            {
                if(GetClientTeam(client) == 2)
                    SetEntityModel(client, "models/player/natalya/police/chp_male_jacket.mdl");
                if(GetClientTeam(client) == 3)
                    SetEntityModel(client, "models/player/techknow/prison/leet_p.mdl");
                    
                CPrintToChat(client, " {blue}[{lime}Gift{blue}]{default} Vous êtes déguisés !");
                CreateTimer(10.0, Timer_Spy, client) ;
                g_spy[client] = false;
                
                return Plugin_Handled;
            }
            else
            {
                CPrintToChat(client, " {blue}[{lime}Gift{blue}]{default} Vous n'avez pas accès à cette commande !");
                return Plugin_Handled;
            }
        }
        else
        {
            CPrintToChat(client, " {blue}[{lime}Gift{blue}]{default} Il faut être vip pour utiliser cette commande !");
            return Plugin_Handled;
        }
    } 
    
    public Action:Timer_Spy(Handle:timer, any:client)
    {
        if(GetClientTeam(client) == 3)
            SetEntityModel(client, "models/player/natalya/police/chp_male_jacket.mdl");
        if(GetClientTeam(client) == 2)
            SetEntityModel(client, "models/player/techknow/prison/leet_p.mdl");
        
        CPrintToChat(client, " {blue}[{lime}Gift{blue}]{default} Vous êtes plus déguiser !");
    }
    De-plus je vois que tu utilises des timers, les timers même si tu meurs ne sont pas stopé et donc, si tu utilses un overlay autre que ton truc de maladie, que la personne meurt et qu'elle respawn, cet autre overlay vas quand même se barrer vue que tu n'as pas stoper le timer.
    Enfin c'est la seul explication que je peu te donner dans ce cas-ci, part pas d'un principe logique, juste pense à ça à l'avenir.

    Tu devrais abandonné ces syntaxe et passé en programation objet et les nouvelles syntaxes de Sourcemod.
    Tu gagneras en facilité et en optimisation.

    Pour tes variables, utilise des boolean dans ce genre de chose ^^
    On ne l'à pas inventé pour rien, même si ça reviens au même elle ne sont pas la pour rien ^^

    Ah et tu tutoie le client dans certains gift et dans d'autre tu la vouvoie

    Code:
    gift[client] = gift[client] + 1;
    Tu peu aussi faire :

    Code:
    gift[client] += 1;

    Code:
    g_gift[client]++;
    et

    Code:
    HookEvent("player_disconnect", Deco);
    


    Code:
    OnClientDisconnect
    Et enfin dernière chose qui n'est pas des moindres :

    Code:
    public OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new client = GetClientOfUserId(GetEventInt(event, "userid"));
        if (GetUserFlagBits(client) & ADMFLAG_CUSTOM4 || GetUserFlagBits(client) & ADMFLAG_ROOT)
        {
            CPrintToChat(client, " {blue}[{lime}Gift{blue}]{default} Vous pouvez taper !gift.");
            gift[client] = 1;
            g_jailvip[client] = 0;
            g_spyt[client] = 0;
            g_spyct[client] = 0;
            SetEntityGravity(client, 1.0);
            ClientCommand(client, "r_screenoverlay 0");
        }
    }
    
    public Action:Command_Gift(client, args)
    {
        if ((GetUserFlagBits(client) & ADMFLAG_CUSTOM4 || GetUserFlagBits(client) & ADMFLAG_ROOT) && IsPlayerAlive(client))
        {
            if (gift[client] > 0)
            {
                new bonus = GetRandomInt(1, 210);
                {
                    if(bonus<=10)
                    {
    


    Malgré que tu vérifies le IsPlayerAlive, tu devrais aussi vérifié que il n'est pas en spectateur, et que le joueur n'est pas invalide.
    > Tape !gift en temps que console (Hlsw ou /rcon !gift) et tu verras se que te retourneras la commande ^^
    Dans ton respawn, si le joueur "respawn" en spectateur il auras quand même la phrase de gift (Si mes souvenirs sont bon ^^)

    C'est une question de propreté ^^
    Dernière modification par Kriax, 06 septembre 2015, 20h33.

    Commentaire


    • #3
      Salut kriax merci de tes conseils idées je vais en tenir compte et je trouve sympa que tu ai changé depuis la dernière fois avec la team Merci bien je travaillerai dessus et je proposerai la 3.1 d'ici 1 semaine ou 2 ;)

      Commentaire


      • #4
        Stress du travail de fin d'études + soucis avec la fille qur tu aimes = gros soucis, t'imagine les soucis irl :')

        Détrompe toi, je t'aime toujours pas mais je taff sur l'entraide du fofo ^^

        Commentaire


        • #5
          Et un dernier détail, les deux liens de ton premier post ne sont pas complets
          Avant de poser une question, merci d'aller sur le Wiki et d'utiliser la fonction recherche du forum



          Commentaire


          • #6
            Lien corrigé ;)

            Commentaire


            • #7
              Gift V4.0 publié !! :p

              Commentaire


              • #8
                Ici on vois clairement que tu as repris les codes du VipMenu et ce n'est pas quelque chose que tu devrais faire et je vais t'en expliquer les raisons.

                Comment je le sais:
                La nomenclature des variables ne trompe jamais ^^
                Code PHP:
                new gift[MAXPLAYERS+1];
                new 
                g_jailvip[MAXPLAYERS+1];
                new 
                g_spy[MAXPLAYERS+1];

                new 
                bool:g_Fly[MAXPLAYERS+1] = {false, ...};

                new 
                g_iHealthLimit;
                new 
                g_iHealthRegen;

                new 
                Handle:g_hTimerRegen[MAXPLAYERS+1] = {INVALID_HANDLE, ...};
                new 
                Handle:pub;

                new 
                Float:Vecteur[MAXPLAYERS+1];
                new 
                Float:g_fSizeOK;
                new 
                Float:g_fSizeUp;
                new 
                Float:g_fSizeDown;
                new 
                Float:g_fSizeFly


                De-plus tu utilises des bous de code n'importe comment ET DONC on vois clairement que tu ne comprends pas leur sens, asse pour avoir totalement fais du n'importe quoi.
                Code PHP:
                else if (bonus<=230)
                {
                    
                CPrintToChat(client" %s %t"LOGO"RegenHP");
                    new 
                Float:g_fIntervalRegen;
                    new 
                Handle:hKv CreateKeyValues("Regeneration");
                    
                g_fIntervalRegen KvGetFloat(hKv"interval_regen"3.0);
                    
                g_iHealthLimit KvGetNum(hKv"health_limit"100);
                    
                g_iHealthRegen KvGetNum(hKv"health_regen"3);
                    
                g_hTimerRegen[client] = CreateTimer(g_fIntervalRegenTimer_RegenclientTIMER_REPEAT);
                    
                gift[client]--;
                    return 
                Plugin_Handled;

                Ici tu viens chercher des keyvalues, sauf que tu ne les utilises pas réellement, tout çe que ca vas aller retourner dans ta variable c'est la valeur par défaut.
                En réalité, dans le VipMenu les kv sont utiliser pour aller lire dans un fichier de config, et ici t'as fais réellement du n'importe quoi.

                Je me suis arrêter ici dans la source pour t'expliquer.
                Je ne vais pas venir crier au Plagia mdr' j'ai commencer comme ça aussi, et je le répète comme énormément d'autre personne.

                Copié un plugin c'est pas réellement grave, mais si tu ne le comprends pas et que ça marche juste par principe il n'y à pas d'intérêt à faire du dev ^^
                Que ce sois du Web, sur Android (Java, ...) ou tout simplement un simple programme.

                Pour réellement apprendre à faire du dev dans n'importe quel language il faut d'abord comprendre son principe.

                C'est pareil dans n'importe quel domaine.
                Je vais prendre la musique comme domaine vue que tu me connais plus que les autres.
                Je pense que tu m'as déjà entendu faire de la guitare ou de la basse sur Teamspeak.
                En jouer n'est pas difficile, tu peu apprendre une chanson par coeur mais si tu ne sais pas quel accord tu joues ou quel nottes ou en est l'intérêt ?

                Dans ce genre d'instrument tu as les partitions (Notte de musique DO - RE - MI - ...) et les tablatures (Lignes avec les cases à jouer).
                Personnellement je fais les deux, car le solfège est la clef de la musique et la comprhenssion.

                C'est pareil pour le dev, la structure est la base et si tu ne la comprend pas, tu n'avanceras pas ^^
                Tu devrais prenser à voir un peu plus en profondeur et je te l'ai dit, n'hésite pas à poser des questions, je suis la pour ça.

                Kriax.

                Commentaire


                • #9
                  Oui je suis d'accord avec toi mais je t'ai demandé par MP si je pouvais reprendre tes syntaxes de codes que t'as publié et tu m'as donné l'accord et pour l'histoire de ne pas avoir tout compris je te rejoins sur tes syntaxes que j'ai été paumé ! ^^ Hkv je sais pas ce que c'est j'ai pas trop compris ce principe ça doit être le keyvalues que tu parles alors ? Mais pourquoi ta première citation ? Je comprends pas OK regenhp+ size mais les autres ils font quoi là ? ^^ Mauvaise utilisation ?

                  Commentaire


                  • #10
                    Je tiens juste à te précisé que c'est pas un coup de gueule et que je sais que je t'ai donne "mon accord" même si t'en à pas réellement besoin.

                    Je te montre mais ne t'explique pas réellement, tu devrais te pencher plus vers les bases du SP et évité les kv pour le moment.


                    Ici je déclare mes variables, jusque la rien de compliquer.
                    Code PHP:
                    new Handle:g_hTimerRegen[MAXPLAYERS+1] = {INVALID_HANDLE, ...};

                    new 
                    Float:g_fIntervalRegen;

                    new 
                    g_iHealthLimit;
                    new 
                    g_iHealthRegen

                    Et ici c'est mon fichier de configuration.

                    Code PHP:
                    public Load_RegenerationConfig()
                    {
                        new 
                    Handle:hKv CreateKeyValues("Regeneration");
                        
                        
                    decl String:sPath[PLATFORM_MAX_PATH];
                        
                    BuildPath(Path_SMsPathsizeof(sPath), "configs/vipmenu/regeneration.cfg");
                        
                        if (!
                    FileToKeyValues(hKvsPath)) 
                        {
                            
                    CloseHandle(hKv);
                            
                    SetFailState("Impossible de lire le fichier %s"sPath);
                        }

                        
                    g_fIntervalRegen KvGetFloat(hKv"interval_regen"3.0);
                        
                    g_iHealthLimit KvGetNum(hKv"health_limit"100);
                        
                    g_iHealthRegen KvGetNum(hKv"health_regen"1);

                        
                    CloseHandle(hKv);

                    Le fichier se trouve dans configs/vipmenu/regeneration.cfg
                    Tu peu voir que ici je reprend la valeur des kv "KvGetNum pour les integer, KvGetFloat pour les float, ...).
                    Et bien cela sert simplement à aller chercher la valeur dans le fichier de configuration:

                    Code:
                    "Regeneration"
                    {
                        "interval_regen"            "2.0"
                        "health_limit"    "100"
                        "health_regen"    "1"
                    }


                    Ton gift fonctionne car le troisième argument est la veleur par défaut mais n'iras pas reprendre la valeur dans un fichier car toi tu n'en n'as pas.

                    Encore une fois je te donne des explications simple avec des mots simple pour que tu comprennes, mais tu devrais évité ce genre de chose, surtout que tu ne les comprends pas encore et donc ne sais pas encore les utilisés ^^

                    Commentaire


                    • #11
                      Ouais je vois mais faut bien essayer dans la vie ^^ Sinon toi par exemple t'aurai pas avancer si tu essayes pas nan ? Mais j'ai compris la raison globale de mon erreur je corrigé ça ;)

                      Commentaire


                      • #12
                        Bah j'essayais de comprendre même si s’étaie du c/c ^^"
                        Le Sourcepawn c'est pas le premier langage que j'ai fais tu sais, j'avais déjà quelques notions par ci par la ^^ puis papa Kriax qui fais du dev, de la sécu réseaux et de la domotique et qu'il t'explique se qu'il fais et que t'en à rien à foutre, ça aidais quand t'étais petit mdr'

                        Re-essaie de faire ton Gift, de zéro sans copier/coller, ce n'est qu'un principe logique, ^^

                        Commentaire


                        • #13
                          Bâ sans te le cacher c'est ton truc de regenhp que je suis perdu ^^ mais après moi j'ai aucune base ... Donc rien C/C++ SQL HTML PHP rien de tout ça ^^ et je vais apprendre ces langages dans 2-3ans logiquement mais je connaissais ton parcours professionnel tu m'en avais déjà parler ^^ Et moi aussi j'essaie de comprendre mais comme je t'ai dis dans mon code j'ai tout compris de ce que j'ai mis sauf quand il y a ce hkv :X

                          Commentaire


                          • #14
                            Il faut juste comprendre le code.
                            Reprend ton autre gift et re-fais les nouveaux gift petit à petit et prend ton temps, regarde pas les kv x)

                            Commentaire


                            • #15
                              Ouais je le ferai mais en faite le seul truc c'est de créer des syntaxes à 0 actuellement avec mon niv de connaissance je ne sais faire

                              Commentaire

                              Chargement...
                              X