-
Compteur de contenus
1488 -
Inscription
-
Dernière visite
-
Jours gagnés
14
Type de contenu
Profils
Forums
Boutique
Calendrier
Tout ce qui a été posté par Kameyu
-
Oui ce sont les même au niveau de la police d'écriture, mais je trouve mon travail plus perfectionné et très semblable à celui de l'officiel. C'est pourquoi je tenais à vous le partager.
-
Centre de Téléchargement Télécharger ( Interne ) Bonjour, Après avoir vu le post de Fushiida, je me suis dit qu'il était pas très bien fait, donc j'ai décidé de vous en faire un tout beau tout neuf, très ressemblant au vrai, avec un .PSD éditable avec photoshop ou GIMP. La classe, hein ? Avant de recevoir des critiques, oui c'est bien moi qui l'ai fait, je me suis basé sur l'image officielle, et non il n'y a aucun copier/coller, donc j'atténue tout préavis sur le sujet. Voici le lien du .PSD comme promis : ICI Amusez-vous bien avec votre nouveau PSD ! EDIT : Je tiens à informer quiconque que l'utilisation de ce logo est libre mais soumise à restriction de déclaration de droits. Je ne prends pas plaisir à voir sur vos sites que vous êtes les créateurs du logo, surtout quand j'en suis le créateur. Je n'hésiterai pas à contacter le gérant dudit site ou peu importe quelle plateforme afin de corriger le tir. Également, est tenu pour responsable le plus haut placé dans la hiérarchie de la propriété en tort dont il est question.
- 17 réponses
-
- 32
-
-
-
-
-
Hmm merci, joli dragon !
-
Bonjour, bonsoir à toutes et à tous. Depuis le temps que je me ballade sur la partie "Quêtes" et "Aide / Questions / Support" je constate que nombre d'entre vous ont des problèmes de compilation et souvent même s'il compile la quête ne marche pas. Nous allons voir pas à pas comment débugguer sa quête pour la rendre fonctionnelle. Voici entre autre le "Sommaire" de ce tutoriel. Je qualifierai les étapes plus ou moins importantes en fonction des erreurs communes dont je mettrai des points d'exclamation entre parenthèses (!) selon l'importance. Bonne lecture, vous en avez un paquet qui vous attend ! /!\ Vous devez impérativement avoir lu entièrement le tutoriel de Valithis² sur les bases des quêtes afin de suivre ce tutoriel /!\ # Sommaire # 1. Les "Quest" et "State" (!) 2. Les "When" (!) 3. Les conditions (if/else/elseif) (!!) 4. Les End (!!!) 5. Organisation (!!) 6. Quelques astuces (!) 1. Les "Quest" et "State" Bien, maintenant que nous pouvons commencer le tutoriel, nous allons voir comment et quand placer les "Quest" et plus particulièrement les "state" pour éviter toute erreur lors de la compilation. Pourquoi ai-je un message d'erreur du genre " must start with 'quest' " lorsque je compile mes quêtes avec sh make ? C'est simple, vous n'avez pas mis de end à la fin de votre quête et pour cette raison, cette partie rejoint la partie 6 que vous allez voir après les End. Comment résoudre ce problème ? Je vous invite à lire cette toute petite quête pour exemple: quest bonjour begin state start begin when 9002.chat."Boutique" begin say_title("Bonjour") say("Message test") local choix = select("Oui","Non") if choix == 1 then say("Coucou") else say("Pas coucou") end end end Le compilateur me donnera une erreur lors de la compilation de cette quête. Pourquoi ? Tout simplement parce que je n'ai pas compté combien "d'états" j'ouvre à chaque fois. Ici, j'ai ouvert 4 états: Un "quest", un "state", un "when" et un "if". Il me faut donc au total "4 end" pour éviter toute erreur de compilation. C'est facile ton truc, je le fais tout le temps ! Oui, mais c'est là que ça devient compliqué ! Lorsque vous avez plusieurs "state" et plusieurs "if" et aussi des "if" à l'intérieur de "if", vous serez un moment donné perdus et vous ne saurez plus où il manque des end (d'où ça rejoint le chapitre 5 sur l'organisation). C'est ce qu'on va apprendre dans le chapitre 3 et 4. 2. Les "When" Que fait un "When" ? Un when exécute une liste de commandes et de conditions lorsqu'un évènement est déclenché. When signifie "Quand" en français. Par exemple, dans ma quête: Signifie "Quand le PNJ numéro 9002 affiche "Boutique" dans une fenêtre (et qu'on clique dessus bien entendu) alors démarre l'état et fais ça: (suite de l'état). Il suffit juste d'écrire la condition "when" correctement pour que celle-ci ne vous renvoie une erreur, à une exception près: vous ne mettez pas de fonction comme "kill", "levelup", "login", "chat", etc... et si vous mettez seulement "when pc.get_level() < 50 begin" il vous renverra une erreur, donc vous devrez rajouter "login or levelup with entre "when" et "pc.get_level()" pour indiquer: lorsque le personnage se connecte ou up un level inférieur à 50, fais ça: (début de la quête). Y'a rien de compliqué avec les When, c'est juste magique . 3. Les conditions (if/else/elseif) Les conditions "if / else / elseif" sont les mêmes que les autres: elles finissent par un "end". Cependant il ne faut pas oublier de le placer lorsque la condition est finie. Par exemple, si je veux faire un choix: une fois le else écrit pour le dernier choix, après les "say" et les conditions suivantes il ne faut pas oublier le "end" ! Sinon, le compilateur croira que la suite de votre code n'est que l'intérieur de la condition jusqu'à ce qu'il voit un autre end ! Oui, c'est bien pour ça que même si vous réussissez à compiler votre quête, vous n'arrivez pas à afficher les bonnes choses lorsque vous cliquez sur un choix ! Pour quelques veinards, la quête marchera, mais c'est rare, croyez-moi. C'est tout ce qu'il y avait à dire à propos des conditions. N'oubliez surtout pas le end une fois que tous les choix ont été créés !! 4. Les "End" Enfin, on en vient à la partie la plus importante du tutoriel ! N'oubliez pas de conserver les 3 end principaux (quest, state, when) à la fin de la page, ça vous permettra de savoir quel end correspond à quel autre end, par exemple quand vous avez des tonnes de conditions, si vous laissez trop de "end" en bas de page, vous ne saurez plus à quel état correspond tel "end". C'est pourquoi vous devez toujours garder 3 "end" en bas de page afin d'éviter de s'y perdre quand l'état "when" est terminé. Quand vous compilerez, s'il manque un "end" ce ne sera que pour un "if" ou une boucle (personnes un peu plus expérimentées...), voici un exemple pour les "end" à ajouter à la fin: quest bonjour begin state start begin when 9002.chat."Boutique" begin Je suis en train de taper le code pour la quête, et je laisse bien apparaître les trois end, tout en écrivant l'intérieur de la condition. Ça m'évite de les oublier si toutefois je suis trop absorbé par le if et que j'en oublie les trois premiers états. end end end Si vous avez plusieurs "state", vous ajouterez un "end" à la fin du state en question et laisserez seulement un end pour le "quest" à la première ligne. Vous tiendrez compte que si vous avez une erreur de end, vous compterez combien de "state" et de "when" vous avez ouvert. Dans un "state", il faut toujours deux "end" finaux, pour le "state" et le "when". 5. Organisation Accrochez-vous, c'est presque fini ! Le plus dur a déjà été fait ! La question tant posée dans ce chapitre est... Qu'est-ce que l'organisation dans les quêtes ? C'est simple, l'organisation c'est la manière avec laquelle vous écrivez vos quêtes et selon celle-ci, il est plus ou moins facile de se retrouver dans les étapes de la quête. Reprenons ma première quête d'exemple. Admettons que je n'organise pas la quête, ça donnerait en quelque sorte ça: quest bonjour begin state start begin when 9002.chat."Boutique" begin say_title("Bonjour") say("Message test") local choix = select("Oui","Non") if choix == 1 then say("Coucou") else say("Pas coucou") end end end C'est pas très évident à lire, n'est-ce pas ? Dans ce cas là, et comme je l'ai dit plus haut: On en vient enfin ! Donc c'est la raison pour laquelle si tout est mal placé, vous ne saurez pas à quoi les derniers "end" correspondent, sauf avec un peu de logique, mais admettons que j'ai dans ma quête 5 "if", ce ne serait pas si facile de s'y retrouver . Prenez cette quête pour exemple, qui est très bien organisée: quest bonjour begin state start begin when 20091.chat."Dire Bonjour" begin say_title("Dire bonjour à Seon-Pyeong") say("Voulez-vous dire bonjour ?") local a=select("Dire bonjour", "Quitter") if a == 1 then say("blablater") local e = select("Oui", "Non") if e == 1 then say("blablater") elseif e == 2 then say("faire du blabla") else return end else say("Au revoir !") end end end end Imaginez ce que ça donnerait si la quête n'était pas organisée... ! Bon, très bien je vous montre ça ! quest bonjour begin state start begin when 20091.chat."Dire Bonjour" begin say_title("Dire bonjour à Seon-Pyeong") say("Voulez-vous dire bonjour ?") local a=select("Dire bonjour", "Quitter") if a == 1 then say("blablater") local e = select("Oui", "Non") if e == 1 then say("blablater") elseif e == 2 then say("faire du blabla") else return end else say("Au revoir !") end end end end C'est pas beau à voir tout ça, hein ? Et si je vous demandais à quoi correspond le troisième "end" en partant de la fin, vous hésiterez un moment avant de le trouver . L'organisation n'est là que pour vous aider dans vos quêtes. Organisez vos quêtes: faites une tabulation sur l'éditeur lorsque vous ouvrez un état (quest, state, when, if, elseif, else, etc...) comme dans mon exemple organisé. Ça ne vous fera que du bien, et vous saurez (en regardant la colonne où est situé le "end", quand s'ouvrent et se ferment les états. Voilà, vous savez tout ce qu'il faut savoir pour débugguer sa quête. J'espère que vous y arriverez, et je vais vous donner, avec le chapitre 6, quelques conseils et astuces pour bien y parvenir. 6. Quelques astuces Voici maintenant quelques astuces afin de débugguer correctement votre quête. Lorsque vous compilez une quête, il vous affiche une erreur si vous vous plantez à un certain endroit de la quête. Selon l'erreur, les messages d'erreur affichés ne sont pas exactement les mêmes problèmes que vous avez, par exemple, s'il vous affiche "expected 'end'" ça veut dire qu'il vous manque un "end" et il vous indique à quel endroit ça ne va pas. Malheureusement le "end" que vous avez oublié n'est pas forcément à cette ligne ! Oui, c'est bien ça. La ligne qu'il vous indique c'est celle à laquelle il ne comprend plus ce que vous avez marqué, donc il renvoie un message d'erreur avec le numéro de la ligne où il a planté. C'est à vous de retrouver le "end" manquant, grâce aux étapes que je vous ai donné plus haut. N'oubliez pas une chose très très très importante dans la création de quêtes: /!\ N'ajoutez jamais de "end" à tire-larigot à la fin de la quête sans savoir ce que ça peut faire ! Cherchez toujours, oui je dis bien TOUJOURS si une condition est bien terminée par un "end", si c'est le cas, cherchez si ce n'est pas le "when" qui n'est pas fermé, puis le "state" et enfin le "quest" ! Sinon, la quête ne marchera pas comme vous le désirez /!\ Vérifiez si vous avez bien mis les "end" au bon endroit, sans ça, la quête ne fonctionnera pas comme prévu et vous aurez des surprises, notamment aux "select" lorsque vous cliquerez sur un des choix il se peut que la quête ne vous amène pas au choix attendu. Deuxième astuce, vous devriez télécharger "Notepad++" et l'installer. Une fois fait, ouvrez un nouveau document enregistré en .quest, et allez dans le menu du haut, choisissez "langage" puis "L" et choisissez "Lua", vous pourrez repérer les "if", "elseif", "else" et "end" ainsi que "local" et les return. Ils seront mis en surbrillance bleue pour les faire "ressortir" du code et ainsi vous permettre de bien voir où vous avez placé ces "mots-clés". Notepad++ est disponible ici (Téléchargement direct). Voilà, c'est tout pour ce tutoriel ! N'hésitez pas à m'envoyer un MP si vous trouvez une erreur dans les quêtes et si vous êtes certain que c'est une erreur (je ne tiens pas à me faire spammer par des débutants en quêtes). Merci d'avoir lu ce tutoriel, bien qu'un peu long, mais c'est pour votre bien ! Vous désirez partager ce tutoriel ? N'oubliez pas d'ajouter la source du tutoriel avant de le copier/coller, et si vous avez au moins fait l'effort de le lire, enlevez cette phrase, elle n'est là qu'à titre informatif ! Cordialement, Kameyu.
-
Dans ce cas il va falloir utiliser des pourcentages à la place de valeurs .
-
Elle est déjà disponible sur Github, je préfère ne pas donner les sources à n'importe qui, juste au cas où .
-
Faux Pour restreindre le refine à un certain PNJ, faut un truc dans le mob_proto il me semble.
-
Moi j'ai rien compris tout court ! Un coup il demande où trouver ses ID et Pw pour le compte GM, après il demande de l'aide parce que sa "barre de téléchargement" (dafuq ?) bouge pas. C'est très illogique et très mal expliqué.
-
Activer le brouillard avec un item...
Kameyu a répondu à un(e) question de Wiizko dans Questions & Réponses
Strictement impossible. Sauf si tu arrives à décompiler le jeu, modifier la source du jeu pour ajouter l'intéraction "fog" (brouillard) dans une quest et de faire une quest avec item_id.use... Mais je ne pense pas que tu en sois capable . -
C'est à Wall2Admin de voir, mais précise toujours, sinon je peux pas l'améliorer . Mais aussi, est-ce que tu veux que lorsqu'il tue à nouveau 15 mobs, il reçoit à nouveau l'item et ce sans limite de level (sauf à partir du niveau 15) ?
-
Version 1.3 upcoming, stay connected
-
Bon avant que ça continue à dire des bêtises... quest chasse_lv15 begin state start begin when login or levelup with pc.get_level() == 15 begin pc.setqf("kill_count", 0) setstate(tuer) end end state tuer begin when 101.kill begin pc.setqf("kill_count", pc.getqf("kill_count")+1) if pc.getqf("kill_count") == 15 then pc.give_item2("15429", 1) end end end end
-
Tu vas prendre cher Yaskos... Un dédié 64 bits possède 4Go ou plus de 4Go de ram, alors qu'un 32 bits n'en possède que 3,7 maximum. C'est là toute la différence, tu peux prendre n'importe quelles files avec n'importe quel dédié (du moment qu'il les supporte).
-
Probleme navicat avec windows 7
Kameyu a répondu à un(e) question de deadzone dans Questions & Réponses
Il est sur hamachi, donc pas besoin si c'est en local. Il faut que tu te connectes avec l'ip qui finit par .100 et même si tu n'ouvres pas ton port 3306 ou 80 ça marche quand même. -
J'avais pas fait attention, tant pis !
-
En C++ tu pourrais, car "get_level(120)" reviendrait à "get_level = 120". Je me suis pas encore penché sur ta quête, je te tiendrai au courant.
-
T'as ta réponse satir ^^ Je vais te faire la première quête, Wall2Admin. Pour la deuxième, tu changes le level limite et l'idem donné (et le mob si tu veux).
-
if pc.get_level() >= 120 then xxx else xxx end Pour les parenthèses rose, pc.get_level() est une fonction. Les parenthèses sont là pour premièrement indiquer que c'est une fonction, mais en plus en général elles contiennent des paramètres comme la fonction give_item2(ID_item, nombre) et comme get_level() ne permet que de stocker un nombre, il n'y a aucun paramètre à prendre en compte donc on ouvre et on ferme la parenthèses du fait qu'il n'y ait aucun paramètre. Tout simplement
-
Vous avez tous faux, le problème vient d'ici: Tu cherches à faire une instruction when avec pour comparatif login/levelupqui est une fonction, ou une valeur "pc.get_level() >= X" (dont tu as oublié les parenthèses)... Et ça ne peut pas marcher puisqu'on ne peut pas comparer une fonction avec une valeur. Essaie de trouver une meilleure méthode.
-
Soit tu as mal configuré ton VPC, soit tu n'as pas configuré les ports comme il le faut.
-
Mise à jour 1.2 disponible. Bon téléchargement.
-
Probleme navicat avec windows 7
Kameyu a répondu à un(e) question de deadzone dans Questions & Réponses
Mords-moi-le-nœud*, merci :wink:. Bah je t'ai dit que je ne savais pas d'où venait ton problème donc bon... -
=> fail. Et pour tant tu sais bien qu'on va attirer par mal de leechers avec les files 2012...
-
Probleme navicat avec windows 7
Kameyu a répondu à un(e) question de deadzone dans Questions & Réponses
Effectivement c'est bizarre. Je ne vois pas quel pourrait être le problème.
