bandi94 Posted August 7, 2013 Posted August 7, 2013 So i am making a list , data's are stored in a table . Now i use "for.... in pairs() do " and GuiLabel's (not the MTA one's , custom one from my own dxGui) , and i wanna to make a delay of 100ms between row's. Ex. draw the first line , wait 100ms , draw secound line , wait 100ms , ......... Now i made a simpel loop delay using , "while do" and "getTickCount" , but there is a problem , i have 30 line's so there is 30*100ms = 3s , when i press the button the game freez for 3s and after show's all the 30 line's. Is there any way to delay the "in pairs" with table ?? Ingame Name : |DGT|Puma DGT Clan Server 24/7 Owner/Scripter MultiGameMode in progress :
Moderators IIYAMA Posted August 7, 2013 Moderators Posted August 7, 2013 You can also choose for onClientRender or onClientPreRender. Then you simply use your own index without a loop. Do you want to improve your Lua programming skills and make less mistakes? Start with Lua Language Server! Useful functions 3x Spoiler checkPassiveTimer getScreenStartPositionFromBox getPedGender Tutorials 4x Spoiler Scaling DX Events Attach an addEventHandler on a group of elements Debugging
Vector2 Posted August 7, 2013 Posted August 7, 2013 local your_table = {}; -- this will be your table in which yor data is stored. local label_to_render; -- this will hold the label to be rendered. -- I suppose you have a function, like draw_label, that draws a label... -- for example... function draw_label (theLabel) ... end; addEventHandler ("onClientRender", getRootElement(), function () -- draw the selected label. draw_label (label_to_render); end); local next_index = next(your_table); label_to_render = your_table [next_index]; setTimer ( -- this timer will change the selected label every 100ms function () next_index = next(your_table,next_index); label_to_render = your_table[next_index]; end, 100, 1); there are two kinds of people: those who know C++ and those who don´t. .)
csiguusz Posted August 7, 2013 Posted August 7, 2013 @IIYAMA, Vector: I think he should change his gui system to make it possible. There is a way to actually make a delay inside a loop. Here is my simple example: local a = { 1, 2, 3, 4 } local c = coroutine.create ( function () for i, v in ipairs ( a ) do outputChatBox ( v ) coroutine.yield () end end ) setTimer ( function () coroutine.resume ( c ) end , 100, 4 ) Owner of [HUN]Magyar Play Szerver 1.4, IP: 31.220.43.153:22003
bandi94 Posted August 8, 2013 Author Posted August 8, 2013 @ Vector , i wanna to draw them with a 100ms delay , but not one by one (at the end i wanna see all the 30 line's). And my custom label has his own drawing function so i only call a creating function with export after that he is drawed by his own function. (Like export........CreateDxLabel(bla,bla) after that he is auto drawed until it's destroyed or set to false the visible value.) @csiguusz , thx very much your way it's just working great with my custom label's Off topic (En is tudok maggyarul ) Ingame Name : |DGT|Puma DGT Clan Server 24/7 Owner/Scripter MultiGameMode in progress :
csiguusz Posted August 8, 2013 Posted August 8, 2013 You are welcome. Tudok róla Owner of [HUN]Magyar Play Szerver 1.4, IP: 31.220.43.153:22003
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