192 lines
9.9 KiB
Plaintext
192 lines
9.9 KiB
Plaintext
|
/*
|
||
|
* Irresistible Gaming (c) 2018
|
||
|
* Developed by Lorenc Pekaj
|
||
|
* Module: cnr\model_preview.pwn
|
||
|
* Purpose: handy module to preview object models
|
||
|
*/
|
||
|
|
||
|
/* ** Includes ** */
|
||
|
#include < YSI\y_hooks >
|
||
|
|
||
|
/* ** Variables ** */
|
||
|
static stock
|
||
|
PlayerText: p_ModelPreviewTD [ MAX_PLAYERS ] [ 8 ],
|
||
|
Text: g_ModelPreviewBoxTD = Text: INVALID_TEXT_DRAW,
|
||
|
Text: p_ModelPreviewCloseTD = Text: INVALID_TEXT_DRAW
|
||
|
;
|
||
|
|
||
|
/* ** Hooks ** */
|
||
|
hook OnScriptInit( )
|
||
|
{
|
||
|
// init textdraws
|
||
|
for ( new i = 0; i < sizeof( p_ModelPreviewTD ); i ++ ) {
|
||
|
for ( new x = 0; x < sizeof( p_ModelPreviewTD[ ] ); x ++ ) {
|
||
|
p_ModelPreviewTD[ i ] [ x ] = PlayerText: INVALID_TEXT_DRAW;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// global ones
|
||
|
p_ModelPreviewCloseTD = TextDrawCreate( 191.000000, 319.000000, "Press your ESCAPE KEY to close the preview." );
|
||
|
TextDrawBackgroundColor( p_ModelPreviewCloseTD, 255 );
|
||
|
TextDrawFont( p_ModelPreviewCloseTD, 2 );
|
||
|
TextDrawLetterSize( p_ModelPreviewCloseTD, 0.259999, 1.399999 );
|
||
|
TextDrawColor( p_ModelPreviewCloseTD, -1 );
|
||
|
TextDrawSetOutline( p_ModelPreviewCloseTD, 1 );
|
||
|
TextDrawSetProportional( p_ModelPreviewCloseTD, 1 );
|
||
|
|
||
|
g_ModelPreviewBoxTD = TextDrawCreate( 500.000000, 150.000000, "__" );
|
||
|
TextDrawBackgroundColor( g_ModelPreviewBoxTD, 255 );
|
||
|
TextDrawLetterSize( g_ModelPreviewBoxTD, 0.500000, 17.000000 );
|
||
|
TextDrawColor( g_ModelPreviewBoxTD, -1 );
|
||
|
TextDrawUseBox( g_ModelPreviewBoxTD, 1 );
|
||
|
TextDrawBoxColor( g_ModelPreviewBoxTD, 112 );
|
||
|
TextDrawTextSize( g_ModelPreviewBoxTD, 139.000000, 50.000000 );
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
hook OnPlayerConnect( playerid )
|
||
|
{
|
||
|
p_ModelPreviewTD[ playerid ] [ 0 ] = CreatePlayerTextDraw( playerid,289.000000, 230.000000, "preview 2" );
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], 112 );
|
||
|
PlayerTextDrawFont( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], 5 );
|
||
|
PlayerTextDrawLetterSize( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], 0.500000, 4.400000 );
|
||
|
PlayerTextDrawColor( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], -1 );
|
||
|
PlayerTextDrawUseBox( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], 1 );
|
||
|
PlayerTextDrawBoxColor( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], 0 );
|
||
|
PlayerTextDrawTextSize( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], 60.000000, 60.000000 );
|
||
|
PlayerTextDrawSetPreviewRot( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], -16.000000, 0.000000, 0.000000, 1.000000 );
|
||
|
// PlayerTextDrawSetSelectable( playerid, p_ModelPreviewTD[ playerid ] [ 0 ], 1 );
|
||
|
|
||
|
p_ModelPreviewTD[ playerid ] [ 1 ] = CreatePlayerTextDraw( playerid,358.000000, 160.000000, "preview 3" );
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], 112 );
|
||
|
PlayerTextDrawFont( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], 5 );
|
||
|
PlayerTextDrawLetterSize( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], 0.500000, 4.400000 );
|
||
|
PlayerTextDrawColor( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], -1 );
|
||
|
PlayerTextDrawUseBox( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], 1 );
|
||
|
PlayerTextDrawBoxColor( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], 0 );
|
||
|
PlayerTextDrawTextSize( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], 60.000000, 60.000000 );
|
||
|
PlayerTextDrawSetPreviewRot( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], -16.000000, 0.000000, 270.000000, 1.000000 );
|
||
|
// PlayerTextDrawSetSelectable( playerid, p_ModelPreviewTD[ playerid ] [ 1 ], 1 );
|
||
|
|
||
|
p_ModelPreviewTD[ playerid ] [ 2 ] = CreatePlayerTextDraw( playerid,358.000000, 230.000000, "preview 4" );
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], 112 );
|
||
|
PlayerTextDrawFont( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], 5 );
|
||
|
PlayerTextDrawLetterSize( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], 0.500000, 4.400000 );
|
||
|
PlayerTextDrawColor( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], -1 );
|
||
|
PlayerTextDrawUseBox( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], 1 );
|
||
|
PlayerTextDrawBoxColor( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], 0 );
|
||
|
PlayerTextDrawTextSize( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], 60.000000, 60.000000 );
|
||
|
PlayerTextDrawSetPreviewRot( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], -16.000000, 0.000000, 90.000000, 1.000000 );
|
||
|
// PlayerTextDrawSetSelectable( playerid, p_ModelPreviewTD[ playerid ] [ 2 ], 1 );
|
||
|
|
||
|
p_ModelPreviewTD[ playerid ] [ 3 ] = CreatePlayerTextDraw( playerid,428.000000, 160.000000, "preview 4" );
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], 112 );
|
||
|
PlayerTextDrawFont( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], 5 );
|
||
|
PlayerTextDrawLetterSize( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], 0.500000, 4.400000 );
|
||
|
PlayerTextDrawColor( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], -1 );
|
||
|
PlayerTextDrawUseBox( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], 1 );
|
||
|
PlayerTextDrawBoxColor( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], 0 );
|
||
|
PlayerTextDrawTextSize( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], 60.000000, 60.000000 );
|
||
|
PlayerTextDrawSetPreviewRot( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], 270.000000, 0.000000, 0.000000, 1.000000 );
|
||
|
// PlayerTextDrawSetSelectable( playerid, p_ModelPreviewTD[ playerid ] [ 3 ], 1 );
|
||
|
|
||
|
p_ModelPreviewTD[ playerid ] [ 4 ] = CreatePlayerTextDraw( playerid,428.000000, 230.000000, "preview 5" );
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], 112 );
|
||
|
PlayerTextDrawFont( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], 5 );
|
||
|
PlayerTextDrawLetterSize( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], 0.500000, 4.400000 );
|
||
|
PlayerTextDrawColor( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], -1 );
|
||
|
PlayerTextDrawUseBox( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], 1 );
|
||
|
PlayerTextDrawBoxColor( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], 0 );
|
||
|
PlayerTextDrawTextSize( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], 60.000000, 60.000000 );
|
||
|
PlayerTextDrawSetPreviewRot( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], 90.000000, 0.000000, 0.000000, 1.000000 );
|
||
|
// PlayerTextDrawSetSelectable( playerid, p_ModelPreviewTD[ playerid ] [ 4 ], 1 );
|
||
|
|
||
|
p_ModelPreviewTD[ playerid ] [ 5 ] = CreatePlayerTextDraw( playerid,150.000000, 160.000000, "big preview" );
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], 112 );
|
||
|
PlayerTextDrawFont( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], 5 );
|
||
|
PlayerTextDrawLetterSize( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], 0.500000, 1.000000 );
|
||
|
PlayerTextDrawColor( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], -1 );
|
||
|
PlayerTextDrawUseBox( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], 1 );
|
||
|
PlayerTextDrawBoxColor( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], 0 );
|
||
|
PlayerTextDrawTextSize( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], 130.000000, 130.000000 );
|
||
|
PlayerTextDrawSetPreviewRot( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], -16.000000, 0.000000, 45.000000, 1.000000 );
|
||
|
// PlayerTextDrawSetSelectable( playerid, p_ModelPreviewTD[ playerid ] [ 5 ], 1 );
|
||
|
|
||
|
p_ModelPreviewTD[ playerid ] [ 6 ] = CreatePlayerTextDraw( playerid,289.000000, 160.000000, "preview 6" );
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], 112 );
|
||
|
PlayerTextDrawFont( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], 5 );
|
||
|
PlayerTextDrawLetterSize( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], 0.500000, 4.400000 );
|
||
|
PlayerTextDrawColor( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], -1 );
|
||
|
PlayerTextDrawUseBox( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], 1 );
|
||
|
PlayerTextDrawBoxColor( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], 0 );
|
||
|
PlayerTextDrawTextSize( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], 60.000000, 60.000000 );
|
||
|
PlayerTextDrawSetPreviewRot( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], -16.000000, 0.000000, 180.000000, 1.000000 );
|
||
|
// PlayerTextDrawSetSelectable( playerid, p_ModelPreviewTD[ playerid ] [ 6 ], 1 );
|
||
|
|
||
|
p_ModelPreviewTD[ playerid ] [ 7 ] = CreatePlayerTextDraw( playerid, 130.000000, 135.000000, "Vehicle Preview" );
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ 7 ], 255 );
|
||
|
PlayerTextDrawFont( playerid, p_ModelPreviewTD[ playerid ] [ 7 ], 0 );
|
||
|
PlayerTextDrawLetterSize( playerid, p_ModelPreviewTD[ playerid ] [ 7 ], 0.720000, 2.000000 );
|
||
|
PlayerTextDrawColor( playerid, p_ModelPreviewTD[ playerid ] [ 7 ], -1 );
|
||
|
PlayerTextDrawSetOutline( playerid, p_ModelPreviewTD[ playerid ] [ 7 ], 1 );
|
||
|
PlayerTextDrawSetProportional( playerid, p_ModelPreviewTD[ playerid ] [ 7 ], 1 );
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
hook OnPlayerClickTextDraw( playerid, Text: clickedid)
|
||
|
{
|
||
|
// Pressed ESC
|
||
|
if ( clickedid == Text: INVALID_TEXT_DRAW ) {
|
||
|
if ( GetPVarInt( playerid, "preview_model_delay" ) < GetTickCount( ) && GetPVarInt( playerid, "preview_model_handle" ) ) {
|
||
|
return HidePlayerModelPreview( playerid, 0 );
|
||
|
}
|
||
|
}
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
/* ** Functions ** */
|
||
|
stock ShowPlayerModelPreview( playerid, handleid, title[ ], model, bgcolor = 0x00000070 )
|
||
|
{
|
||
|
PlayerTextDrawSetString( playerid, p_ModelPreviewTD[ playerid ] [ 7 ], title );
|
||
|
|
||
|
TextDrawShowForPlayer( playerid, g_ModelPreviewBoxTD );
|
||
|
TextDrawShowForPlayer( playerid, p_ModelPreviewCloseTD );
|
||
|
|
||
|
for ( new i = 0; i < sizeof( p_ModelPreviewTD[ ] ); i ++ ) {
|
||
|
if ( i != 7 ) {
|
||
|
PlayerTextDrawBackgroundColor( playerid, p_ModelPreviewTD[ playerid ] [ i ], bgcolor );
|
||
|
PlayerTextDrawSetPreviewModel( playerid, p_ModelPreviewTD[ playerid ] [ i ], model );
|
||
|
}
|
||
|
PlayerTextDrawShow( playerid, p_ModelPreviewTD[ playerid ] [ i ] );
|
||
|
}
|
||
|
|
||
|
p_inMovieMode{ playerid } = false;
|
||
|
cmd_moviemode( playerid, "" ); // Hide textdraws
|
||
|
|
||
|
SetPVarInt( playerid, "preview_model_handle", handleid );
|
||
|
SelectTextDraw( playerid, COLOR_RED );
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
stock HidePlayerModelPreview( playerid, cancel = 1 )
|
||
|
{
|
||
|
if ( cancel ) {
|
||
|
CancelSelectTextDraw( playerid );
|
||
|
}
|
||
|
|
||
|
TextDrawHideForPlayer( playerid, g_ModelPreviewBoxTD );
|
||
|
TextDrawHideForPlayer( playerid, p_ModelPreviewCloseTD );
|
||
|
|
||
|
for( new i; i < sizeof( p_ModelPreviewTD [ ] ); i++ ) {
|
||
|
PlayerTextDrawHide( playerid, p_ModelPreviewTD[ playerid ] [ i ] );
|
||
|
}
|
||
|
|
||
|
cmd_moviemode( playerid, "" ); // Show textdraws
|
||
|
|
||
|
CallLocalFunction( "OnPlayerEndModelPreview", "dd", playerid, GetPVarInt( playerid, "preview_model_handle" ) );
|
||
|
|
||
|
SetPVarInt( playerid, "preview_model_delay", GetTickCount( ) + 100 );
|
||
|
DeletePVar( playerid, "preview_model_handle" );
|
||
|
return 1;
|
||
|
}
|