SHOW:
|
|
- or go back to the newest paste.
1 | // Clavador Mar-2012 | |
2 | ||
3 | #if !defined MAX_BUFFER | |
4 | #define MAX_BUFFER 24 | |
5 | #endif | |
6 | ||
7 | #if !defined PLY_MX | |
8 | #define PLY_MX MAX_PLAYERS | |
9 | #endif | |
10 | ||
11 | ||
12 | #define PLAYERS_MAXIMUM GetMaxPlayers(); | |
13 | ||
14 | #define TextDraw_Grow(%1,%2,%3,%4,%5,%6,%7,%8) T_Stuff[%1][timer] = SetTimerEx("TextDrawGrow",1,true,"ddddddff",%1,%2,%3,%4,%7,%8); \ | |
15 | T_Stuff[%1][minimum] = %5; \ | |
16 | T_Stuff[%1][maximum] = %6 | |
17 | ||
18 | #define TextDraw_FadeIn(%1,%2,%3,%4,%5,%6) T_Stuff[%1][timer] = SetTimerEx("TextDrawFadeIn",%3,true,"ddddd",%1,%2,%4); \ | |
19 | T_Stuff[%1][minimum] = %5; \ | |
20 | T_Stuff[%1][maximum] = %6 | |
21 | ||
22 | #define TextDraw_Pulsate(%1,%2,%3,%4,%5,%6) T_Stuff[%1][timer] = SetTimerEx("TextDrawPulsate",%4,true,"dddd",%1,%2,%3); \ | |
23 | T_Stuff[%1][minimum] = %5; \ | |
24 | T_Stuff[%1][maximum] = %6 | |
25 | ||
26 | #define TextDraw_Hide(%1,%2,%3) T_Stuff[%1][minimum] = %2; \ | |
27 | T_Stuff[%1][maximum] = %3; \ | |
28 | HideDynamicTextDraws( %1 ) | |
29 | ||
30 | ||
31 | #define min_buffer T_Stuff[playerid][minimum] | |
32 | #define max_buffer T_Stuff[playerid][maximum] | |
33 | ||
34 | enum Stuff | |
35 | { | |
36 | timer, | |
37 | minimum, | |
38 | maximum, | |
39 | count, | |
40 | bool:show, | |
41 | Float:txt_x, | |
42 | Float:txt_y | |
43 | } | |
44 | ||
45 | new T_Stuff[PLY_MX][Stuff]; | |
46 | new Text:T_Buffer[MAX_BUFFER]; | |
47 | ||
48 | // THIS IS CALLED WHEN ANIMATION FINISHES | |
49 | forward OnAnimFinish( playerid, index ); | |
50 | ||
51 | forward TextDrawGrow( playerid, index, anim_speed, duration, Float:max_x, Float:max_y ); // GROWS FROM 0 TO X | |
52 | forward TextDrawFadeIn( playerid, index, duration ); // SHOWS FROM MIN TO MAX | |
53 | forward HideDynamicTextDraws( playerid ); // HIDES FROM MIN TO MAX | |
54 | forward TextDrawPulsate( playerid, index, repetitions ); // SHOWS AND HIDES FROM MIN TO MAX WITH X REPETITIONS | |
55 | ||
56 | public TextDrawGrow( playerid, index, anim_speed, duration, Float:max_x, Float:max_y ) | |
57 | { | |
58 | new i = min_buffer; | |
59 | ||
60 | if( T_Stuff[playerid][txt_x] < max_x ) T_Stuff[playerid][txt_x] += max_x / anim_speed; | |
61 | if( T_Stuff[playerid][txt_y] < max_y ) T_Stuff[playerid][txt_y] += max_y / anim_speed; | |
62 | ||
63 | while( i < max_buffer ) | |
64 | { | |
65 | TextDrawLetterSize( T_Buffer[i], T_Stuff[playerid][txt_x], T_Stuff[playerid][txt_y] ); | |
66 | TextDrawShowForPlayer( playerid, T_Buffer[i] ); | |
67 | i++; | |
68 | } | |
69 | ||
70 | if( T_Stuff[playerid][txt_x] >= max_x && T_Stuff[playerid][txt_y] >= max_y ) | |
71 | { | |
72 | T_Stuff[playerid][txt_x] = T_Stuff[playerid][txt_y] = 0; | |
73 | KillTimer( T_Stuff[playerid][timer] ); | |
74 | SetTimerEx("OnAnimFinish",duration,false,"dd",playerid,index); | |
75 | } | |
76 | ||
77 | return 1; | |
78 | } | |
79 | ||
80 | public TextDrawFadeIn( playerid, index, duration ) | |
81 | { | |
82 | if( min_buffer < max_buffer ) | |
83 | { | |
84 | TextDrawShowForPlayer( playerid, T_Buffer[min_buffer] ); | |
85 | printf( "min: %d", min_buffer ); | |
86 | min_buffer++; | |
87 | } | |
88 | else | |
89 | { | |
90 | KillTimer( T_Stuff[playerid][timer] ); | |
91 | SetTimerEx("OnAnimFinish",duration,false,"dd",playerid,index); | |
92 | } | |
93 | ||
94 | return 1; | |
95 | } | |
96 | ||
97 | public TextDrawPulsate( playerid, index, repetitions ) | |
98 | { | |
99 | new i = min_buffer; | |
100 | ||
101 | if( !T_Stuff[playerid][show] ) | |
102 | { | |
103 | - | while( i < max_buffer ) |
103 | + | if( i == max_buffer ) |
104 | { | |
105 | TextDrawShowForPlayer( playerid, T_Buffer[i] ); | |
106 | - | i++; |
106 | + | |
107 | else | |
108 | { | |
109 | while( i < max_buffer ) | |
110 | { | |
111 | TextDrawShowForPlayer( playerid, T_Buffer[i] ); | |
112 | i++; | |
113 | - | while( i < max_buffer ) |
113 | + | } |
114 | } | |
115 | - | TextDrawHideForPlayer( playerid, T_Buffer[i] ); |
115 | + | |
116 | - | i++; |
116 | + | |
117 | } | |
118 | else | |
119 | { | |
120 | if( i == max_buffer ) | |
121 | { | |
122 | TextDrawShowForPlayer( playerid, T_Buffer[i] ); | |
123 | } | |
124 | else | |
125 | { | |
126 | while( i < max_buffer ) | |
127 | { | |
128 | TextDrawShowForPlayer( playerid, T_Buffer[i] ); | |
129 | i++; | |
130 | } | |
131 | } | |
132 | ||
133 | T_Stuff[playerid][show] = false; | |
134 | } | |
135 | ||
136 | if( T_Stuff[playerid][count] > repetitions ) | |
137 | { | |
138 | T_Stuff[playerid][count] = 0; | |
139 | KillTimer( T_Stuff[playerid][timer] ); | |
140 | OnAnimFinish( playerid, index ); | |
141 | } | |
142 | else T_Stuff[playerid][count]++; | |
143 | ||
144 | return 1; | |
145 | } | |
146 | ||
147 | ||
148 | public HideDynamicTextDraws( playerid ) | |
149 | { | |
150 | if( max_buffer < 0 ) max_buffer = MAX_BUFFER; | |
151 | ||
152 | while( min_buffer < max_buffer ) | |
153 | { | |
154 | TextDrawHideForPlayer( playerid, T_Buffer[min_buffer] ); | |
155 | min_buffer++; | |
156 | } | |
157 | ||
158 | return 1; | |
159 | } | |
160 | ||
161 | stock StopTextDrawAnimations( playerid ) | |
162 | { | |
163 | T_Stuff[playerid][count] = 0; | |
164 | KillTimer( T_Stuff[playerid][timer] ); | |
165 | return 1; | |
166 | } |