LawrenceKnight Posted October 10, 2014 Share Posted October 10, 2014 Bonjour/Bonsoir, Cette fois-ci j'ai un nouveau soucis... (Je précise tout de même que je n'utilise plus le gamemode "Play" mais celui-i: https://community.multitheftauto.com/ind ... ls&id=8280 qui fonctionne très bien.) Depuis le début je faisait ma map avec ce gamemode, tout aller bien mais là maintenant j'ai le soucis de ne plus pouvoir utiliser les pickups qui permettent d'avoir un gilet pare-balle ou encore de la vie, mon personnage passe à travers mais rien ne se passe, et je ne sais pas d'ou vient le problème. J'ai récemment fait l'idiot d'enlever certaines ressource comme votemanager/helpmanager et mapcycler, mais pourtant je les ai remis, même réinstaller le jeu (en concervant l'ACL et le mta.config ainsi que mes ressources depuis le début qui n'ont jamais causer de problème en ce qui concerne les pickups) mais pourtant rien ne change donc le problème ne devraient pas devenir de ces ressources. Pourriez vous m'aider s'il vous plait? Link to comment
LawrenceKnight Posted October 10, 2014 Author Share Posted October 10, 2014 celui-ci*, pardons Link to comment
LawrenceKnight Posted October 10, 2014 Author Share Posted October 10, 2014 Bon, petite bonne nouvelle, j'ai trouver la ressource qui pose problème, il s'agit d'une ressource qui affiches des info en haut à gauche de l'écran lorsque le joueurs marche sur le pickup "i" de couleur jaune. (le pickup d'information en gros ^^) Mais si j'active cette ressource, les pickups placé sur la map via l'éditeur de map ne fonctionne pas :-/ Donc j'aimerais que ces pickups qui donne de la vie/pare balle/armes et autres qui vienne de l'editeur fonctionne tout autant que cette ressource: https://community.multitheftauto.com/ind ... ls&id=3849 Merci Link to comment
Moderators Citizen Posted October 10, 2014 Moderators Share Posted October 10, 2014 Si tu avais ouvert le code de cette petite et simple ressource, tu aurais pu/dû trouver la fonction appelé lorsque quelqu'un ou quelque chose va sur le pickup: addEventHandler("onPickupHit",getRootElement(), function (thePlayer) if (matchDimensionInterior(thePlayer, source)) then -- if the pickup and the player are in the same dimension, so you can make in different dimensions if (getElementData(source,"isItInfoPickup") == 1) then -- if the pickup it's really a pickup local text = getElementData(source,"text") ... outputSpace(thePlayer) end cancelEvent() end end ) Tu peux voir un appel à la fonction cancelEvent qui permet de dire "l'event à été traité et ne doit donc plus être propagé". Un rappel sur les event: On peut ajouter une fonction à exécuter lorsque un event se produit grâce à la fonction <strong>addEventHandler</strong>. La fonction est donc un handler de l’événement spécifié. Toutes les ressources peuvent ajouter des handlers sur n'importe quel événement et tous les handlers pour chaque événement sont stockés par le serveur au moment de l’exécution dans un ordre non spécifique. Lorsque l'event (onPlayerPickupHit) est déclenché, le serveur appel tous les handlers de cet event dans l'ordre dans lequel ils sont arrivés. Imaginons cet liste d'handler pour onPlayerPickupHit: 1 - handler1 resource race 2 - handler2 resource race 3 - handler resource infopickups 4 - handler1 resource spawn-teams 5 - handler2 resource spawn-teams ... Le serveur va donc appelé le 1 (il fait sont bazar) puis le 2 (il fait aussi son bazar) puis il arrive au 3, il va aussi faire son bazar MAIS! Si le pickup est dans la même dimension et dans le même intérieur que le joueur alors il y aura forcément un appel à cancelEvent et la le serveur s'arrêtera de propager l'event (= de continuer d'appeler les handlers). J'ai essayé de comprendre pourquoi le développeur à mit ce cancelEvent mais je ne vois absolument pas (en tout cas pas dans ce if). Par contre si le cancelEvent était dans le second if if (getElementData(source,"isItInfoPickup") == 1) then ... cancelEvent() end Ça ne bloquerai pas les pickups des autres ressources et ça empêcherai certaines ressources (tout dépends de l'ordre) d'être au courant qu'un joueur (ou qqchose) est entré dans un pickup. Mais ça reste toujours débile/inutile. Solution: Supprimer le cancelEvent() ligne 64, sauvegarder et relancer la ressource. Et oui c'est tout ce qu'il y avait à faire. Cordialement, Citizen PS: Évite les double posts (t'as fait un joli triple là), surtout si c'est pour corrigé une faute, il y a le bouton pour éditer en haut à droite Link to comment
LawrenceKnight Posted October 10, 2014 Author Share Posted October 10, 2014 Problème bel et bien résolu, merci beaucoup. Néanmoins ce n'était pas la ligne 64 pour ma part. ^^ En ce qui concerne l'Edit, oui j'essairais de faire un peu plus gaffe mais je n'arrive pas à bien géré ce forum. :-/ Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now