Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- iScreenFader 1.2
- pabaigta 2012m. Birželio 14d. 10:47
- Autorius: InstincT
- Keisti kreditus draudžiama! Pakeitęs kreditus autoriumi netapsi!
- funkcijos
- FadeScreenForPlayer( playerid, mode, color = 0x0FF )
- playerid - žaidėjo ID
- mode - užtemdymo rėžimas. Jų yra du tipai:
- FADE_IN - užtemdyti(po truputį padaryti ekraną juodą)
- FADE_OUT - atitemdyti(po truputį padaryti ekraną matomą)
- **color - spalva
- FadePlayerPos( playerid, color = 0x0FF, Float:fsPosX, Float:fsPosY, Float:fsPosZ, Float:fsPosA = -1.0, fsInt = -1, fsVW = -1, fsClearAnims = false )
- playerid - žaidėjo ID
- **color - spalva
- fsPosX - koordinatė X
- fsPosY - koordinatė Y
- fsPosZ - koordinatė Z
- **fsPosA - pasisukimo laipsniai
- **fsInt - interioras
- **fsVW - virtual worldas
- **fsClearAnims - ar užtamsinus ekraną įvykdyti funkciją ClearAnimations
- **fsCamera - ar užtamsinus ekraną įvykdyti funkciją SetCameraBehindPlayer
- FadeSkinForPlayer( playerid, skinID, color = 0x0FF )
- playerid - žaidėjo ID
- skinID - skino ID
- **color - spalva
- iScreenFader_Kokybe( id );
- id - kokybės ID. Galimi du variantai:
- FADE_KOKYBE_GERA - gera kokybė, timer'io intervalas yra 20, fsSteps kintamojo mažinimas 4
- FADE_KOKYBE_BLOGA - vidutiniška kokybė, timer'io intervalas 100, fsSteps kintamojo mažinimas 20
- ** - PARAMETRAS NEBŪTINAS! Norint jį praleisti funkcijos kvietime, vietoj parametro rašykit _
- callbackai
- OnFadeComplete( playerid, mode, color )
- playerid - žaidėjo ID
- mode - užtemdymo rėžimas
- color - užtemdyta/atitemdyta spalva
- changelogas
- 2012m. Birželio 12d.:
- - išleista
- 2012m. Birželio 13d.:
- - padaryti pranešimai bei vykdymo nutraukimai, kurių dėka bus išvengiamas netaisyklingas funkcijų naudojimas,
- - naudojami PlayerTextDraw'ai vietoje globalių TextDraw'ų,
- - viskas turėtų veikti dvigubai greičiau, pakeistas timer'io intervalas iš 5 į 10, taip pat kintamasis fsSteps mažinamas dviem vienetais
- - naujos funkcijos:
- FadePlayerPos, FadePlayerSkin
- 2012m. Birželio 14d.:
- - pridėta galimybė kontroliuoti spalvas visose funkcijose. Parametras nėra būtinas, spalva pagal nutylėjimą - juoda(0x0FF).
- - OnFadeComplete callback'ui pridėtas spalvos parametras
- - viskas turėtų veikti dar dvigubai greičiau, pakeistas timer'io intervalas iš 5 į 10, taip pat kintamasis fsSteps mažinamas keturiais vienetais
- - funkcijai FadePlayerPos pridėta galimybė užtamsinus ekraną įvykdyti funkciją SetCameraBehindPlayer bei ClearAnimations
- - ištaisyta klaida, dėl kurios galėjo neatitemdyti ekrano.
- - naujos funkcijos:
- iScreenFader_Kokybe - pakeisti užtemdymo/atitemdymo kokybę.
- */
- #define FADE_IN 1
- #define FADE_OUT 2
- forward OnFadeComplete( playerid, mode, color );
- enum fadeScreenEnumas
- {
- fsTD_sukurtas,
- PlayerText:fsTextDraw,
- fsTimer,
- fsSteps,
- fsMode,
- fsColor,
- Float:fsPos[ 4 ],
- fsInterior,
- fsVirtualWorld,
- fsSkin,
- fsClearAnimations,
- fsCameraBehindPlayer
- }
- #define FADE_KOKYBE_GERA 1
- #define FADE_KOKYBE_BLOGA 2
- new
- fadeScreen[ MAX_PLAYERS ][ fadeScreenEnumas ],
- fadeKokybe_intervalas = 20,
- fadeKokybe_mazinimas = 4
- ;
- stock iScreenFader_Kokybe( id )
- {
- if( id != FADE_KOKYBE_GERA && id != FADE_KOKYBE_BLOGA ) return print( "KLAIDA iScreenFader naudojime! iScreenFader_Kokybe funkcijoje naudjama netinkama reikšmė." );
- if( id == FADE_KOKYBE_GERA )
- {
- fadeKokybe_intervalas = 20;
- fadeKokybe_mazinimas = 4;
- }
- else
- {
- fadeKokybe_intervalas = 100;
- fadeKokybe_mazinimas = 20;
- }
- return 1;
- }
- stock FadeScreenForPlayer( playerid, mode, color = 0x0FF )
- {
- if( mode != FADE_IN && mode != FADE_OUT ) return print( "KLAIDA iScreenFader naudojime! FadeScreenForPlayer žaidėjui %d mode buvo netinkamas." );
- if( fadeScreen[ playerid ][ fsSteps ] > 0 ) return print( "KLAIDA iScreenFader naudojime! FadeScreenForPlayer funkcijoje žaidėjas %d jau naudoja ekrano tamsinimą." );
- fadeScreen[ playerid ][ fsSteps ] = 255;
- fadeScreen[ playerid ][ fsMode ] = mode;
- fadeScreen[ playerid ][ fsColor ] = color;
- fadeScreen[ playerid ][ fsTimer ] = SetTimerEx( "FadeScreen", fadeKokybe_intervalas, true, "d", playerid );
- return 1;
- }
- stock FadePlayerPos( playerid, color = 0x0FF, Float:fsPosX, Float:fsPosY, Float:fsPosZ, Float:fsPosA = -1.0, fsInt = -1, fsVW = -1, fsClearAnims = true, fsCamera = false )
- {
- if( fadeScreen[ playerid ][ fsSteps ] > 0 ) return print( "KLAIDA iScreenFader naudojime! FadePlayerPos funkcijoje žaidėjas %d jau naudoja ekrano tamsinimą." );
- fadeScreen[ playerid ][ fsSteps ] = 255;
- fadeScreen[ playerid ][ fsMode ] = FADE_IN;
- fadeScreen[ playerid ][ fsColor ] = color;
- fadeScreen[ playerid ][ fsPos ][ 0 ] = fsPosX;
- fadeScreen[ playerid ][ fsPos ][ 1 ] = fsPosY;
- fadeScreen[ playerid ][ fsPos ][ 2 ] = fsPosZ;
- fadeScreen[ playerid ][ fsPos ][ 3 ] = fsPosA;
- fadeScreen[ playerid ][ fsInterior ] = fsInt;
- fadeScreen[ playerid ][ fsVirtualWorld ] = fsVW;
- fadeScreen[ playerid ][ fsClearAnimations ] = fsClearAnims;
- fadeScreen[ playerid ][ fsCameraBehindPlayer ] = fsCamera;
- fadeScreen[ playerid ][ fsTimer ] = SetTimerEx( "FadeScreen", fadeKokybe_intervalas, true, "d", playerid );
- return 1;
- }
- stock FadePlayerSkin( playerid, skinID, color = 0x0FF )
- {
- if( fadeScreen[ playerid ][ fsSteps ] > 0 ) return print( "KLAIDA iScreenFader naudojime! FadePlayerSkin funkcijoje žaidėjas %d jau naudoja ekrano tamsinimą." );
- fadeScreen[ playerid ][ fsSteps ] = 255;
- fadeScreen[ playerid ][ fsMode ] = FADE_IN;
- fadeScreen[ playerid ][ fsColor ] = color;
- fadeScreen[ playerid ][ fsSkin ] = skinID + 1;
- fadeScreen[ playerid ][ fsTimer ] = SetTimerEx( "FadeScreen", fadeKokybe_intervalas, true, "d", playerid );
- return 1;
- }
- forward FadeScreen( playerid );
- public FadeScreen( playerid )
- {
- if( !fadeScreen[ playerid ][ fsTD_sukurtas ] )
- {
- fadeScreen[ playerid ][ fsTextDraw ] = CreatePlayerTextDraw( playerid, -159.000000, -288.000000, "iScreenFader by InstincT" );
- PlayerTextDrawBackgroundColor( playerid, fadeScreen[ playerid ][ fsTextDraw ], 255 );
- PlayerTextDrawFont( playerid, fadeScreen[ playerid ][ fsTextDraw ], 0 );
- PlayerTextDrawLetterSize( playerid, fadeScreen[ playerid ][ fsTextDraw ], 0.270000, 88.999687 );
- PlayerTextDrawColor( playerid, fadeScreen[ playerid ][ fsTextDraw ], -1 );
- PlayerTextDrawSetOutline( playerid, fadeScreen[ playerid ][ fsTextDraw ], 0 );
- PlayerTextDrawSetProportional( playerid, fadeScreen[ playerid ][ fsTextDraw ], 1 );
- PlayerTextDrawSetShadow( playerid, fadeScreen[ playerid ][ fsTextDraw ], 1 );
- PlayerTextDrawUseBox( playerid, fadeScreen[ playerid ][ fsTextDraw ], 1 );
- PlayerTextDrawBoxColor( playerid, fadeScreen[ playerid ][ fsTextDraw ], 255 );
- PlayerTextDrawTextSize( playerid, fadeScreen[ playerid ][ fsTextDraw ], 848.000000, 2.000000 );
- fadeScreen[ playerid ][ fsTD_sukurtas ] = true;
- }
- PlayerTextDrawBoxColor( playerid, fadeScreen[ playerid ][ fsTextDraw ],
- GetFadeColor( fadeScreen[ playerid ][ fsSteps ], fadeScreen[ playerid ][ fsMode ], fadeScreen[ playerid ][ fsColor ] ) );
- PlayerTextDrawShow( playerid, fadeScreen[ playerid ][ fsTextDraw ] );
- fadeScreen[ playerid ][ fsSteps ] -= fadeKokybe_mazinimas;
- if( fadeScreen[ playerid ][ fsSteps ] <= 0 )
- {
- KillTimer( fadeScreen[ playerid ][ fsTimer ] );
- if( fadeScreen[ playerid ][ fsMode ] == FADE_OUT )
- {
- PlayerTextDrawHide( playerid, fadeScreen[ playerid ][ fsTextDraw ] );
- }
- else
- {
- if( fadeScreen[ playerid ][ fsPos ][ 0 ] != 0.0 && fadeScreen[ playerid ][ fsPos ][ 1 ] != -1.0 && fadeScreen[ playerid ][ fsPos ][ 2 ] != -1.0 )
- {
- SetPlayerPos( playerid, fadeScreen[ playerid ][ fsPos ][ 0 ], fadeScreen[ playerid ][ fsPos ][ 1 ], fadeScreen[ playerid ][ fsPos ][ 2 ] );
- if( fadeScreen[ playerid ][ fsPos ][ 3 ] != 0.0 ) SetPlayerFacingAngle( playerid, fadeScreen[ playerid ][ fsPos ][ 3 ] );
- if( fadeScreen[ playerid ][ fsInterior ] != -1.0 ) SetPlayerInterior( playerid, fadeScreen[ playerid ][ fsInterior ] );
- if( fadeScreen[ playerid ][ fsVirtualWorld ] != -1.0 ) SetPlayerVirtualWorld( playerid, fadeScreen[ playerid ][ fsVirtualWorld ] );
- FadeScreenForPlayer( playerid, FADE_OUT, fadeScreen[ playerid ][ fsColor ] );
- }
- if( fadeScreen[ playerid ][ fsSkin ] != 0 )
- {
- SetPlayerSkin( playerid, fadeScreen[ playerid ][ fsSkin ] - 1 ); // -1, kadangi funkcijoje buvo +1. Tai reikalinga tam, kad būtų leidžiama nustatyti CJ skiną(ID 0)
- fadeScreen[ playerid ][ fsSkin] = 0;
- FadeScreenForPlayer( playerid, FADE_OUT, fadeScreen[ playerid ][ fsColor ] );
- }
- if( fadeScreen[ playerid ][ fsClearAnimations ] )
- {
- fadeScreen[ playerid ][ fsClearAnimations ] = false;
- ClearAnimations( playerid );
- }
- if( fadeScreen[ playerid ][ fsCameraBehindPlayer ] )
- {
- fadeScreen[ playerid ][ fsCameraBehindPlayer ] = false;
- SetCameraBehindPlayer( playerid );
- }
- }
- CallRemoteFunction( "OnFadeComplete", "ddx", playerid, fadeScreen[ playerid ][ fsMode ], fadeScreen[ playerid ][ fsColor ] );
- return 1;
- }
- return 1;
- }
- stock GetFadeColor( steps, mode, color )
- {
- new
- alpha,
- rgb[ 3 ],
- hex
- ;
- if( mode == FADE_IN ) alpha = 255 - steps;
- else alpha = 255 - ( 255 - steps );
- // ačiū 0x5A656578(a.k.a. Zeex)!
- rgb[ 0 ] = ( color & 0xFF000000 ) >>> 24;
- rgb[ 1 ] = ( color & 0x00FF0000 ) >>> 16;
- rgb[ 2 ] = ( color & 0x0000FF00 ) >>> 8;
- hex |= ( rgb[ 0 ] & 0xFF ) << 24;
- hex |= ( rgb[ 1 ] & 0xFF ) << 16;
- hex |= ( rgb[ 2 ] & 0xFF ) << 8;
- hex |= ( alpha & 0xFF );
- return hex;
- }
Advertisement
Add Comment
Please, Sign In to add comment