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 | } |