Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Archives
  3. Ajouter une arme dans la boutique

Ajouter une arme dans la boutique

Planifié Épinglé Verrouillé Déplacé Archives
7 Messages 4 Publieurs 871 Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • MihawkM Hors-ligne
    MihawkM Hors-ligne
    Mihawk
    Modérateur spécialisé
    a écrit sur dernière édition par
    #1

    Bonjour tout le monde !

    Aujourd'hui vous allez apprendre à ajouter un objet dans la boutique (dans notre exemple ça sera une arme, mais ça peut être avec tout type d'objet, il suffit juste d'adapter)

    Avant toutes choses, il vous faut les pré-requis ! 🙂

    Pré-requis :

    • Un serveur installé et fonctionnel, ainsi qu'un client (cf. : )

    • Avoir pris connaissance de ce tutoriel (Pour extraire les ressources essentiellement => )

    • Navicat, pour éditer la base de donnée.

    • Notepad++ (ça sera plus simple qu'un simple bloc note)

    • Un petit peu de patience ! 🙂

    Etape 1 - Réglage des propriétés de l'arme :

    Alors, dans un premier temps, vous allez avec notepad++ ouvrir le fichier s4_weapons.x4 (Dans notre exemple, nous utiliserons le "Minegun")

    Utilisez la commande rapide une fois le fichier ouvert Ctrl + H afin d'ouvrir la barre de recherche, puis cherchez "Mine gun" :

    ![1415113512-ea488719162.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2014/45/1415113512-ea488719162.png)

    Vous devriez maintenant voir un contenu similaire à celui-ci :

    <sub_category id="5">
                <item number="1">
                    <product id="1" term_contract="NO_TIME_LIMIT" gm_price="40000" cash_price="0" durability_inital_value="2400" remaining_second="-1" refund_enable="true" />
                    <product id="2" term_contract="TS_5_HOURS" gm_price="5000" cash_price="0" durability_inital_value="-1" remaining_second="18000" refund_enable="true" />
                    <base name="그레네이드 건" require_level="0" exp_boost_percent="0" require_license="license_mine_gun" sale_mode="0" />
                    <client icon_image="Resources/Image/Weapon/icon_gun_mine.tga" attrib_comment="{A-L}{F-2002_12}볼 형태로 압축된 폭발성 에너지를{N}원하는 타이밍에 투척할 수 있도록{N}제작한 무기. 신체와 물체에 닿을 시{N}폭발하도록 설계되어 있다.{N}포물선으로 날아가는 에너지 볼의 {N}궤적을 연구할 필요가 있다.{N}{CB-0,255,0,255}[조작법]{N}마우스 왼쪽 버튼 : 에너지볼 발사{N}{CB-255,0,0,255}시범무기로써 라이센스로 획득한 무기만{N}사용할 수 있습니다.{N}추후 밸런스 조정 가능성이 있습니다." feature_comment="투척 무기" />
                    <license script_file="license_MineGun.lua" script_func="OnMineGunLicenseTest" license_map="104" />
                    <attach />
                    <weapon type="10" rate_of_fire="" power="45.0" move_speed_rate="1.0" attack_move_speed_rate="1.0" magazine_capacity="1" cracked_magazine_capacity="1" max_ammo="4" accuracy="" range="500.0" support_sniper_mode="0" sniper_mode_fov="15" reload_sound_file="Resources/Sound/grenade_reload.ogg" slot_image_file="Resources/Image/Weapon/slot_gun_mine.tga" crosshair_file="Resources/Image/Weapon/crosshair_gun_mine" crosshair_zoomin_file="Resources/Image/Weapon/crosshair_gun_mine" auto_target_distance="0.0">
                        <scene value="resources/Model/Weapon/minegun.scn" />
                    </weapon>
                    <lang>
                        <nation id="2" name_code="Mine Gun" attrib_comment_code="{A-L}{F-2002_12}Waffe, die zur gewünschten Zeit mit{N}konzentrierter Energie in Ballform angreift.{N}Eingerichtet, um bei physischem Kontakt zu{N}explodieren. Die Flugformation des Energieballs ist {N}noch unerforscht.{N}{CB-0,255,0,255}[Anwendung]{N}Linke Maustaste: Energieball abschießen{N}{CB-255,0,0,255}Dies ist eine befristete Waffe, die nur{N}durch den License Test erworben werden kann.{N}Spätere Änderungen zur Anpassung möglich." feature_comment_code="Throwing Weapon" />
                        <nation id="3" name_code="Mine Gun" attrib_comment_code="{A-L}{F-2002_12}Weapon with compressed explosive energy{N}in ball form for carefully timed sniping. It is made to{N}explode on physical contact. Research into the{N}flight of the ball is essential.{N}{CB-0,255,0,255}[Operation]{N}Click left mouse button: Fire weapon.{N}{CB-255,0,0,255}This is a temporary weapon{N}which can only be used by acquiring a weapons license.{N}Balance adjustment might be required afterwards." feature_comment_code="Throwing Weapon" />
                        <nation id="4" name_code="Mine Gun" attrib_comment_code="{A-L}{F-2002_12}Arme avec de l&apos;énergie explosive compressée{N}sous la forme d&apos;une balle pour tirer selon un timing précis. Elles sont faites{N}pour exploser au contact physique. Des recherches{N}sur le comportement de l&apos;energyball sont nécessaires.{N}{CB-0,255,0,255}[Utilisation]{N}Clic gauche: tirer {N}{CB-255,0,0,255}C&apos;est une arme temporaire{N}qui peut uniquement être utilisée pendant la licence{N}Des ajustements pourraient être nécessaires." feature_comment_code="Throwing Weapon" />
                        <nation id="5" name_code="Mine Gun" attrib_comment_code="{A-L}{F-2002_12}Weapon with compressed explosive energy{N}in ball form for sniping on desired timing. It is made{N}to explode on physical contact. Research of the{N}energyball flight formation is needed.{N}{CB-0,255,0,255}[Controls]{N}Left mouse button : Fire energyball {N}{CB-255,0,0,255}This is a temporary weapon{N}which can only be used by license acquired weapons{N}Balance adjustment might be required afterwards." feature_comment_code="Throwing Weapon" />
                        <nation id="6" name_code="Mine Gun" attrib_comment_code="{A-L}{F-2002_12}Arma ad energia compressa in una sfera{N}che esplode in un momento preciso.{N}Esplode a contatto. Fai attenzione{N}alla sua traettoria.{N}{CB-0,255,0,255}[Comandi]{N}Tasto sinistro: spara la energyball{N}{CB-255,0,0,255}Arma temporanea{N}da usare con armi di cui si ha la licenza.{N}Può essere necessario ribilanciarle." feature_comment_code="Throwing Weapon" />
                        <nation id="7" name_code="Mine Gun" attrib_comment_code="{A-L}{F-2002_12}Оружие со спресованной в шар{N}взрывной энергией для точных выстрелов с учетом{N}поправки на траекторию. Взрывается при физическом{N}контакте с противником.{N}{CB-0,255,0,255}[Управление]{N}Левая кнопка мыши: выстрелить шаром{N}{CB-255,0,0,255}Это временное оружие,{N}получить которое можно только через{N}Лицензию. Проводится балансировка." feature_comment_code="Throwing Weapon" />
                    </lang>
                </item>
    

    /!\ Afin que mon explication ne soit pas "flou" pour certains, je vous conseille d'aller voir dans un premier temps, ce sujet, avant d'aller plus loin :

    Donc ! Voilà les lignes qui nous intéressent pour ce tutoriel, gardez les bien en vu ! Je vais vous expliquer pourquoi nous allons en avoir besoin juste après, dans l'étape 2 :

    <sub_category id="5">
                <item number="1">
                    <product id="1" term_contract="NO_TIME_LIMIT" gm_price="40000" cash_price="0" durability_inital_value="2400" remaining_second="-1" refund_enable="true" />
                    <product id="2" term_contract="TS_5_HOURS" gm_price="5000" cash_price="0" durability_inital_value="-1" remaining_second="18000" refund_enable="true" />
    

    Petite explication brève des variables (non-vu dans le sujet sur la structure de weapons) :

    • term_contract : Ceci correspond à la durée d'utilisation de l'objet avant qu'il ne disparaisse de l'inventaire.

    ATTENTION ! BUG REPÉRÉ !

    Quel est le soucis rencontré avec l'émulateur à ce sujet actuellement ? (Petite astuce pour y faire face.)

    Certains qui auront déjà tentés l'auront remarqués, les objets malgré qu'on leur mettent un term_contract "NO_TIME_LIMIT" et un remaining_second de "-1" disparaissent après un certain temps (variable et vous allez comprendre pourquoi, même si c'est ridicule.)

    Si vous utilisez un product_id différent de 1 pour un objet illimité, celui-ci ne le sera tout simplement jamais (en terme d'expiration de temps)

    Pourquoi ? C'est une question que je me pose, cela doit venir certainement de l'émulateur, mais pas que, le client datant un peu doit y être pour quelque chose.

    EN TOUT CAS ! si vous voulez des exemples de product_id valides, avec les bons temps d'expiration, prenez cet exemple là, qui lui est bon (je précise aussi qu'il n'y a que le "temps" qui est touché par le bug, et rien d'autre) :

                    <product id="1" term_contract="NO_TIME_LIMIT" gm_price="29000" cash_price="0" durability_inital_value="2400" remaining_second="-1" refund_enable="true" />
                    <product id="2" term_contract="TS_5_HOURS" gm_price="5000" cash_price="0" durability_inital_value="-1" remaining_second="18000" refund_enable="true" />
                    <product id="3" term_contract="NO_TIME_LIMIT" gm_price="0" cash_price="0" durability_inital_value="2400" remaining_second="-1" refund_enable="false" />
                    <product id="4" term_contract="TS_1_HOURS" gm_price="1000" cash_price="0" durability_inital_value="-1" remaining_second="3600" refund_enable="true" />
                    <product id="5" term_contract="TS_3_HOURS" gm_price="3000" cash_price="0" durability_inital_value="-1" remaining_second="10800" refund_enable="true" />
                    <product id="6" term_contract="TS_7_HOURS" gm_price="7000" cash_price="0" durability_inital_value="-1" remaining_second="25200" refund_enable="true" />
                    <product id="7" term_contract="TS_10_HOURS" gm_price="10000" cash_price="0" durability_inital_value="-1" remaining_second="36000" refund_enable="true" />
                    <product id="8" term_contract="TS_10_HOURS" gm_price="0" cash_price="0" durability_inital_value="-1" remaining_second="36000" refund_enable="false" />
    

    gm_price : Prix fixé en "PEN" pour l'arme (Seulement "visuel")

    cash_price : Prix fixé en "AP" pour l'arme (Seulement "visuel")

    durability_initial_value : Durabilité interprété par le client maximum de l'arme (et ensuite comparé à la BDD)

    EXPLICATION IMPORTANTE SUR CE POINT !

    la durabilité fixé dans ce paramètre n'est pas celle que l'utilisateur aura à l'achat, comme je l'ai dis, elle sert juste de "comparatif"

    Pourquoi ?

    Dans la BDD (nous allons le voir tout à l'heure) vous allez aussi fixé une durabilité (la même) à l'achat.

    Le client quand à lui va comparer par rapport à la durabilité de base, qu'on a fixé dans le .x4 avec celle actuellement présente dans l'inventaire (une autre table)

    Il fait cette comparaison pour une raison toute simple, moins une arme a de durabilité (par rapport à celle de base, 2400) moins elle fera de dégâts ! (c'est le système de l'époque, on y peut rien)

    Faites aussi très attention à ça, car côté émulateur, il y a un autre bug (Encore ?!)

    Et oui, la réparation est impossible. Il va donc falloir ruser, afin d'éviter cette baisse des dégâts pour les joueurs (ou régler le problème directement dans l'émulateur)

    remaining_second : Le temps avant suppression de l'arme (pareil, c'est à titre comparatif, avec la table de l'inventaire)

    refund_enable : Définit si l'arme peut-être revendu ou non.

    Etape 2 - On prépare l'ajout de l'arme dans la BDD depuis s4_shop.x4 !

    Dans cette deuxième étape, vous allez devoir ouvrir s4_shop.x4 et cherchez category_id="2" :

    ![1415115315-0152ca638b2.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2014/45/1415115315-0152ca638b2.png)

    Puis descendez jusqu'à trouver la sub_category_id="5", vous devriez tomber sur ça ! :

    <sub_category id="5">
                <!--투척무기-->
                <item number="1">
                    <product id="1" dev="true" />
                    <product id="2" dev="true" />
                </item>
                <!--투척형 베러아이템-->
                <item number="2101">
                    <product id="2" dev="true" />
                    <product id="3" dev="true" />
                    <product id="1" dev="true" />
                </item>
    </sub_category>
    

    Oh mais ! L'arme est déjà présente ?! Que dois-je faire ?

    Pas de panique ! C'est normal, l'arme était déjà présente dans le client à cette époque, mais juste pas sortie.

    Pour cela, S4L a mis au point cette petite variable => dev="true" afin de masquer l'arme dans le shop !

    Vous n'avez qu'à remplacer celle ligne, afin de faire apparaître l'arme dans le shop (avec uniquement l'achat illimité)

     <item number="1">
                    <product id="1" dev="true" />
    

    en :

    <item number="1">
                    <product id="1" dev="false" />
    

    Voilà ! Maintenant on passe à la base de donnée ! 🙂

    Etape 3 - Configuration dans la base de donnée !

    Ouvrez navicat, connectez vous à votre réseau, et ouvrez la basse de donnée "game" :

    ![1415115716-cdedd43e352.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2014/45/1415115716-cdedd43e352.png)   => double cliquez sur la table "shop" afin de l'ouvrir

    Voici la ligne à ajouter (je vais expliquer pourquoi remplir ainsi) :

    ![1415115924-7697e5fcba2.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2014/45/1415115924-7697e5fcba2.png)![1415115924-971c2724812.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2014/45/1415115924-971c2724812.png)

    ID : ID de l'objet dans le shop, doit être unique !

    Type : Type d'achat (numérotez en 1,2,3 si vous avez plusieurs fois le même objet, mais avec différents product_id)

    Category : Catégorie de l'arme (cf. s4_weapon.x4)

    SubCategory : Sous-catégorie de l'arme (cf. s4_weapon.x4)

    ItemID : ID de l'arme (cf. s4_weapon.x4)

    ProductID : ID du "product_id" (mettez le même que celui présent dans s4_weapon & s4_shop, que l'affichage, et l'argent soutiré soient identiques)

    Price : Prix en PEN soutiré à l'achat (Ce n'est pas le prix affiché, mais uniquement soutiré)

    Cash : Prix en AP soutiré à l'achat (Idem)

    Energy : Durabilité de l'objet donné à l'achat (cf. ce que j'ai expliqué à ce sujet, un peu plus haut)

    Time : Temps restant avant la suppression de l'objet (cf. s4_weapon.x4)

    Comment : Commentaire, à indiquer pour mieux vous repérer dans la table, uniquement 🙂

    Voilà ! c'est terminé !

    Vous n'avez plus qu'à remplacer les s4_weapons.x4 et s4_shop.s4 de votre client, afin que tout soit bon ! 🙂 (clic droit sur le fichier à remplacer, puis "replace")

    ![1415116453-191867deac2.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2014/45/1415116453-191867deac2.png) ET N'OUBLIEZ PAS DE SAUVEGARDER ! =====> ![1415116527-397389df282.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://image.noelshack.com/fichiers/2014/45/1415116527-397389df282.png)

    1 réponse Dernière réponse
    4
    • AzadA Hors-ligne
      AzadA Hors-ligne
      Azad
      a écrit sur dernière édition par
      #2

      Ah voilà un bon, très bon, sujet comme je les aimes !
      Merci bien du partage. La mise en forme est pas mal, tu devrais juste mettre des listes à puces pour les listings/définitions. 🙂

      +1 point de réputation.

      Administrateur du forum.

      Contactez-moi par message privé ou par mail.

      1 réponse Dernière réponse
      0
      • MihawkM Hors-ligne
        MihawkM Hors-ligne
        Mihawk
        Modérateur spécialisé
        a écrit sur dernière édition par
        #3

        Ah voilà un bon, très bon, sujet comme je les aimes !

        Merci bien du partage. La mise en forme est pas mal, tu devrais juste mettre des listes à puces pour les listings/définitions. 🙂

        +1 point de réputation.

        Merci Azad ! 🙂

        Je prend en compte les "puces" pour les prochains tutoriels, et je vais éditer sans doute les autres pour les ajouter, merci de la remarque ! 😄

        1 réponse Dernière réponse
        0
        • FaryBloodF Hors-ligne
          FaryBloodF Hors-ligne
          FaryBlood
          a écrit sur dernière édition par
          #4

          Merci pour se fabuleux tutoriel meme si il ma peu servit j'ai un probleme j'ai des fichier que j'ai trouver j'ai reussi a les installer mais je voudrai mettre leur images et les effets ig screen : ![293759S420141221133152.jpg](<base_url>/applications/sslimageproxy/interface/image.php?url=http://img11.hostingpics.net/pics/293759S420141221133152.jpg)rectification je suis arriver a le faire mais je voudrai un tutoriel sur l'ajout des costumes s'il vous plait merci !! 🙂

          1 réponse Dernière réponse
          0
          • FaryBloodF Hors-ligne
            FaryBloodF Hors-ligne
            FaryBlood
            a écrit sur dernière édition par
            #5

            Voila le boulot : ![397447S420141221143724.jpg](<base_url>/applications/sslimageproxy/interface/image.php?url=http://img11.hostingpics.net/pics/397447S420141221143724.jpg)Dites moi se que vous en penser

            1 réponse Dernière réponse
            0
            • MihawkM Hors-ligne
              MihawkM Hors-ligne
              Mihawk
              Modérateur spécialisé
              a écrit sur dernière édition par
              #6

              C'est bien ^^

              Tu arrives à mettre en pratique le tutoriel c'est l'essentiel ! 🙂

              1 réponse Dernière réponse
              0
              • J Hors-ligne
                J Hors-ligne
                jojodata
                a écrit sur dernière édition par
                #7

                Je ne peux pas ajouter une taeser ?

                J'explique ma démarche : Je remplace le "sword.scn" par "tasersword.scn" puis le dds par celui de la taser.

                J'ai aussi changé le weapon.x4 en mettant un notre lien de direction pour les scn ou les dds et rien ne fonctionne, c'est le crash assuré.

                Que faire ?

                1 réponse Dernière réponse
                0

                Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

                Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

                Grâce à votre participation, ce message peut devenir encore meilleur 💗

                S'inscrire Se connecter
                Répondre
                • Répondre à l'aide d'un nouveau sujet
                Se connecter pour répondre
                • Du plus ancien au plus récent
                • Du plus récent au plus ancien
                • Les plus votés


                • Se connecter

                • Connectez-vous ou inscrivez-vous pour faire une recherche.
                Powered by NodeBB Contributors
                • Premier message
                  Dernier message
                0
                • Catégories
                • Récent
                • Mots-clés
                • Populaire
                • Web
                • Utilisateurs
                • Groupes