SA-MP Forums Archive
[Tutorial] Pacotes - Pawn.RakNet - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Pacotes - Pawn.RakNet (/showthread.php?tid=644763)

Pages: 1 2


Re: Pacotes - Pawn.RakNet - KoloradO - 14.11.2017

Jelly, encontrei um bug. ao usar ShowPlayerForPlayer e RemovePlayerForPlayer, os jogadores ficam com skin do cj e tbm nгo aparecem os acessуrios e tals. como resolver isso?


Re: Pacotes - Pawn.RakNet - Benner - 14.11.2017

Уtimo tutorial.


Re: Pacotes - Pawn.RakNet - Jelly23 - 14.11.2017

Quote:
Originally Posted by KoloradO
Посмотреть сообщение
Jelly, encontrei um bug. ao usar ShowPlayerForPlayer e RemovePlayerForPlayer, os jogadores ficam com skin do cj e tbm nгo aparecem os acessуrios e tals. como resolver isso?
Parвmetros faltando/incorretos no BitStream, verifique a lista.


Re: Pacotes - Pawn.RakNet - KoloradO - 14.11.2017

Como fazer SetPlayerSkinForPlayer e SetPlayerAttachedObjectForPlayer?

Eu sou leigo nisso de raknet, tentei fazer mas nгo deu muito certo rs

Код:
stock SetPlayerSkinForPlayer(playerid, toplayerid, skin)
{
    new BitStream:bs = BS_New();

    BS_WriteValue(
        bs,
        PR_UINT16, playerid
    );

    BS_SetWriteOffset(bs, skin);
    BS_RPC(bs, toplayerid, 153, PR_LOW_PRIORITY, PR_RELIABLE_ORDERED);
    BS_Delete(bs);
    return 1;
}



Re: Pacotes - Pawn.RakNet - Jelly23 - 14.11.2017

Quote:
Originally Posted by KoloradO
Посмотреть сообщение
Como fazer SetPlayerSkinForPlayer e SetPlayerAttachedObjectForPlayer?

Eu sou leigo nisso de raknet, tentei fazer mas nгo deu muito certo rs

