[Ajuda] Pawn.RakNet objetos
#1

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]; 
Reply
#2

Jб existe um como vocк quer.
https://sampforum.blast.hk/showthread.php?tid=643250
Reply
#3

Quote:
Originally Posted by Injury
View Post
Tб, e qual a diferenзa desse pro meu?
Reply
#4

Quote:
Originally Posted by Electrifying
View Post
Tб, e qual a diferenзa desse pro meu?
A Diferenзa й que o seu nгo funciona.
E antes que pergunte o porque й sу vocк olhar os dois cуdigos.
Reply
#5

Quote:
Originally Posted by Domingues
View Post
A Diferenзa й que o seu nгo funciona.
E antes que pergunte o porque й sу vocк olhar os dois cуdigos.
Explique vocк, pois nгo consigo notar a diferenзa, ainda estou aprendendo a mexer em Pawn.RakNet e gostaria de uma explicaзгo de quem entende de verdade, pois chequei os dois cуdigos e nгo vi nada de diferente lб, fez a mesma coisa, usou macro depois usou BS_RPC e BS_WriteValue, a ъnica diferenзa й o que meu estб adaptado pro meu GM.

Obrigado.
Reply
#6

Se nгo hб nada diferente, o seu deveria funcionar, nй?

O seu tem todas as callbacks que a include tem? Provavelmente nгo.
Tudo o que tem na include tem no seu GM? Provavelmente nгo.

Com certeza o erro nгo estб nessa parte, estб em outra.

Por aн, vocк vai identificando o erro.
Use a include, й mais fбcil.
Reply
#7

A parte do cуdigo que vocк postou realmente estб correta, mas vocк nгo estб passando dados para as variбveis de "e_Player_Attached", no entanto, nгo hб o que ser "attachado" no jogador ao soltar o botгo.

Aliбs, a include jб й adaptada para qualquer gamemode nгo hб necessidade de adapta-la a sua.
Reply
#8

Quote:
Originally Posted by ipsLuan
View Post
Se nгo hб nada diferente, o seu deveria funcionar, nй?

O seu tem todas as callbacks que a include tem? Provavelmente nгo.
Tudo o que tem na include tem no seu GM? Provavelmente nгo.

Com certeza o erro nгo estб nessa parte, estб em outra.

Por aн, vocк vai identificando o erro.
Use a include, й mais fбcil.
E o que tem demais nas callbacks dele? ele simplesmente usou hook e criou uma stock J_SetPlayerAttachedObject

que й a mesma coisa que SetPlayerAttachedObject; para aderir os valores аs variбveis da Enum e aн usar no RPC, depois colocou uma booleana pra false no onplayerconnect. Mas obrigado, irei testar a include dele.

Quote:
Originally Posted by Injury
View Post
A parte do cуdigo que vocк postou realmente estб correta, mas vocк nгo estб passando dados para as variбveis de "e_Player_Attached", no entanto, nгo hб o que ser "attachado" no jogador ao soltar o botгo.

Aliбs, a include jб й adaptada para qualquer gamemode nгo hб necessidade de adapta-la a sua.
Na verdade eu passei dados para e_Player_Attached sim, desculpe por nгo ter postado, mas jб que tanto insistem em usar essa include do Jelly, que outra opзгo eu vou ter?
Reply
#9

Eu tambйm gostaria de aprender mais sobre o assunto, mas ainda nгo fui capaz de encontrar alguma explicaзгo descente a respeito, infelizmente.
Reply
#10

Bom, agradeзo а quem ajudou, incluн a include no meu servidor e usei J_SetPlayerAttachedObject, estб funcionando, mas gostaria de uma explicaзгo de quem puder explicar qual o problema em meu cуdigo e porque o funcionamento do cуdigo do Jelly estб funcionando.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)