Portal SAMP
[Ajuda] Problema ao tentar manipular um RPC - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Problema ao tentar manipular um RPC (/showthread.php?tid=2204)



Problema ao tentar manipular um RPC - Sr.Careca - 17/03/2022

Eu estou tentando executar um rpc no client do jogador pra criar um veiculo que somente ele seja capaz de interagir
Porém esse codigo não esta funcionando, o veículo não esta sendo criado pro jogador
O que eu tenho que fazer nessa situação?

Obs: o plugin utilizado para o envio do RPC é o YSF comm sua função "SendRPC", testei com o rpc 165 e funciona normalmente

Código PHP:
#define FILTERSCRIPT

#include <a_samp>
#include <sscanf2>
#include <ysf>
#include <zcmd>

CMD:pcar(playeridparams[])
{
    new modelcol[2];
    sscanf(params"ddd"modelcol[0], col[1]);
    if(400 <= model <= 611)
    {
        new interior GetPlayerInterior(playerid);
        new Float:aFloat:xFloat:yFloat:z;
        GetPlayerFacingAngle(playerida);
        GetPlayerPos(playeridxyz);
        
        SendRPC
(
            playerid164,
            BS_INT1999BS_INTmodel,
            BS_FLOATxBS_FLOATy,
            BS_FLOATzBS_FLOATa,
            BS_INT255BS_INT255,
            BS_FLOAT1000.0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT0,
            BS_INT0BS_INT3,
            BS_INTcol[0],
            BS_INTcol[1]
        );
        
        SendRPC
(playerid70BS_INT1999BS_INT0);
    }
    else SendClientMessage(playerid, -1"Utilize: /pcar [400-611] <0-255> <0-255>");
    return 1;



70: PutPlayerInVehicle
164: WorldVehicleAdd
165: WorldVehicleRemove


RE: Problema ao tentar manipular um RPC - xbruno1000x - 17/03/2022

Creio que o principal aí seja o RPC 165, não? Você pode criar o veículo com CreateVehicle e colocá-lo usando o PutPlayerInVehicle. Depois você utiliza o RPC 165.


RE: Problema ao tentar manipular um RPC - Sr.Careca - 17/03/2022

(17/03/2022 20:01)xbruno1000x Escreveu: Creio que o principal aí seja o RPC 165, não? Você pode criar o veículo com CreateVehicle e colocá-lo usando o PutPlayerInVehicle. Depois você utiliza o RPC 165.

Ja tentei usar isso mas é apenas momentaneo, se  jogador afetado por esse rpc se afastar e voltar ele voltara a ver o veiculo e podera interagir livremente, por isso tentei usar 164


RE: Problema ao tentar manipular um RPC - xbruno1000x - 17/03/2022

(17/03/2022 20:06)Sr.Careca Escreveu:
(17/03/2022 20:01)xbruno1000x Escreveu: Creio que o principal aí seja o RPC 165, não? Você pode criar o veículo com CreateVehicle e colocá-lo usando o PutPlayerInVehicle. Depois você utiliza o RPC 165.

Ja tentei usar isso mas é apenas momentaneo, se  jogador afetado por esse rpc se afastar e voltar ele voltara a ver o veiculo e podera interagir livremente, por isso tentei usar 164

Creio que isso ocorra por conta do Stream de veículos. Crie uma variável playerid atrelada ao veículo. Na OnPlayerExitVehicle você dá um destroy nele. Dessa forma, quando o player sair do veículo, ele não voltará a aparecer.

Pensei em algo com a public OnVehicleStreamOut também. Quando o stream for cancelado, você pode deletar o veículo para que o player não desfaça a invisibilidade.

Documentação:
https://open.mp/pt/docs/scripting/callbacks/OnPlayerExitVehicle
https://open.mp/pt/docs/scripting/callbacks/OnVehicleStreamOut