[Tutorial] Novos Objetos e Funзхes, Preparando Para 0.3e RC3
#1


Uma Versгo de Seguranзa, SAMP 0.3e.
Bugs Arrumados

- Corrigido o problema onde os objetos de jogadores podem aparecer flutuando.
- Objetos anexados serб removido quando o jogador entra respawns ou seleзгo de classe, e nгo quando o jogador morre (durante a animaзгo de morte).
- Corrigido o erro onde o jogador pode ser teleportado para 0,0,0 se estiver em cima de um veiculo e o carro se teletransportar, ou na hora que muda a placa do carro.
- Corrigido um erro criado a partir da 0.3d onde um jogador pode ser capaz de evitar a morte se estiver em uma animaзгo personalizada aplicada.
- A Utilizaзгo SpawnPlayer() foi Arrumada onde o Jogador era kickado depois de utilizado.
- Corrigido o Problema Entre falhas de dados no browser.

Novidades

- Poderб Por Cores em Players Maiores que ID 500.
- Diбlogos com script agora tem uma barra de legenda.
- Um parвmetro foi adicionado а SetPlayerCameraLookAt() de modo que a cвmara irб mover-se para a nova posiзгo, em vez de teleport.

pawn Код:
#define CAMERA_CUT  2
#define CAMERA_MOVE 1
native SetPlayerCameraLookAt(playerid, Float:x, Float:y, Float:z, cut = CAMERA_CUT);
Novos Objetos

- Adicionado Novos Objetos Como cartola, bengala, e vбrios muros.
- 40 novos muros, incluindo portas e janelas, algemas, luzes de polнcia, lombada, fones de ouvido diferentes coloridos.
- Ambos Criado Por cessil.



Novas Funзхes

AttachPlayerObjectToVehicle
pawn Код:
native AttachPlayerObjectToVehicle(playerid, objectid, vehicleid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:RotZ);
Adiciona um Objeto no Carro.

Exemplo:

pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER) // Quando o Player Apertar Enter em um Veiculo
    {
        // Objeto Criado, ( Defina Ela no Caso, cow_object. )
        new cow_object = CreatePlayerObject(playerid, 16442, 0, 0, 0, 0, 0, 0);
        AttachPlayerObjectToVehicle(playerid, cow_object/*Objeto Defino*/, GetPlayerVehicleID(playerid), 0.0, 0.0, 1.0, 0.0, 0.0, 0.0);
    }
}// Resumindo ao Entrar no Carro, o Objeto й Setado.
InterpolateCameraPos e InterpolateCameraLookAt

pawn Код:
native InterpolateCameraPos(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);
native InterpolateCameraLookAt(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);
Faz a Cвmera se Mover de um Lugar Determinado, Atй Outro Lugar Determinado ou seja, tipo uma cвmera dentro de um heli. Basta Saber Como criar cвmera para isso.

Exemplo: (Por DarkScripter)

pawn Код:
if(!strcmp(cmdtext,"/camera", true))
{
     TogglePlayerSpectating(playerid, true);
     InterpolateCameraLookAt(playerid, 2045.2523, 1689.3992,  10.3990 + 50, 1336.8778, -2271.4685, 13.1868 + 50, TIMER, CAMERA_MOVE); // CorX, CorY, CorZ+50, CorX, CorY- CorZ+50, Tempo no caso, Definido Acima, Para Camera se Mover.
     InterpolateCameraPos(playerid,    2045.2523, 1689.3992,  10.3990 + 50, 1336.8778, -2271.4685, 13.1868 + 50, TIMER, CAMERA_MOVE); // CorX, CorY, CorZ+50, CorX, CorY- CorZ+50, Tempo no caso, Definido Acima, Para Camera se Mover.
     return true;
}
if(!strcmp(cmdtext,"/saircamera", true))
{
     TogglePlayerSpectating(playerid, false);
     SetCameraBehindPlayer(playerid);
     return true;
}
AttachCameraToObject e AttachCameraToPlayerObject

pawn Код:
native AttachCameraToObject(playerid, objectid);
native AttachCameraToPlayerObject(playerid, playerobjectid);
Cria uma Cвmera no Objeto Criado, ou seja, vocк cria o Objeto, da o comando, e cria uma cвmera automaticamente nesse objeto onde vocк fica vendo.

Exemplo AttachCameraToObject:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/setar", false))
    {
        new Objeto = CreateObject(1245, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0);
        AttachCameraToObject(playerid, Objeto);
        SendClientMessage(playerid, -1, "Sua cвmera Foi ligada em um objeto.");
        return true;
    }
    if(!strcmp(cmdtext,"/b", true)) // faz o player sair da cвmera onde estб vendo.
    {
        TogglePlayerSpectating(playerid, false);
        SetCameraBehindPlayer(playerid);
        return true;
    }
    return false;
}
Exemplo AttachCameraToPlayerObject:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/setar", false))
    {
        new PlayerObjeto = CreatePlayerObject(playerid, 1245, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0);
        AttachCameraToPlayerObject(playerid, PlayerObjeto );
        SendClientMessage(playerid, 0xFFFFFFAA, "Sua cвmera Foi ligada em um objeto.");
        return true;
    }
    if(!strcmp(cmdtext,"/b", true)) // faz o player sair da cвmera onde estб vendo.
    {
        TogglePlayerSpectating(playerid, false);
        SetCameraBehindPlayer(playerid);
        return true;
    }
    return false;
}

