SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

2 participantes

    [Tuturial]Criando Um Gamemode [GM] iniciantes

    Viny_
    Viny_
    --> Postador Iniciante
    --> Postador Iniciante


    Steam Steam : Vinyz875
    Celular : 55 80283740
    Mensagens : 160
    Moedas : 3691
    Data de inscrição : 08/04/2015
    Idade : 29
    Localização : SP

    [Tuturial]Criando Um Gamemode [GM] iniciantes Empty [Tuturial]Criando Um Gamemode [GM] iniciantes

    Mensagem por Viny_ Qua 15 Abr 2015 - 11:40

    Olá Pessoal do fórum, neste tutorial irei ensinar passo-a-passo a como criar um gamemode do zero, aqui irei ensinar a fazer um GM com algumas funções mais usadas e irei explica-las totalmente, então vamos lá...

    Algumas pessoas tem dúvida se Pawno é a mesma coisa que Pawn, então eu digo, nada a vêr...
    Pawno é um programa editor de C++ que é usado para criar gamemodes, filterscript e includes..
    Pawn é uma linguagem de script de código aberto dentro do Pawno, que tem por abreviação o formato do arquivo chamado .pwn, o mesmo só é reconhecido ao ser compilado apertando F5.

    Então vamos ao restante..

    No topo:

    Code:
    #include a_samp
    Esta include ela é a principal função que faz com que seu GM funcione, motivo: dentro da include a_samp.inc bem dizer tem tooodas as funções, exemplo: SetTimer, SetPlayerHealth, SetPlayerArmour, etc...

    Depois vamos adicionar o:

    Code:
    main()
    {
    }

    Esta função deve ser adicionada no GM ou seu GM não compila, então dentro desta main() você pode adicionar uma 

    Code:
    print("Mensagem");
    Pra que serve essa print?
    Então ela serve para mandar uma mensagem no log do seu servidor, que você pode adicionar em qualquer função do gamemode, exemplo:

    Code:
    main()
    {
    print("Servidor execultado com sucesso");
    print("-------------------------");
    print("Forum.SA-MP.com - Acesse!");
    }

    Ele enviará as seguintes mensagens para seu server-log.txt,
    Servidor execultado com sucesso
    -------------------------
    Forum.SA-MP.com - Acesse!


    Logo após você adiciona uma das principais funções de um gm

    Code:
    public OnGameModeInit()
    {
    return 1;
    }

    Nesta função você adiciona as funções que vai fazer funcionar no seu gm, exemplo: quero adicionar skins e veículos, você usará

    Code:
    public OnGameModeInit()
    {
    AddPlayerClass(skinid, Float:X, Float:Y, Float:Z, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);
    AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2);
    return 1;
    }

    Que para aumentar o número de skins e veículos basta apenas você ir duplicando...

    Logo após viemos fazer o:

    Code:
    public OnPlayerRequestClass(playerid, classid)
    {
    return 1;
    }

    Aqui será a visualização dos skins que terá no servidor, que para exibir as skins você usará

    SetPlayerPos
    SetPlayerInterior
    SetPlayerCameraPos
    SetPlayerCameraLookAt

    Essa são apenas algumas das funções mais usadas na public OnPlayerRequestClass(playerid, classid) com seus links da wiki com suas explicações...

    Voltando ao public anterior que fizermos e com suas funções ele ficaria deste modo:

    Code:
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, Float:x, Float:y, Float:z);
    SetPlayerInterior(playerid, interiorid);
    SetPlayerCameraPos(playerid, Float:x, Float:y, Float:z);
    SetPlayerCameraLookAt(playerid, Float:x, Float:y, Float:z);
    return 1;
    }


    Agora passando para o próximo passo é o:

    Code:
    public OnPlayerConnect(playerid)
    {
    return 1;
    }

    Nesta calbak é usada para quando o player se conecta ao servidor ou para carregar alguns sistemas ou funções, exemplo: sistema de login, entre outros que não me vem na cabeça '-'

    Aqui vai um exemplo de um código na public OnPlayerConnect(playerid) que vai identificar quando o player se conecta ao servidor:

    Code:
    public OnPlayerConnect(playerid)
    {
    new str[78], pnome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pnome, sizeof(pnome));
    format(str, sizeof(str), "%s (ID:%d) conectou-se ao servidor.", pnome, playerid);
    SendClientMessageToAll(-1, str);
    return 1;
    }

    Então aqui vai o nome das funções com seus links de explicações na SA-MP Wiki

    GetPlayerName
    format
    SendClientMessageToAll - OBS: Na wiki eles tão dando a SendClientMessageToAll em uma só linha como se fosse SendClientMessage, mais aqui neste tutorial avançei um pouco fazendo com format '-', não é difícil de entender [Tuturial]Criando Um Gamemode [GM] iniciantes Wink

    Próximo passo será o:

    Code:
    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }

    Na public OnPlayerDisconnect é quase a mesma coisa que o public OnPlayerConnect só que na public OnPlayerDisconnect já fala né, quando o player desconecta do servidor.. é usado a mesma função da que está na public OnPlayerConnect(playerid) não tem nada de difícil [Tuturial]Criando Um Gamemode [GM] iniciantes Wink

    Próximo passo é o:

    Code:
    public OnPlayerSpawn(playerid)
    {
    return 1;
    }

    Esta calbak é a função que o player nasce, que para fazer o player nascer é usado SetPlayerPos e SetPlayerInterior exemplo:

    Code:
    public OnPlayerSpawn(playerid)
    {
    SetPlayerInterior(playerid, interiorid);
    SetPlayerPos(playerid, Float:x, Float:y, Float:z);
    return 1;
    }

    Lembrando que para pegar os interiores você deve entrar dentro do interior que deseja depois digitar /interior, você pode fazer com que o player dê spawn dentro de interior ou não...

    Próximo passo iremos mecher com:

    Code:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 0;
    }

    Hoje em dia, muitos scripters profissional ou até mesmo iniciantes ou intermediários usam o strcmp enquantos alguns usam ZCMD, para dar inicio a criação de um comando simples usaremos o seguinte:

    Code:
    if(strcmp(cmdtext, "/seucomando", true) == 0)
    {
    //Função
    return 1;
    }

    Este é um comando para você ter uma noção de como se faz o comando, que o mesmo também pode ser desta forma:

    Code:
    if(strcmp("/seucomando", cmdtext, true, 10) == 0)
    {
    //Função
    return 1;
    }

    Vai dar na mesma coisa, só que pelo que vimos fica maior né? Dai você se pergunta o que aquele 10 faz ali? Então ela é uma string para o comando que não pode ser definida em nome, somente em número.. O comando junto com a public OnPlayerCommandTextficará:

    Code:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/seucomando", true) == 0)
    {
    //Função
    return 1;
    }
    return 0;
    }

    Simples né? Para finalizar o:

    Code:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    return 1;
    }

    Este é para você por dialogs com id direcionado em comandos, sistema de logins e etc... Para saber mais informações sobre a OnDialogReponse acesse: http://wiki.sa-mp.com/wiki/OnDialogResponse
    Lá tem tudo sobre o OnDialogResponse..

    Então é isso aê pessoal, espero que tenham gostado, lembrando que fiz este tutorial para quem é "INICIANTE" depois não fale besteira =}

    Qualquer dúvida, pode postar ai!
    Há... Se eu esqueci de alguma coisa só falar ok?

    Obrigado a todos, grande abraço!

    __________________
    [SSGames]Viny_
    Anonimo
    Anonimo
    SS - Membro de honra
    SS - Membro de honra


    Steam Steam : Wandson13
    Zello : Designer Iniciante
    Celular : 9991981153
    Mensagens : 1886
    Moedas : 6189
    Data de inscrição : 12/09/2014
    Idade : 23

    [Tuturial]Criando Um Gamemode [GM] iniciantes Empty Re: [Tuturial]Criando Um Gamemode [GM] iniciantes

    Mensagem por Anonimo Qui 16 Abr 2015 - 9:03

    Um dia vou ser scripter xd



    Olá Convidado, eu sou o Anonimo, membro da SSGames Brasil
    A SSGames Brasil foi criada em Qui 6 Out 2011 - 21:11, estamos online a 4586 dias
    Temos atualmente 138142 mensagens e 95229 tópicos
    Temos também 13003 usuários registrados, o ultimo registrado foi https://scriptsamp.forumeiros.com/u13139

      Data/hora atual: Sex 26 Abr 2024 - 16:25