Valentin3526 Posted October 7, 2015 Share Posted October 7, 2015 (edited) Ce coup-ci, l'erreur est minime, je me suis inspiré des "useful functions" du wiki pour créer mes propres "dxDrawLoading" Tout marche à merveille si la fonction que j'execute est interne à ma resource mais lorsque j'utilise les fonction "call" (pour ma part je l'utilise sous le format "exports.resource:fonction(args)" L'erreur et que lorsque le chargement s'affiche il est directement à 100% et donc, ne part pas de 0% Donc, je me demandais ou était l'erreur, j'envoie les codes. Voici la fonction qui marche très bien en interne local start = getTickCount() function dxDrawLoading(x, y, width, height, x2, y2, size, color, color2, color3, loadText, second, police) local now = getTickCount() local seconds = second local with = interpolateBetween(0,0,0,width,0,0, (now - start) / ((start + tonumber(seconds)) - start), "Linear") local text = interpolateBetween(0,0,0,100,0,0,(now - start) / ((start + tonumber(seconds)) - start),"Linear") dxDrawText ( loadText.."... "..math.floor(text).."%", x2, y2+1 , width, height, color3, size, police ) dxDrawRectangle(x, y ,width ,height -10, color) dxDrawRectangle(x, y, with ,height -10, color2) end Voici l'un mes exports: local start = getTickCount() sx ,sy = guiGetScreenSize() function drawLoad2() local saTeam = getPlayerTeam(getLocalPlayer()) local r, g, b = getTeamColor(saTeam) local now = getTickCount() exports["Scripts"]:dxDrawLoading(196*sx/800, 482*sy/600, 422*sx/800, 25*sy/600, 196*sx/800, 450*sy/600, 1.00*sx/800, tocolor(0,0,0,120), tocolor(r,g,b,255), tocolor(r,g,b,255), "Démarrage", 7000, "pricedown") if now > start + 7000 then start = getTickCount() end end Au passage, voici la fonction qui est interne à la resource (celui-ci utilise ma seconde fonction mais les scripts sont identiques à la différence que celui-ci utilise des images): sx ,sy = guiGetScreenSize() function theBarMotor1() local now = getTickCount() dxDrawLoadingImage(196*sx/800, 482*sy/600, 422*sx/800, 25*sy/600, 196*sx/800, 450*sy/600, 1.00*sx/800, "images/fond.png", "images/plein.png", tocolor(255,255,255,255), "Démarrage", 1000, "bankgothic", _, tocolor(255, 255, 255, 255), false, false) if now > start + 1000 then start = getTickCount() end end addEvent("barMotor1", true) addEventHandler("barMotor1", getRootElement(), theBarMotor1) Edited October 14, 2015 by Guest Link to comment
Valentin3526 Posted October 11, 2015 Author Share Posted October 11, 2015 Pas de solutions ? Toujours rien de mon côté, j'ai beau chercher... Link to comment
Moderators Citizen Posted October 15, 2015 Moderators Share Posted October 15, 2015 Désolé du retard de ma réponse. Je vois que tu as passé ton titre de topic en Résolu est-ce bien le cas ? Le problème était la réinitialisation de la variable start qui est seulement accessible à l'endroit où elle à été créée. Faire un start = getTickCount() va donc fonctionner que si c'est fait en "interne" comme tu dis. Le faire dans une autre ressource ne va pas modifier le start de la bonne ressource et va juste créer une nouvelle variable start de son côté mais qui n'est pas utilisée. Le plus simple était donc de créer une nouvelle fonction exportée qui va se charger de faire le start = getTickCount() en interne et que tu appelleras à chaque fois que tu veux remettre le loading à 0%. Link to comment
Valentin3526 Posted October 16, 2015 Author Share Posted October 16, 2015 Désolé du retard de ma réponse.Je vois que tu as passé ton titre de topic en Résolu est-ce bien le cas ? Le problème était la réinitialisation de la variable start qui est seulement accessible à l'endroit où elle à été créée. Faire un start = getTickCount() va donc fonctionner que si c'est fait en "interne" comme tu dis. Le faire dans une autre ressource ne va pas modifier le start de la bonne ressource et va juste créer une nouvelle variable start de son côté mais qui n'est pas utilisée. Le plus simple était donc de créer une nouvelle fonction exportée qui va se charger de faire le start = getTickCount() en interne et que tu appelleras à chaque fois que tu veux remettre le loading à 0%. C'est bie ce que j'ai fait pour résoudre le problème, avant ça sur le forum anglais on avait tenté de faire et refaire le script de plusieurs façons sans succès. Link to comment
Moderators Citizen Posted October 17, 2015 Moderators Share Posted October 17, 2015 Ouai j'étais également en train de le refaire de façon propre mais j'ai ensuite vu que tu avais résolu le problème. On triche un peu en faisant comme ça mais si ça te va comme ça ... 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