View difference between Paste ID: TUYnj9qj and dBtzdbnk
SHOW: | | - or go back to the newest paste.
1
#include    <a_samp>
2
#include    <zcmd>
3
#include    <sscanf2>
4
5
6
#define     DIALOG_DASHCAMS (9999) // Mude o número em caso de conflito
7
8
9
new
10
    pViaturaCamera[ MAX_PLAYERS ],
11
    pInt[ MAX_PLAYERS ],
12
    pVW[ MAX_PLAYERS ],
13
    pListaDashcams[ MAX_PLAYERS ][ 11 ],
14
    Float:pPos[ MAX_PLAYERS ][ 4 ]
15
;
16
17
new
18
    PlayerText:dashcamdatahora,
19
    PlayerText:dashcamcamera
20
;
21
22
public OnFilterScriptInit()
23
{
24
    print( "\n\n\n" );
25
    print( "*****************************************************" );
26
    print( "*                                                   *" );
27
    print( "* FS de dashcam nas viaturas. Por: Rodney Francalim *" );
28
    print( "*                                                   *" );
29
    print( "*     [[[ Não remova os créditos, obrigado. ]]]     *" );
30
    print( "*                                                   *" );
31
    print( "*****************************************************" );
32
    print( "\n\n\n" );
33
34
    SetTimer( "TempoServidor", 1000, true );
35
36
    return 1;
37
}
38
39
public OnFilterScriptExit()
40
{
41
	return 1;
42
}
43
44
public OnPlayerRequestClass( playerid, classid )
45
{
46
	return 1;
47
}
48
49
public OnPlayerConnect( playerid )
50
{
51
    pViaturaCamera[ playerid ] = 0;
52
    pListaDashcams[ playerid ][ 10 ] = 1;
53
54
    dashcamdatahora = CreatePlayerTextDraw( playerid, 40.000000, 350.000000, "" );
55
    PlayerTextDrawBackgroundColor( playerid, dashcamdatahora, 255 );
56
    PlayerTextDrawFont( playerid, dashcamdatahora, 2 );
57
    PlayerTextDrawLetterSize( playerid,dashcamdatahora, 1.000000, 4.000000 );
58
    PlayerTextDrawColor( playerid, dashcamdatahora, -86 );
59
    PlayerTextDrawSetOutline( playerid, dashcamdatahora, 1 );
60
    PlayerTextDrawSetProportional( playerid, dashcamdatahora, 1 );
61
    PlayerTextDrawSetSelectable( playerid, dashcamdatahora, 0 );
62
63
    dashcamcamera = CreatePlayerTextDraw( playerid, 600.000000, 350.000000, "" );
64
    PlayerTextDrawAlignment( playerid, dashcamcamera, 3 );
65
    PlayerTextDrawBackgroundColor( playerid, dashcamcamera, 255 );
66
    PlayerTextDrawFont( playerid, dashcamcamera, 2 );
67
    PlayerTextDrawLetterSize( playerid, dashcamcamera, 1.000000, 4.000000 );
68
    PlayerTextDrawColor( playerid, dashcamcamera, -86 );
69
    PlayerTextDrawSetOutline( playerid, dashcamcamera, 1 );
70
    PlayerTextDrawSetProportional( playerid, dashcamcamera, 1 );
71
    PlayerTextDrawSetSelectable( playerid, dashcamcamera, 0 );
72
73
    PlayerTextDrawHide( playerid, dashcamdatahora );
74
    PlayerTextDrawHide( playerid, dashcamcamera );
75
76
    return 1;
77
}
78
79
public OnPlayerDisconnect( playerid, reason )
80
{
81
    if( pViaturaCamera[ playerid ] > 0 )
82
        DestroyObject( pViaturaCamera[ playerid ]);
83
84
	return 1;
85
}
86
87
public OnPlayerSpawn( playerid )
88
{
89-
    SendClientMessage( playerid, -1, "Este servidor usa o {FF0000}FS {000000}'{FFFFFF}viaturas com dashcam{000000}' {FF8040}v0.2a{FFFFFF}. Por: {0000FF}Rodney Francalim" );
89+
    SendClientMessage( playerid, -1, "Este servidor usa o {FF0000}FS {000000}'{FFFFFF}viaturas com dashcam{000000}' {FF8040}v0.2b{FFFFFF}. Por: {0000FF}Rodney Francalim" );
90
91
	return 1;
92
}
93
94
CMD:sv( playerid ) return cmd_specviatura( playerid );
95
CMD:specviatura( playerid )
96
{
97
    new
98
        str[ 150 ],
99
        strd[ 12 ],
100
        celula = -1
101
    ;
102
103
    for( new i = pListaDashcams[ playerid ][ 10 ]; i <= MAX_VEHICLES; ++i )
104
    {
105
        if( EUmaViatura( i ))
106
        {
107
            pListaDashcams[ playerid ][ ++celula ] = i;
108
            if( celula >= 10 )
109
            {
110
                strcat( str, "Próxima >>" );
111
                break;
112
            }
113
            else
114
            {
115
                format( strd, sizeof( strd ), "CAM %d\n", i );
116
                strcat( str, strd );
117
            }
118
        }
119
    }
120
    ShowPlayerDialog( playerid, DIALOG_DASHCAMS, DIALOG_STYLE_LIST, "Sistema de dashcams", str, "Escolher", "Deslogar" );
121
    return 1;
122
}
123
124
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
125
{
126
    switch( dialogid )
127
    {
128
        case DIALOG_DASHCAMS:
129
        {
130
            if( response )
131
            {
132
                switch( listitem )
133
                {
134
                    case 0 .. 9:
135
                    {
136
                        new
137
                            str[ 64 ],
138
                            Float:vAng,
139
                            vVW,
140
                            vehicleid = pListaDashcams[ playerid ][ listitem ]
141
                        ;
142
143
                        pListaDashcams[ playerid ][ 10 ] = pListaDashcams[ playerid ][ 0 ];
144
145
                        if( pViaturaCamera[ playerid ] != 0 )
146
                            DestroyObject( pViaturaCamera[ playerid ]);
147
                        else
148
                        {
149
                            SendClientMessage( playerid, -1, "CENTRAL: Logando no sistema, aguarde..." );
150
                            TogglePlayerSpectating( playerid, true );
151
                            GetPlayerPos( playerid, pPos[ playerid ][ 0 ], pPos[ playerid ][ 1 ], pPos[ playerid ][ 2 ]);
152
                            GetPlayerFacingAngle( playerid, pPos[ playerid ][ 3 ]);
153
                            pInt[ playerid ] = GetPlayerInterior( playerid );
154
                            pVW[ playerid ] = GetPlayerVirtualWorld( playerid );
155
                        }
156
157
                        GetVehicleZAngle( vehicleid, vAng );
158
                        vVW = GetVehicleVirtualWorld( vehicleid );
159
                        SetPlayerFacingAngle( playerid, vAng );
160
                        SetPlayerVirtualWorld( playerid, vVW );
161
                        SetCameraBehindPlayer( playerid );
162
163
                        PlayerSpectateVehicle( playerid, vehicleid );
164
                        pViaturaCamera[ playerid ] = CreateObject( 19300, 0, 0, 0, 0, 0, 0 );
165
                        DashCamPos( pViaturaCamera[ playerid ], vehicleid );
166
                        AttachCameraToObject( playerid, pViaturaCamera[ playerid ]);
167
168
                        format( str, sizeof( str ), "CAM %d", vehicleid );
169
                        PlayerTextDrawSetString( playerid, dashcamcamera, str );
170
                        PlayerTextDrawShow( playerid, dashcamcamera );
171
                    }
172
                    case 10:
173
                    {
174
                        cmd_sv( playerid );
175
                    }
176
                }
177
            }
178
            else
179
            {
180
                pListaDashcams[ playerid ][ 10 ] = 1;
181
182
                if( pViaturaCamera[ playerid ] != 0 )
183
                {
184
                    TogglePlayerSpectating( playerid, false );
185
                    DestroyObject( pViaturaCamera[ playerid ]);
186
                    pViaturaCamera[ playerid ] = 0;
187
188
                    SetPlayerPos( playerid, pPos[ playerid ][ 0 ], pPos[ playerid ][ 1 ], pPos[ playerid ][ 2 ]);
189
                    SetPlayerFacingAngle( playerid, pPos[ playerid ][ 3 ]);
190
                    SetPlayerInterior( playerid, pInt[ playerid ]);
191
                    SetPlayerVirtualWorld( playerid, pVW[ playerid ]);
192
                    SetCameraBehindPlayer( playerid );
193
194
                    PlayerTextDrawHide( playerid, dashcamdatahora );
195
                    PlayerTextDrawHide( playerid, dashcamcamera );
196
197
                    SendClientMessage( playerid, -1, "CENTRAL: Você deslogou do sistema de câmeras." );
198
                }
199
                else
200
                    SendClientMessage( playerid, 0xFF0000AA, "CENTRAL: Você não estava logado no sistema de câmeras." );
201
            }
202
        }
203
    }
204
}
205
206
stock DashCamPos( objectid, vehicleid )
207
{
208
    if( GetVehicleModel( vehicleid ) == 427 )
209
        return AttachObjectToVehicle( objectid, vehicleid, 0, 1.65, 0.9, 0, 0, 0 );
210
    else if( GetVehicleModel( vehicleid ) == 490 )
211
        return AttachObjectToVehicle( objectid, vehicleid, 0, 1.3, 0.7, 0, 0, 0 );
212
    else if( GetVehicleModel( vehicleid ) == 596 || GetVehicleModel( vehicleid ) == 597 || GetVehicleModel( vehicleid ) == 598 )
213
        return AttachObjectToVehicle( objectid, vehicleid, 0, 1, 0.5, 0, 0, 0 );
214
    else if( GetVehicleModel( vehicleid ) == 599 )
215
        return AttachObjectToVehicle( objectid, vehicleid, 0, 0.85, 0.75, 0, 0, 0 );
216
    else
217
        return AttachObjectToVehicle( objectid, vehicleid, 0, 0, 0, 0, 0, 0 );
218
}
219
220
stock EUmaViatura( vehicleid )
221
{
222
    if( GetVehicleModel( vehicleid ) == 427 || GetVehicleModel( vehicleid ) == 490 || GetVehicleModel( vehicleid ) == 596 ||
223
        GetVehicleModel( vehicleid ) == 597 || GetVehicleModel( vehicleid ) == 598 || GetVehicleModel( vehicleid ) == 599 )
224
        return true;
225
226
    return false;
227
}
228
229
forward TempoServidor();
230
public TempoServidor()
231
{
232
    new
233
        t[ 6 ],
234
        str[ 32 ]
235
    ;
236
237
    gettime( t[ 3 ], t[ 4 ], t[ 5 ]);
238
    getdate( t[ 2 ], t[ 1 ], t[ 0 ]);
239
240
    format( str, sizeof( str ), "%02d/%02d/%d~n~%02d:%02d %s", t[ 1 ], t[ 0 ], t[ 2 ], t[ 3 ], t[ 4 ], t[ 3 ] >= 12 ? ( "PM" ) : ( "AM" ));
241
    for( new p = 0; p < MAX_PLAYERS; ++p )
242
    {
243
        if( pViaturaCamera[ p ] != 0 )
244
        {
245
            PlayerTextDrawSetString( p, dashcamdatahora, str );
246
            PlayerTextDrawShow( p, dashcamdatahora );
247
        }
248
    }
249
250
    return 1;
251
}