Guest User

iScreenFader 1.1

a guest
Jun 13th, 2012
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.34 KB | None | 0 0
  1. /*
  2.  
  3.         iScreenFader 1.1
  4.         pabaigta 2012m. Birželio 13d 11:09
  5.  
  6.         Autorius: InstincT
  7.         Keisti kreditus draudžiama! Pakeitęs kreditus autoriumi netapsi!
  8.  
  9.         funkcijos
  10.             FadeScreenForPlayer( playerid, mode )
  11.             playerid - žaidėjo ID
  12.             mode - užtemdymo rėžimas. Jų yra du tipai:
  13.                 FADE_IN - užtemdyti(po truputį padaryti ekraną juodą)
  14.                 FADE_OUT - atitemdyti(po truputį padaryti ekraną matomą)
  15.  
  16.             FadePlayerPos( playerid, Float:fsPosX, Float:fsPosY, Float:fsPosZ, Float:fsPosA = -1.0, fsInt = -1, fsVW = -1 )
  17.             playerid - žaidėjo ID
  18.             fsPosX - koordinatė X
  19.             fsPosY - koordinatė Y
  20.             fsPosZ - koordinatė Z
  21.             **fsPosA - pasisukimo laipsniai
  22.             **fsInt - interioras
  23.             **fsVW - virtual worldas
  24.  
  25.             FadeSkinForPlayer( playerid, skinID )
  26.             playerid - žaidėjo ID
  27.             skinID - skino ID
  28.  
  29.             ** - PARAMETRAS NEBŪTINAS!
  30.  
  31.         callbackai
  32.             OnFadeComplete( playerid, mode )
  33.                 playerid - žaidėjo ID
  34.                 mode - užtemdymo rėžimas
  35.  
  36.         changelogas
  37.             2012m. Birželio 12d.:
  38.                 - išleista
  39.             2012m. Birželio 13d.:
  40.                 - padaryti pranešimai bei vykdymo nutraukimai, kurių dėka bus išvengiamas netaisyklingas funkcijų naudojimas,
  41.                 - naudojami PlayerTextDraw'ai vietoje globalių TextDraw'ų,
  42.                 - viskas turėtų veikti dvigubai greičiau, pakeistas timer'io interval'as iš 5 į 10, taip pat kintamasis fsSteps mažinamas dviem vienetais
  43.                 - naujos funkcijos:
  44.                         FadePlayerPos, FadePlayerSkin
  45.  
  46.  
  47. */
  48.  
  49.  
  50. #define FADE_IN 1
  51. #define FADE_OUT 2
  52.  
  53.  
  54. forward OnFadeComplete( playerid, mode );
  55.  
  56.  
  57. enum fadeScreenEnumas
  58. {
  59.     fsTD_sukurtas,
  60.     PlayerText:fsTextDraw,
  61.     fsTimer,
  62.     fsSteps,
  63.     fsMode,
  64.  
  65.     Float:fsPos[ 4 ],
  66.     fsInterior,
  67.     fsVirtualWorld,
  68.     fsSkin
  69. }
  70.  
  71. new
  72.     fadeScreen[ MAX_PLAYERS ][ fadeScreenEnumas ]
  73. ;
  74.  
  75.  
  76. stock FadeScreenForPlayer( playerid, mode )
  77. {
  78.     if( mode != FADE_IN && mode != FADE_OUT ) return print( "KLAIDA iScreenFader naudojime! FadeScreenForPlayer žaidėjui %d mode buvo netinkamas." );
  79.     if( fadeScreen[ playerid ][ fsSteps ] > 0 ) return print( "KLAIDA iScreenFader naudojime! FadeScreenForPlayer funkcijoje žaidėjas %d jau naudoja ekrano tamsinimą." );
  80.     fadeScreen[ playerid ][ fsSteps ] = 255;
  81.     fadeScreen[ playerid ][ fsMode ] = mode;
  82.     fadeScreen[ playerid ][ fsTimer ] = SetTimerEx( "FadeScreen", 10, true, "d", playerid );
  83.     return 1;
  84. }
  85.  
  86. stock FadePlayerPos( playerid, Float:fsPosX, Float:fsPosY, Float:fsPosZ, Float:fsPosA = -1.0, fsInt = -1, fsVW = -1 )
  87. {
  88.     if( fadeScreen[ playerid ][ fsSteps ] > 0 ) return print( "KLAIDA iScreenFader naudojime! FadePlayerPos funkcijoje žaidėjas %d jau naudoja ekrano tamsinimą." );
  89.     fadeScreen[ playerid ][ fsSteps ] = 255;
  90.     fadeScreen[ playerid ][ fsMode ] = FADE_IN;
  91.     fadeScreen[ playerid ][ fsPos ][ 0 ] = fsPosX;
  92.     fadeScreen[ playerid ][ fsPos ][ 1 ] = fsPosY;
  93.     fadeScreen[ playerid ][ fsPos ][ 2 ] = fsPosZ;
  94.     fadeScreen[ playerid ][ fsPos ][ 3 ] = fsPosA;
  95.     fadeScreen[ playerid ][ fsInterior ] = fsInt;
  96.     fadeScreen[ playerid ][ fsVirtualWorld ] = fsVW;
  97.     fadeScreen[ playerid ][ fsTimer ] = SetTimerEx( "FadeScreen", 10, true, "d", playerid );
  98.     return 1;
  99. }
  100.  
  101. stock FadePlayerSkin( playerid, skinID )
  102. {
  103.     if( fadeScreen[ playerid ][ fsSteps ] > 0 ) return print( "KLAIDA iScreenFader naudojime! FadePlayerSkin funkcijoje žaidėjas %d jau naudoja ekrano tamsinimą." );
  104.     fadeScreen[ playerid ][ fsSteps ] = 255;
  105.     fadeScreen[ playerid ][ fsMode ] = FADE_IN;
  106.     fadeScreen[ playerid ][ fsSkin ] = skinID + 1;
  107.     fadeScreen[ playerid ][ fsTimer ] = SetTimerEx( "FadeScreen", 10, true, "d", playerid );
  108.     return 1;
  109. }
  110.  
  111. forward FadeScreen( playerid );
  112. public FadeScreen( playerid )
  113. {
  114.     if( !fadeScreen[ playerid ][ fsTD_sukurtas ] )
  115.     {
  116.         fadeScreen[ playerid ][ fsTextDraw ] = CreatePlayerTextDraw( playerid, -159.000000, -288.000000, "iScreenFader by InstincT" );
  117.         PlayerTextDrawBackgroundColor( playerid, fadeScreen[ playerid ][ fsTextDraw ], 255 );
  118.         PlayerTextDrawFont( playerid, fadeScreen[ playerid ][ fsTextDraw ], 0 );
  119.         PlayerTextDrawLetterSize( playerid, fadeScreen[ playerid ][ fsTextDraw ], 0.270000, 88.999687 );
  120.         PlayerTextDrawColor( playerid, fadeScreen[ playerid ][ fsTextDraw ], -1 );
  121.         PlayerTextDrawSetOutline( playerid, fadeScreen[ playerid ][ fsTextDraw ], 0 );
  122.         PlayerTextDrawSetProportional( playerid, fadeScreen[ playerid ][ fsTextDraw ], 1 );
  123.         PlayerTextDrawSetShadow( playerid, fadeScreen[ playerid ][ fsTextDraw ], 1 );
  124.         PlayerTextDrawUseBox( playerid, fadeScreen[ playerid ][ fsTextDraw ], 1 );
  125.         PlayerTextDrawBoxColor( playerid, fadeScreen[ playerid ][ fsTextDraw ], 255 );
  126.         PlayerTextDrawTextSize( playerid, fadeScreen[ playerid ][ fsTextDraw ], 848.000000, 2.000000 );
  127.         fadeScreen[ playerid ][ fsTD_sukurtas ] = true;
  128.     }
  129.     PlayerTextDrawBoxColor( playerid, fadeScreen[ playerid ][ fsTextDraw ], GetFadeColor( playerid, fadeScreen[ playerid ][ fsMode ] ) );
  130.     PlayerTextDrawShow( playerid, fadeScreen[ playerid ][ fsTextDraw ] );
  131.     fadeScreen[ playerid ][ fsSteps ] -= 2;
  132.     if( fadeScreen[ playerid ][ fsSteps ] <= 0 )
  133.     {
  134.         KillTimer( fadeScreen[ playerid ][ fsTimer ] );
  135.         if( fadeScreen[ playerid ][ fsMode ] == FADE_OUT )
  136.         {
  137.             PlayerTextDrawHide( playerid, fadeScreen[ playerid ][ fsTextDraw ] );
  138.         }
  139.         else
  140.         {
  141.             if( fadeScreen[ playerid ][ fsPos ][ 0 ] != 0.0 && fadeScreen[ playerid ][ fsPos ][ 1 ] != -1.0 && fadeScreen[ playerid ][ fsPos ][ 2 ] != -1.0 )
  142.             {
  143.                 SetPlayerPos( playerid, fadeScreen[ playerid ][ fsPos ][ 0 ], fadeScreen[ playerid ][ fsPos ][ 1 ], fadeScreen[ playerid ][ fsPos ][ 2 ] );
  144.  
  145.                 if( fadeScreen[ playerid ][ fsPos ][ 3 ] != 0.0 ) SetPlayerFacingAngle( playerid, fadeScreen[ playerid ][ fsPos ][ 3 ] );
  146.                 if( fadeScreen[ playerid ][ fsInterior ] != -1.0 ) SetPlayerInterior( playerid, fadeScreen[ playerid ][ fsInterior ] );
  147.                 if( fadeScreen[ playerid ][ fsVirtualWorld ] != -1.0 ) SetPlayerVirtualWorld( playerid, fadeScreen[ playerid ][ fsVirtualWorld ] );
  148.             }
  149.             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)
  150.         }
  151.         CallRemoteFunction( "OnFadeComplete", "dd", playerid, fadeScreen[ playerid ][ fsMode ] );
  152.         return 1;
  153.     }
  154.     return 1;
  155. }
  156.  
  157. stock GetFadeColor( playerid, mode )
  158. {
  159.     if( mode == FADE_IN ) return 255 - fadeScreen[ playerid ][ fsSteps ];
  160.     else return 255 - ( 255 - fadeScreen[ playerid ][ fsSteps ] );
  161. }
Advertisement
Add Comment
Please, Sign In to add comment