Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
- {
- #if ADMIN_ONLY
- if ( !IsPlayerAdmin( playerid ) )
- return;
- #endif
- if ( !g_HoldingObject[ playerid ][ e_iModel ] || !IsPlayerAttachedObjectSlotUsed( playerid, HOLDING_OBJECT_SLOT ) )
- return;
- new
- iPressedKeys = ( newkeys ^ oldkeys ) & newkeys
- ;
- if ( ( oldkeys & KEY_SPRINT ) )
- {
- new
- iSearchDirection = 0
- ;
- if ( ( iPressedKeys & iKeyLeft[ playerid ] ) )
- iSearchDirection = -1;
- else if ( ( iPressedKeys & iKeyRight[ playerid ] ) )
- iSearchDirection = 1;
- else
- return;
- repeat_1:
- if ( g_cPlayerAction{ playerid } == 1 && iSearchDirection == -1 )
- g_cPlayerAction{ playerid } = MAX_ACTIONS - 1;
- else
- {
- g_cPlayerAction{ playerid } += iSearchDirection;
- g_cPlayerAction{ playerid } %= MAX_ACTIONS;
- }
- if ( !g_cPlayerAction{ playerid } )
- goto repeat_1;
- g_cActionSettings{ playerid } |= ACTION_SETTING_DISABLED;
- switch ( g_cPlayerAction{ playerid } )
- {
- case ACTION_BROWSE_MODEL: GameTextForPlayer( playerid, "~w~browse ~y~model", 1250, 4 );
- case ACTION_BROWSE_BONE: GameTextForPlayer( playerid, "~w~browse ~y~bone", 1250, 4 );
- case ACTION_MOVE_X: GameTextForPlayer( playerid, "~w~move ~y~x", 1250, 4 );
- case ACTION_MOVE_Y: GameTextForPlayer( playerid, "~w~move ~y~y", 1250, 4 );
- case ACTION_MOVE_Z: GameTextForPlayer( playerid, "~w~move ~y~z", 1250, 4 );
- case ACTION_ROTATE_X: GameTextForPlayer( playerid, "~w~rotate ~y~rx", 1250, 4 );
- case ACTION_ROTATE_Y: GameTextForPlayer( playerid, "~w~rotate ~y~ry", 1250, 4 );
- case ACTION_ROTATE_Z: GameTextForPlayer( playerid, "~w~rotate ~y~rz", 1250, 4 );
- case ACTION_SCALE_X: GameTextForPlayer( playerid, "~w~scale ~y~x", 1250, 4 );
- case ACTION_SCALE_Y: GameTextForPlayer( playerid, "~w~scale ~y~y", 1250, 4 );
- case ACTION_SCALE_Z: GameTextForPlayer( playerid, "~w~scale ~y~z", 1250, 4 );
- case ACTION_ROTATE_CAM: GameTextForPlayer( playerid, "~w~rotate by camera", 1250, 4 );
- default:
- {
- g_cPlayerAction{ playerid } = ACTION_BROWSE_MODEL;
- GameTextForPlayer( playerid, "~w~browse ~y~model", 1250, 4 );
- }
- }
- return;
- }
- if ( ( g_cActionSettings{ playerid } & ACTION_SETTING_DISABLED ) )
- return;
- switch ( g_cPlayerAction{ playerid } )
- {
- case ACTION_BROWSE_BONE:
- {
- new
- iSearchDirection = 0
- ;
- if ( ( iPressedKeys & iKeyLeft[ playerid ] ) )
- iSearchDirection = -1;
- else if ( ( iPressedKeys & iKeyRight[ playerid ] ) )
- iSearchDirection = 1;
- else
- goto skip_browse_bone;
- new
- szBoneName[ MAX_BONE_NAME ],
- szGameText[ 16 + MAX_BONE_NAME ]
- ;
- repeat_2:
- g_HoldingObject[ playerid ][ e_iBone ] += iSearchDirection;
- g_HoldingObject[ playerid ][ e_iBone ] = g_HoldingObject[ playerid ][ e_iBone ] % 19;
- if ( g_HoldingObject[ playerid ][ e_iBone ] == 0 )
- goto repeat_2;
- GetBoneName( g_HoldingObject[ playerid ][ e_iBone ], szBoneName );
- format( szGameText, sizeof( szGameText ), "~y~%s ~w~-~r~ %d", szBoneName, g_HoldingObject[ playerid ][ e_iBone ] );
- GameTextForPlayer( playerid, szGameText, 1250, 4 );
- UpdateHoldingObject( playerid );
- skip_browse_bone:
- }
- case ACTION_BROWSE_MODEL:
- {
- new
- iSearchDirection = 0
- ;
- if ( ( iPressedKeys & iKeyLeft[ playerid ] ) )
- iSearchDirection = -1;
- else if ( ( iPressedKeys & iKeyRight[ playerid ] ) )
- iSearchDirection = 1;
- else
- goto skip_browse;
- new
- bool:bFound = false,
- iSearchModel = g_HoldingObject[ playerid ][ e_iModel ]
- ;
- while ( !bFound )
- {
- iSearchModel += iSearchDirection;
- if ( !( 0 < iSearchModel < 20001 ) )
- iSearchModel = iSearchModel % 20001;
- if ( IsValidHoldModel( iSearchModel ) )
- bFound = true;
- }
- new
- szModelName[ MAX_MODEL_NAME ],
- szGameText[ 16 + MAX_MODEL_NAME ]
- ;
- g_HoldingObject[ playerid ][ e_iModel ] = iSearchModel;
- GetModelName( iSearchModel, szModelName );
- format( szGameText, sizeof( szGameText ), "~y~%s ~w~-~r~ %d", szModelName, iSearchModel );
- GameTextForPlayer( playerid, szGameText, 1250, 4 );
- UpdateHoldingObject( playerid );
- skip_browse:
- }
- case ACTION_MOVE_X .. ACTION_SCALE_Z:
- {
- if ( ( iPressedKeys & iKeyLeft[ playerid ] ) )
- {
- g_fActionSpeed[ playerid ] = 0.0;
- UpdateHoldingObject( playerid );
- }
- else if ( ( iPressedKeys & iKeyRight[ playerid ] ) )
- {
- g_fActionSpeed[ playerid ] = 0.0;
- UpdateHoldingObject( playerid );
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment