Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

Hystos

Membre
  • Compteur de contenus

    256
  • Inscription

  • Dernière visite

Messages posté(e)s par Hystos

  1. Connexion base de donnée --> Navicat

    Allez, c'est presque fini :embarrased: . Vous pouvez fermer Navicat, ou non, si vous avez la flemme de le relancer pour créer votre compte GM. Su WinSCP, allez dans le dossier metin2 qui se trouve dans le dossier usr. Les dossiers concerné, sont channel 1,2,3,4,5,game99,auth et db.

     

    Dans les fichier CONFIG de channel 1, vous avez 3 lignes :

     

    PLAYER_SQL: 
    COMMON_SQL:
    LOG_SQL:

     

    C'est ces lignes que vous devriez modifier. Modifiez comme ceci :

    (Pour les fichiers CONFIG de channel et game99 )

     

    PLAYER_SQL: **.**.***.** **** ********* player

    COMMON_SQL: **.**.***.** **** ********* common

    LOG_SQL: **.**.***.** **** ********* log

     

    Couleur: L'ip utiliser pour se connecter a Navicate

    Couleur: Votre identifiant Navicate

    Couleur: Votre mot de passe Navicate

     

    Les mots player, common et player, ne sont pas là pour rien, il faut les laisser .

     

    Pour le fichier Config de auth:

     

    PLAYER_SQL: ***.**.***.** **** ********* account

    COMMON_SQL: ***.**.***.** **** ********* common

    LOG_SQL: ***.**.***.** **** ********* log

     

    Couleur: L'ip utiliser pour se connecter a Navicate

    Couleur: Votre identifiant Navicate

    Couleur: Votre mot de passe Navicate

     

    Les mots account, common et log ne sont pas là pour rien, il faut les laisser.

    Et enfin, pour le fichier config.txt de db:

     

    SQL_ACCOUNT = "***.**.***.** account **** ********* 0"

    SQL_PLAYER = "***.**.***.** player **** ********* 0"

    SQL_COMMON = "***.**.***.** common **** ********* 0"

    SQL_HOTBACKUP = "***.**.***.** hotbackup **** ********* 0"

     

    Couleur: L'ip utiliser pour se connecter a Navicate

    Couleur: Votre identifiant Navicate

    Couleur: Votre mot de passe Navicate

     

    Les mots player, account, common et hotbackup ne sont pas là pour rien, il faut les laisser.

     

    C'est juste les * qui faut changer, rien d'autre . Donc là c'est la même chose sauf que les mots se trouve au milieux et aussi l'apparition des 0 à la fin . Ne pas oublier les " .

     

    Voila, votre serveur est maintenant en file 2012. Je ferais une partie un peu plus tard . Rebootez votre serveur puis voila les commandes à effectuer pour lancer votre serveur:

     

    cd /usr/metin2;

     

     

    Pour allumer votre serveur:

     

    sh start.sh

     

     

    Pour éteindre le serveur le serveur:

     

    sh close.sh

     

     

    Enfin, tapez le nombre de channel que vous voulez lancer. Ne jamais démarrer le serveur si le serveur est déjà démarré, il faut toujours l'éteindre avant toutes choses !

     

     

     

     

    Elea

     

     

    Tu as bien fait ça ?

  2. Oulah, je suis complètement dépassé avec ces nouvelles branches moi ! Qu'on est bien en files 2012 <3

     

    Si quelqu'un pouvait me fournir les item_proto et mob_proto clients (.xml) et serveurs (.txt ET .sql) des nouveaux fichiers, ça serait cool.

  3. Pour pleins de raisons dont celle-ci, il est préférable de traiter avec des bases de données. Je te conseille personnellement de revenir donc à l'ancien système.

     

    Sinon, il faut que tu ailles directement dans ton fichier mob_proto.txt et que tu fasses l'opération à la main (il n'y a pas d'autre moyen à ma connaissance, mais je ne connais pas bien ces nouveaux fichiers donc quelqu'un pourra confirmer).

     

    Au pire, tu peux de générer à nouveau ce fichier .txt à partir de ta table (avec l'aide de n'importe quel langage).

  4. Je vais essayer d'être le plus clair possible.

     

    Un timer déclaré avec timer() est lié au personnage qui le lance. Un timer se créé de la façon suivante :

    timer("nom_du_timer", temps_en_secondes_avec_le_declenchement)

     

     

    Au bout du temps spécifié lors de sa création, le game va vous lancer un event que vous allez pouvoir récupérer de la façon suivante :

    when nom_du_timer.timer begin
    
    end
    

     

     

    Vous pouvez alors faire les actions que vous voulez à l'intérieur, sachant que ces actions seront effectués sur le personnage avec lequel vous avez lancé le timer. Par exemple, voici une mini-quête qui téléportera un personnage 20 secondes après qu'il l'ait demandé :

    quest tp begin
        state start begin
             when 9012.chat."Téléporte moi" begin
                  timer("timer_tp", 20)
                  say("Tu seras téléporté dans 20 secondes.")
             end
    
             when timer_tp.timer begin
                  pc.warp(xxx, yyy)
             end
        end
    end

     

     

    Uniquement le personnage ayant cliqué sur le PNJ sera téléporté.

     

    Vous pouvez utiliser à la place de pc.warp() la fonction warp_all_to_village(), ce qui aura l'effet escompté.

     

    ATTENTION :

    - Le timer ci-dessus s'applique à un personnage. Si un autre personnage clique sur le PNJ, son timer personnel se lancera et celui de l'autre ne sera absolument pas modifié. Il ne faut donc qu'il n'y ait qu'un seul timer qui soit lancé dans ton cas. En effet, si 2 personnages le lançaient exactement en même temps, il y aurait 2 téléportations, ce qui pourrait occasionner des problèmes.

    - Un timer lié à un personnage se désactive lorsque le personnage subit un logout / login. Contrairement à ce qu'on pourrait croire, une simple téléportation ou changement de personnage suffit pour déclencher ces événements. Dans le cas où 2 timers seraient lancés, si le premier a suffisamment d'avance sur le second, alors le second sera annulé (une seconde peut être suffisante selon la charge du serveur).

     

    Il existe d'autres types de timer : les server_timer. Ces derniers sont liés non pas à un personnage mais au serveur entier. Ce faisant, l'utilisation de fonctions telles que pc.warp() est absolument impossible car aucun personnage n'est sélectionné. Il est également impossible de sélectionner un personnage avec un pc.select(). Cependant, la fonction warp_all_to_village() n'agit pas sur un personnage en particulier mais sur un ensemble. Elle est ainsi tout à fait utilisable avec un server_timer. Je vous conseille donc d'utiliser un server_timer dans votre cas. Les server_timer s'utilisent exactement comme les timer simple, en rajoutant le préfixe server_ lors de la création et dans l'événement. De plus, un server_timer ne s'annulera que dans le cas d'un reboot ou d'un crash du serveur.

     

    J'espère avoir donné toutes les clés. Si vous avez des questions, n'hésitez pas.

  5. Si c'est le même code que tu as dans ton fichier, c'est normal. Comme l'a dit Galet, tu as oublié de modifier le X dans la ligne que j'ai mentionnée.

     

    quest map_turko begin
       state start begin
           when 20014.chat."Map de farmage" begin -- A MODIFIER
               if get_time() >= pc.getqf("next_time") then
                   say_title("Map de farmage")
                   say("Cette Map renferme la tempête des Metin,")
                   say("seul vous peu aller détruire c'est pierre")
                   say("qui nous envahissent de jour en jour.")
                   say("Le seul désinconvénient, c'est que vous pouvez")
                   say("y rester que pendant 1h, ensuite, vous pourrez")
                   say("y retourner dans 12h.")
                   say("")
                   say("Souhaitez-vous y aller ?")
                   if select(locale.yes, locale.no) == 2 then return end
                   pc.setqf("next_time", get_time()+12*60*60) -- A modifier
                   pc.setqf("end_time", get_time()+60*60) -- A modifier
                   pc.warp(911100, 911100) -- A MODIFIER
               else
                   say_title("Map de farmage")
                   say("Vous ne pouvez pas encore y aller,")
                   say("Revenez plus tard !")
               end
           end
           when login with pc.get_map_index() == 202 begin -- A modifier
                 if get_time() > pc.getqf("end_time") then
                         warp_to_village(202, 10) -- A modifier
                 else
                         local remain = pc.getqf("end_time")-get_time()
                         timer("time_out", remain)
                 end
           end
           when time_out.timer begin
               notice("Fin, vous allez être téléporté dans 10 secondes.")
               notice("Prochaine ouverture dans 12 heures")
               warp_to_village(63, 10) -- A MODIFIER
           end
    
       end
    end
    

  6. Tu as bien modifié la ligne when login with pc.get_map_index() == X begin -- A modifier ?

     

    X doit être l'index de la map d'event.

     

    Si c'est déjà fait, rajoute un notice("test") derrière pour vérifier que le timer se déclenche bien. Après, tu peux faire afficher la variable remain aussi, la variable qf end_time pour vérifier que tout est bon.

  7. quest x begin
       state start begin
           when ID_PNJ.chat."TITRE" begin -- A MODIFIER
               if get_time() >= pc.getqf("next_time") then
                   say_title("X")
                   say("t'veux entrer?")
                   if select(locale.yes, locale.no) == 2 then return end
                   pc.setqf("next_time", get_time()+12*60*60) -- A modifier
                   pc.setqf("end_time", get_time()+60*60) -- A modifier
                   pc.warp(xxx00, yyy00) -- A MODIFIER
               else
                   say_title("X")
                   say("Vous ne pouvez pas encore entrer")
               end
           end
           when login with pc.get_map_index() == X begin -- A modifier
                 if get_time() > pc.getqf("end_time") then
                         warp_to_village(X, 10) -- A modifier
                 else
                         local remain = pc.getqf("end_time")-get_time()
                         timer("time_out", remain)
                 end
           end
           when time_out.timer begin
               notice("Fin de l'event, vous allez être téléporté dans 10 secondes.")
               notice("Prochaine ouverture dans 12 heures")
               warp_to_village(X, 10) -- A MODIFIER
           end
    
       end
    end
    

     

    Essaie plutôt ça. J'ai évidemment pas testé mais ça devrait mieux marcher normalement. Sauf erreur de ma part, les timers liés aux personnages se suppriment lors d'une téléportation ou d'une déconnexion.

  8. Bonjour !

     

    Comme vous pouvez le lire par vous même, le code que vous venez de nous transmettre est celui de la page de gestion des inscriptions et non celle sur laquelle les joueurs s'inscrivent.

     

    Essayez de trouver une autre page dans vos répertoires portant un nom semblable avec à l'intérieur entre autre le texte qui s'affiche lorsque vous vous inscrivez.

     

    Sinon, je vous conseille personnellement de vous rabattre faute de compétences sur un CMS gratuit, libre et sécurisé tel que MT2-CMS que vous pourrez customiser à souhait en suivant les nombreux tutoriels présents sur le forum.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.