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