Код:
stock SetPlayerSkinForPlayer(playerid, toplayerid, skin)
{
    new BitStream:bs = BS_New();

    BS_WriteValue(
        bs,
        PR_UINT16, playerid
    );

    BS_SetWriteOffset(bs, skin);
    BS_RPC(bs, toplayerid, 153, PR_LOW_PRIORITY, PR_RELIABLE_ORDERED);
    BS_Delete(bs);
    return 1;
}
SetPlayerAttObjForPlayer- Anexa um objeto em um jogador apenas para outro jogador.
PHP код:
SetPlayerAttObjForPlayer(playeridtoplayeridindexmodelidboneFloat:fOffsetX 0.0Float:fOffsetY 0.0Float:fOffsetZ 0.0Float:fRotX 0.0Float:fRotY 0.0Float:fRotZ 0.0Float:fScaleX 1.0Float:fScaleY 1.0Float:fScaleZ 1.0materialcolor1 0materialcolor2 0)
{
    new 
BitStream:bs BS_New();
    
BS_WriteValue(
        
bs,
        
PR_UINT16playerid,
        
PR_UINT32index,
        
PR_BOOL1,
        
PR_UINT32modelid,
        
PR_UINT32bone,
        
PR_FLOATfOffsetX,
        
PR_FLOATfOffsetY,
        
PR_FLOATfOffsetZ,
        
PR_FLOATfRotX,
        
PR_FLOATfRotY,
        
PR_FLOATfRotZ,
        
PR_FLOATfScaleX,
        
PR_FLOATfScaleY,
        
PR_FLOATfScaleZ,
        
PR_UINT32materialcolor1,
        
PR_UINT32materialcolor2
    
);
    
BS_RPC(bstoplayerid113PR_LOW_PRIORITYPR_RELIABLE_ORDERED);
    
BS_Delete(bs);
    return 
1;

RemovePlayerAttObjForPlayer- Remove um objeto anexado em um jogador apenas para outro jogador.
PHP код:
RemovePlayerAttObjForPlayer(playeridtoplayeridindex)
{
    new 
BitStream:bs BS_New();
    
BS_WriteValue(
        
bs,
        
PR_UINT16playerid,
        
PR_UINT32index,
        
PR_BOOL0
    
);
    
BS_RPC(bstoplayerid113PR_LOW_PRIORITYPR_RELIABLE_ORDERED);
    
BS_Delete(bs);
    return 
1;

SetPlayerSkinForPlayer - Muda o skin de um jogador para outro jogador.
PHP код:
SetPlayerSkinForPlayer(playeridforplayeridskin)
{
    new 
BitStream:bs BS_New();
    
BS_WriteValue(
        
bs,
        
PR_UINT16playerid,
        
PR_UINT32skin
    
);
    
BS_RPC(bsforplayerid153PR_LOW_PRIORITYPR_RELIABLE_ORDERED);
    
BS_Delete(bs);
    return 
1;

Detalhes importantes:

Ex: SetPlayerSkinForPlayer - Quando o jogador entrar na zona de streaming de outro jogador, o servidor manda o RPC WorldPlayerAdd com dados como estнlo de luta, skin, cor, etc. Vocк vai ter que mudar esses dados com os que vocк vai utilizar nas funзхes por-jogador, ou vocк verб o jogador com sua informaзгo original (skin, cor, etc).

Outro detalhe:

Vamos dizer que vocк tem o skin por-jogador salvo em uma matriz: new SkinPorJogador[MAX_PLAYERS][MAX_PLAYERS];

Vocк vai ter que tomar conta de casos em que o servidor pode mudar o skin para todos (ex: SetPlayerSkin). Para isso, vocк vai utilizar a callback OnOutcomingRPC e mudar o valor da matriz com o novo ID de skin dado pelo servidor no BitStream (RPC 153), assim, a matriz SkinPorJogador terб o valor dado pelo servidor quando mudado.


Re: Pacotes - Pawn.RakNet - Jelly23 - 15.11.2017

Espero ver algum lanзamento no futuro, utilizando Pawn.RakNet.


Re: Pacotes - Pawn.RakNet - KoloradO - 22.11.2017

Tentei fazer um SetPlayerNameForPlayer, fiz correto?

Код:
stock SetPlayerNameForPlayer(playerid, toplayerid, name[])
{
    new BitStream:bs = BS_New();

    BS_WriteValue(
        bs,
        PR_UINT16, playerid,
        PR_UINT16, sizeof(name),
        PR_STRING, name,
        
    );

    BS_RPC(bs, toplayerid, 11, PR_LOW_PRIORITY, PR_RELIABLE_ORDERED);
    BS_Delete(bs);
    return 1;
}



Re: Pacotes - Pawn.RakNet - Jelly23 - 24.01.2018

Quote:
Originally Posted by KoloradO
Посмотреть сообщение
Tentei fazer um SetPlayerNameForPlayer, fiz correto?

Код:
stock SetPlayerNameForPlayer(playerid, toplayerid, name[])
{
    new BitStream:bs = BS_New();

    BS_WriteValue(
        bs,
        PR_UINT16, playerid,
        PR_UINT16, sizeof(name),
        PR_STRING, name,
        
    );

    BS_RPC(bs, toplayerid, 11, PR_LOW_PRIORITY, PR_RELIABLE_ORDERED);
    BS_Delete(bs);
    return 1;
}
PHP код:
SetPlayerNameForPlayer(playeridtoplayeridname[])
{
    new 
BitStream:bs BS_New(), size strlen(name);
    
BS_WriteValue(
        
bs,
        
PR_UINT16playerid,
        
PR_UINT8size,
        
PR_STRINGname
    
);
    
BS_RPC(bstoplayerid11);
    
BS_Delete(bs);
    return 
1;




Re: Pacotes - Pawn.RakNet - Gguiz - 25.01.2018

Quando eu tiver um tempinho em minha vida irei me aprofundar mais em Pawn.RakNet.

Parabйns, уtimo tуpico!


Re: Pacotes - Pawn.RakNet - Jelly23 - 10.02.2018

Em breve um tуpico dedicado apenas a explicar como a sincronizaзгo e processos de "streaming" ocorrem no SA-MP, e como os mundos virtuais sгo manipulados pelo servidor.


Re: Pacotes - Pawn.RakNet - n0minal - 10.02.2018

Уtimo tutorial cara, gostei de ver!


Re: Pacotes - Pawn.RakNet - BrunoBM23 - 23.06.2018

Atualizado.

Agora com os pacotes tambйm disponнveis na RPC List: Aqui