Quantcast
Channel: SA-MP Forums
Viewing all articles
Browse latest Browse all 18226

[Ajuda] Pawn.RakNet objetos

$
0
0
Olá, estou tentando fazer um sistema pra esconder objetos anexados na cabeça do jogador apenas para ele e ficar visível para os outros jogadores utilizando Pawn.RakNet, sendo assim, não atrapalha na mira, pra isso usei OnPlayerKeyStateChange, quando o sistema verifica que o jogador está na mira, eu uso BS_RPC e BS_WriteValue pra esconder, mas quando o jogador sai da mira simplesmente o objeto não volta

Macros

PHP Code:

// HOLDING(keys)
#define HOLDING(%0) \
    
((newkeys & (%0)) == (%0))

#define RELEASED(%0) \
    
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0))) 

Código no OnPlayerKeyStateChange

PHP Code:

    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        if(
HOLDING(128))
        {
            if(
GetPlayerWeapon(playerid) == 34)
            {
                if(
IsPlayerAttachedObjectSlotUsed(playerid0))
                {
                    new 
BitStream:bs BS_New();

                    
BS_WriteValue(bs
                        
PR_UINT16playerid,
                        
PR_UINT320,
                        
PR_BOOL0);
                    
BS_RPC(bsplayerid113);
                    
BS_Delete(bs);
                }    
            }
        }
        else if(
RELEASED(128))
        {
            if(
IsPlayerAttachedObjectSlotUsed(playerid0))
            {
                new 
BitStream:bs BS_New();
        
                
BS_WriteValue(
                            
bs
                            
PR_UINT16playerid
                            
PR_UINT320,
                            
PR_BOOL1,
                            
PR_INT32e_Player_Attached[playerid][ObjID],
                            
PR_UINT32e_Player_Attached[playerid][BoneID],
                            
PR_FLOATe_Player_Attached[playerid][oPosX],
                            
PR_FLOATe_Player_Attached[playerid][oPosY],
                            
PR_FLOATe_Player_Attached[playerid][oPosZ],
                            
PR_FLOATe_Player_Attached[playerid][orPosX],
                            
PR_FLOATe_Player_Attached[playerid][orPosY],
                            
PR_FLOATe_Player_Attached[playerid][orPosZ],
                            
PR_FLOATe_Player_Attached[playerid][oScaleX],
                            
PR_FLOATe_Player_Attached[playerid][oScaleY],
                            
PR_FLOATe_Player_Attached[playerid][oScaleZ]
                            );  
                
BS_RPC(bsplayerid113); 
                
BS_Delete(bs); 
            }
        }
    } 

Enum

PHP Code:

enum ATTACH_DATA_OBJ
{
    
ObjID,
    
BoneID,
    
Float:oPosX,
    
Float:oPosY,
    
Float:oPosZ,
    
Float:orPosX,
    
Float:orPosY,
    
Float:orPosZ,
    
Float:oScaleX,
    
Float:oScaleY,
    
Float:oScaleZ
};

new 
e_Player_Attached[MAX_PLAYERS][ATTACH_DATA_OBJ]; 


Viewing all articles
Browse latest Browse all 18226


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>