// HOLDING(keys)
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
if(HOLDING(128))
{
if(GetPlayerWeapon(playerid) == 34)
{
if(IsPlayerAttachedObjectSlotUsed(playerid, 0))
{
new BitStream:bs = BS_New();
BS_WriteValue(bs,
PR_UINT16, playerid,
PR_UINT32, 0,
PR_BOOL, 0);
BS_RPC(bs, playerid, 113);
BS_Delete(bs);
}
}
}
else if(RELEASED(128))
{
if(IsPlayerAttachedObjectSlotUsed(playerid, 0))
{
new BitStream:bs = BS_New();
BS_WriteValue(
bs,
PR_UINT16, playerid,
PR_UINT32, 0,
PR_BOOL, 1,
PR_INT32, e_Player_Attached[playerid][ObjID],
PR_UINT32, e_Player_Attached[playerid][BoneID],
PR_FLOAT, e_Player_Attached[playerid][oPosX],
PR_FLOAT, e_Player_Attached[playerid][oPosY],
PR_FLOAT, e_Player_Attached[playerid][oPosZ],
PR_FLOAT, e_Player_Attached[playerid][orPosX],
PR_FLOAT, e_Player_Attached[playerid][orPosY],
PR_FLOAT, e_Player_Attached[playerid][orPosZ],
PR_FLOAT, e_Player_Attached[playerid][oScaleX],
PR_FLOAT, e_Player_Attached[playerid][oScaleY],
PR_FLOAT, e_Player_Attached[playerid][oScaleZ]
);
BS_RPC(bs, playerid, 113);
BS_Delete(bs);
}
}
}
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];
Jб existe um como vocк quer.
https://sampforum.blast.hk/showthread.php?tid=643250 |
A Diferenзa й que o seu nгo funciona.
E antes que pergunte o porque й sу vocк olhar os dois cуdigos. |
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. |
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. |