| Aides pour Création Quest Teleport avec timer ... | |
|
|
Auteur | Message |
---|
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Aides pour Création Quest Teleport avec timer ... 31/08/08, 03:33 pm | |
| Bonjour,
J'ai beau chercher un peu partout sur le forum( via "Rechercher" ou post /post), mais je trouve nul part ou il est question de timer dans un quete custom.
Je m'explique je veux faire un Npc teleporteur vers une zone qui peux teleporter que toutes les 4h. J'ai essayé de chercher en m'appuyant sur le Festival ou le TP pour les olympiades, mais j'ai l'impression qu'ils sont tous géré en java.
Je cherche une solution en passant par le jython avec la fonction startQuestTimer(name, time, npc, player, repeating) mais le timer ne s'appliquera pas a d'autre personne essayant de se TP.
Quelqu'un a une solution?
Dernière édition par WeeD le 11/09/08, 07:59 pm, édité 2 fois | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 31/08/08, 04:27 pm | |
| Tu veux absolument le faire via le Jython ? | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 31/08/08, 04:31 pm | |
| Par mesure de faineantise oui J'ai pas encore commencé à modifier le java, je préfère éviter. Donc si c'est gérable par le jython je suis preneur, sinon tant pis je sortirais mon Becherel de java Mais plus j'y réfléchis plus je pense que c'est incontournable. Mais dans le doute je préfère avoir l'avis d'un peu tout le monde. PS: Si dans votre réponse vous me mettez une soluce java, ne perdez pas de temps a l'écrire j'ai pas encore ouvert une seul fois le java Donc je reviendrais a ce moment la si vraiment je trouve pas dans le java, mais pour l'heure nous parlons jython | |
|
| |
kit-and-kat
Nombre de messages : 25 Date d'inscription : 27/08/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 31/08/08, 04:32 pm | |
| Si je me trompe pas il y a aussi une sollution via 'SQL', c'est simple et sans passé par le Jython. | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 31/08/08, 04:33 pm | |
| Ah !!! Un truc auquel je n'avais pas pensé mais la va falloir expliquer un petit peu. Ou sinon me dire sur quoi je pourrais me baser Via la table quest global data? (qui stock les variables globales des quetes) | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 31/08/08, 05:46 pm | |
| Je n'ai pas regardé pour le Jython (en ce moment je suis plus sur le PHP), mais bon, tu peux sans doute créer deux fichiers Jython, un pour deux NPC différents.
L'un permettra le TP, l'autre non. Tu executes chacun des fichiers à tour de rôle toutes les quatres heures grâce à la table global_task de ta base de donnée.
Par exemple sur le premier fichier, tu as une commande pour delete le NPC qui ne TP pas, et qui spawn celui qui TP. Sur l'autre fichier tu as complétement l'inverse.
Après je ne sais pas si c'est possible de spawner et de delete des mobs via Jython (sûrement, je crois que des quêtes le font, mais je suis pas sûr) car je le fais via Java personnellement ^^'.
Après, ça reste du bidouillage, ce n'est pas "propre" comme technique ^^'. | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 31/08/08, 05:57 pm | |
| lol oki je vais voir ce que c'est que cette table ^^ sinon je pensais stocker des variables globales incrémentés jusqu'a 5h soit et verifier cette variable a chaque demande de TP. Le seul soucis c'est d'arriver a incrémenter la variable indépendamment du joueur. C'est peut-être Global task qui va m'aider | |
|
| |
Grimly
Nombre de messages : 601 Date d'inscription : 30/08/2007
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 31/08/08, 10:09 pm | |
| Moi j'ai toujours cru que le jython était du java dégénéré ou en plus il n'y a rien qui t'aide pour coder si ce n'est un éditeur de texte qui aime la couleur comme notepad++. | |
|
| |
Respawner
Nombre de messages : 1620 Age : 35 Date d'inscription : 20/04/2006
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 31/08/08, 10:31 pm | |
| - Grimly a écrit:
- Moi j'ai toujours cru que le jython était du java dégénéré ou en plus il n'y a rien qui t'aide pour coder si ce n'est un éditeur de texte qui aime la couleur comme notepad++.
PyDev sous Eclipse aide un peu. Jython c'est juste du Java sauce Python. Perso j'aime pas les compromis Soit on fait du vrai Python soit on fait du vrai Java voilà l'idée. Des développeurs ont l'air de partager mon avis vu que les AI passent en Java pur et dur. A quand les quêtes refaites en Java ? | |
|
| |
Grimly
Nombre de messages : 601 Date d'inscription : 30/08/2007
| |
| |
darksimonus
Nombre de messages : 732 Date d'inscription : 12/09/2007
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 01/09/08, 10:36 am | |
| | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 01/09/08, 10:55 am | |
| Merci pour le lien Dark. Cependant mon problème est tout autre. Faire un teleporter - ca va Faire un teleporteur avec un lvl mini - ca va Faire un teleporteur avec un lvl mini et une party full - ca va Gerer un timer global - la ca coince Je vais tenter ce soir un compteur qui incrémente une variable dans Quest_Global_Data (incrémenté via Quest_timer par la première personne à se TP) et je vérifierais cette valeur pour les autres qui voudront se TP. La où je ne sais pas comment ca va réagir, c'est si quelqu'un se deco, que devient le timer... Qu'en pensez vous? | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 01/09/08, 07:58 pm | |
| Bon je crois que j'ai trouvé(on me l'a soufflé^^) une version plus simplifiée de la chose Un bon Random Spawn et le tour est joué. Je fais spawn mon NPC pendant 10min et respawn toutes les 4h | |
|
| |
Divinity
Nombre de messages : 1282 Age : 35 Localisation : Yvelines Date d'inscription : 24/05/2006
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 01/09/08, 09:23 pm | |
| - Citation :
- Des développeurs ont l'air de partager mon avis vu que les AI passent en Java pur et dur. A quand les quêtes refaites en Java ?
+1 !! En plus je pense qu'on pourrait certainement faire plus de choses. | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 11/09/08, 07:59 pm | |
| Bonjour a tous je reviens avec un bug cette fois - Code:
-
import sys from com.l2jfree.gameserver.model.quest import State from com.l2jfree.gameserver.model.quest import QuestState from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
qn = "10000_instance_sacrifice"
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onAdvEvent (self,event,npc,player) : timer = st.getQuestTimer("instance_timer") if timer == None : player.teleToLocation(84285,148213,-3402) st.exitQuest(1) return else : return def onTalk (Self,npc,player): st = player.getQuestState(qn) level = player.getLevel() if level >= 20 : if level <= 39 : player.teleToLocation(-41560,210076,-5087) st.startQuestTimer("instance_timer",60000) return else : st.exitQuest(1) return "Tu n'as pas le bon level !" else : st.exitQuest(1) return "Tu n'as pas le bon level !"
QUEST = Quest(10000,qn,"Teleport_sacrifice")
QUEST.addStartNpc(100020)
QUEST.addTalkId(100020) Avec comme joli message d'erreur: - Code:
-
Line: -1 - Column: -1
Traceback (innermost last): (no code object) at line 0 SyntaxError: ('inconsistent dedent', ('__init__.py', 21, 2, ' def onTalk (Self,npc,player):')) Je cherche a faire retéléporter un joueur au bout de X temps. J'ai cru comprendre que pour gerer le timer il fallait passer par onAdvEvent. Quelqu'un voit d'où ca peut venir?? J'ai mis en gras la source potentiel de mon incompétence if timer == None : player.teleToLocation(84285,148213,-3402) st.exitQuest(1) return else : return | |
|
| |
thuvvik
Nombre de messages : 12 Date d'inscription : 01/01/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 11/09/08, 09:12 pm | |
| Le fait d'obtenir 'inconsistant dedent' risque fortement de notifier une erreur d'indentation http://www.python.org/doc/2.3.5/ref/indentation.htmlJe dirais qu'il manque un "espace" devant le "def onAdvEvent" qui devrait y être. Mouaip Jython l'est taquin, mais comme il n'existe pas de délimiteur de fin d'instruction (comme le ";" en java ou C#), il ne peut se baser que sur l'indentation pour déterminer quel élément joue quel role. En l'occurence "class" est au rang 0, niveau "espaces" et les "def" sont au rang 1 sauf celui de "onAdvEvent" qui se retrouve au rang0 (rang de classe ? ) Voila, d'abord corriger l'indentation et après voir s'il subsiste des anomalies. A noter aussi "une tabulation" et "un (ou plusieurs) espaces" ne sont pas considérés de la même façon. Dans le doute, NotePad++ et "afficher tout les caractères" Courage | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 11/09/08, 09:14 pm | |
| Ok merci je vais cheker j'ai bien du verifier tous les espaces mais pas celui la xD
Je n'utilise pas affichier tous les caractères sous notepad. Je crois que c'est indispensable avec cette *#$^@ de jython | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 11/09/08, 10:40 pm | |
| | |
|
| |
thuvvik
Nombre de messages : 12 Date d'inscription : 01/01/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 11/09/08, 11:15 pm | |
| Toujours la meme erreur aux memes lignes ? | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 11/09/08, 11:16 pm | |
| toujours ...
Traceback (innermost last): (no code object) at line 0 SyntaxError: ('inconsistent dedent', ('__init__.py', 21, 2, ' def onTalk (Self,npc,player):')) | |
|
| |
thuvvik
Nombre de messages : 12 Date d'inscription : 01/01/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 12/09/08, 01:00 am | |
| Supposition : Il n'aime peut être pas les blocs sans instructions (le else). - Code:
-
if timer == None : player.teleToLocation(84285,148213,-3402) st.exitQuest(1) return else : return
deviendrait - Code:
-
if timer == None : player.teleToLocation(84285,148213,-3402) st.exitQuest(1) return
| |
|
| |
Respawner
Nombre de messages : 1620 Age : 35 Date d'inscription : 20/04/2006
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 12/09/08, 01:15 am | |
| Essaies avec ça - Code:
-
import sys from com.l2jfree.gameserver.model.quest import State from com.l2jfree.gameserver.model.quest import QuestState from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
qn = "10000_instance_sacrifice"
class Quest (JQuest) :
def __init__(self,id,name,descr) : JQuest.__init__(self,id,name,descr)
def onAdvEvent(self,event,npc,player) : timer = st.getQuestTimer("instance_timer") if timer == None : player.teleToLocation(84285,148213,-3402) st.exitQuest(1) def onTalk(Self,npc,player) : st = player.getQuestState(qn) level = player.getLevel() if level >= 20 : if level <= 39 : player.teleToLocation(-41560,210076,-5087) st.startQuestTimer("instance_timer",60000) else : st.exitQuest(1) return "Tu n'as pas le bon level !" else : st.exitQuest(1) return "Tu n'as pas le bon level !"
QUEST = Quest(10000,qn,"Teleport_sacrifice")
QUEST.addStartNpc(100020) QUEST.addTalkId(100020) T'avais quelques trucs en trop dans le code. | |
|
| |
WeeD
Nombre de messages : 65 Age : 42 Localisation : Yvelines Date d'inscription : 15/06/2008
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... 12/09/08, 08:25 am | |
| Merci a vous pour la resolution du bug code. Maintenant je me fais jeter IG au bout de 1 min, j'obtiens ca : | |
|
| |
Contenu sponsorisé
| Sujet: Re: Aides pour Création Quest Teleport avec timer ... | |
| |
|
| |
| Aides pour Création Quest Teleport avec timer ... | |
|