GetPlayerVersion

pawn Код:
native GetPlayerVersion(playerid, const version[], len);
Verifica a Versгo do SAMP do Player.


Exemplo:


pawn Код:
public OnPlayerConnect(playerid)
{
    new Celula[40];
    GetPlayerVersion(playerid, Celula, sizeof(Celula));
    format(Celula, sizeof(Celula), "Sua Versгo do SAMP й: %s", Celula);
    SendClientMessage(playerid, -1, Celula);
    return true;
}

Crйditos: Jonathan Feitosa pelo Tutorial, Kalcor Pela Versгo.

Download dos Arquivos

LINUX AINDA NГO ESTБ DISPONНVEL, APENAS WINDONS.

Client Installer: SA-MP 0.3e RC3 Client
Windows Server (20 players): SA-MP 0.3e RC3 Windows Server

FilterScript com Todas as Funзхes Abaixo.
pawn Код:
// Por Jonathan Feitosa

#include <a_samp>

#define TIMER           ( 60000 * 1 ) // tempo para mover a cвmera ( 1 minuto )

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("FS Explicaзхes 0.3e Carregado !");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

main()
{
    print("\n----------------------------------");
    print("Criado Por Jonathan Feitosa");
    print("----------------------------------\n");
}

public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    new Celula[40];
    GetPlayerVersion(playerid, Celula, sizeof(Celula));
    format(Celula, sizeof(Celula), "Sua Versгo do SAMP й: %s", Celula);
    SendClientMessage(playerid, -1, Celula);
    return true;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext,"/camera", true)) // (Por DarkScripter)
    {
        TogglePlayerSpectating(playerid, true);
        InterpolateCameraLookAt(playerid, 2045.2523, 1689.3992,  10.3990 + 50, 1336.8778, -2271.4685, 13.1868 + 50, TIMER, CAMERA_MOVE); // CorX, CorY, CorZ+50, CorX, CorY- CorZ+50, Tempo no caso, Definido Acima, Para Camera se Mover.
        InterpolateCameraPos(playerid,    2045.2523, 1689.3992,  10.3990 + 50, 1336.8778, -2271.4685, 13.1868 + 50, TIMER, CAMERA_MOVE); // CorX, CorY, CorZ+50, CorX, CorY- CorZ+50, Tempo no caso, Definido Acima, Para Camera se Mover.
        return true;
    }
    if(!strcmp(cmdtext,"/saircamera", true))
     {
        TogglePlayerSpectating(playerid, false);
        SetCameraBehindPlayer(playerid);
        return true;
    }
    if(!strcmp(cmdtext, "/setar", false))
    {
        new Objeto = CreateObject(1245, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0);
        AttachCameraToObject(playerid, Objeto);
        SendClientMessage(playerid, -1, "Sua cвmera Foi ligada em um objeto, para sair, /saircamera.");
        return true;
    }
    if(!strcmp(cmdtext, "/setar2", false))
    {
        new PlayerObjeto = CreatePlayerObject(playerid, 1245, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0);
        AttachCameraToPlayerObject(playerid, PlayerObjeto );
        SendClientMessage(playerid, 0xFFFFFFAA, "Sua cвmera Foi ligada em um objeto, para sair, /saircamera.");
        return 1;
    }
    return false;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
        new cow_object = CreatePlayerObject(playerid, 16442, 0, 0, 0, 0, 0, 0);
        AttachPlayerObjectToVehicle(playerid, cow_object, GetPlayerVehicleID(playerid), 0.0, 0.0, 1.0, 0.0, 0.0, 0.0);
    }
    return 1;
}
Reply
#2

isso jб foi postado.
Reply
#3

Bom Tuturial, mas agora jб estб tudo virando para o 0.3e RC2, fala-se mais do 0.3e RC2 do que 0.3d RC3
Reply
#4

Nem foi.
Reply
#5

JFS descupa nao vi qui йra 0.3d achei qui era a 0.3e

@Edit

jб que й 1 tuto poderia explicar as novas funзoes.
Reply
#6

Quote:
Originally Posted by iChriSsS-CM
Посмотреть сообщение
Bom Tuturial, mas agora jб estб tudo virando para o 0.3e RC2, fala-se mais do 0.3e RC2 do que 0.3d RC3
Esse Tutorial Fala no RC1,2,3. Й Geral. Botei Tudo porque iria sair pequeno.

Malz, RESUMINDO, ARRUMEI O TITULO kk. й 0.3e e nao tem tutu.
Reply
#7

onde ta o tutorial? sу vi uma traduзгo.
Reply
#8

Pera que ja ta na metade sabe ler nгo :C
Reply
#9

Tava na hora de arrumar esse client, mesmo assim o sa-mp BR vai sair muito prejudicado com isso na бrea de players.

Que venha os update, muitos bug's foram resolvido!
Reply
#10

Isto nгo й um tutorial, й uma traduзгo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)