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.

    [Tutorial] » Loja Avancada Com Interior e Apertando F

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11351
    Moedas : 1031857
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] » Loja Avancada Com Interior e Apertando F Empty [Tutorial] » Loja Avancada Com Interior e Apertando F

    Mensagem por Weslley_Script Qui 26 Ago 2021 - 16:59

    Tutorial

    Este E Um Tutorial Para Iniciantes Irei Tentar Deixar O Mais Claro Possível E Com Esse Tutorial Qualquer Vai Sair Desse Post Sabendo Fazer Um Porém Não Depende Do De Min, Vai Da Sua Capacidade E Esforço De Querer Aprender..

    Talvez O Post Fica Meio Grande Mas Irei Explicar Tudo Detalhado

    Objetivo: Criar Uma Loja De Armas Ou Skins Com Interior E Apertando "F" Para Comprar E Entrar Na Loja Ao Chegar No Pick Up

    1° Escolhendo Interior

    Iremos Começar Do Início Precisamos De Um Local Para O Personagem Entrar Então Iremos atrás De Um Interior que você pode encontrar No Link Abaixo

    Interiores


    Após escolher seu interior iremos por em prática na sua Gamemode, para este tutorial irei pegar uma padrão que todos conhecem que no caso ea prefeitura perto da dp


    [Tutorial] » Loja Avancada Com Interior e Apertando F Attachment   
    [Tutorial] » Loja Avancada Com Interior e Apertando F Attachment   

    Como Pode Ver Na Primeira Imagen O Módulo E

    Nome/ID/ Coordenadas

    Ok, olhou as imagens ? Agora podemos prosseguir..

    2° Pegando Posição De Entrada

    Vamos De Inicio Pegar As Coordenadas Da Entrada Da Prefeitura, Para Isso Basta Você Ir até o local Próximo A Porta E Usar /save Entrada
    ( lembrando que precisa estar em algum serve local host ou qualquer um que seja online )

    Após Fazer isso abra o arquivo

    Documents > GTA San Andreas User Files > SAMP > savedpositions

    Abra o arquivo txt e irá aparecer as coordenadas

    Aqui está as coordenadas que peguei próximo a porta de prefeitura


    AddPlayerClass(23, 1480.9655,-1769.6793,18.7958,0,0,0,0,0,0); // /save

    Estará assim Porém ainda Não Podemos Usar Para Definir Nossa Entrada então faremos o seguinte

    Não Utilizamos
    Utilizamos

    23,1480.9655,-1769.6793,18.7958,0,0,0,0,0,0


    Então após separar os codigos finalmente podemos botar em prática

    Codigo final > 1480.9655,-1769.6793,18.7958

    3° Escolhendo Pickup

    Bom, precisamos criar um Pick Up na entrada e por isso recomendo a usar esse site para escolher seu id..

    Id Dos Pickup

    Bom, Irei Escolher O Id 1318 Que No Caso E aquela Seta Branca

    [Tutorial] » Loja Avancada Com Interior e Apertando F Attachment   

    Ok, tudo pronto escolhemos coordenadas e id do pickup agora vamos por em prática..

    4° Criando Pickup

    Primeiro você localize sua public Gamemode init


    Código:
    Código:
    public OnGameModeInit()
    {
        return 1;
    }


    Como pode ver a public está vazia mas caso já tenha uma não precisa apagar e só adicionar as função na mesma

    Agora iremos criar o Pickup


    Código PHP:
    Código:
    CreatePickup(1318, 1, 1480.9655,-1769.6793,18.7958); 

    Como pode ver colocamos o Id ( 1318)
    E essa são nossas coordenadas ( 1480.9655,-1769.6793,18.7958 )

    No final ira ficar assim...


    Código:
    Código:
    public OnGameModeInit()
    {
        CreatePickup(1318, 1, 1480.9655,-1769.6793,18.7958);
        return 1;
    }

    Após isso seu Pick Up já está criado in game  [Tutorial] » Loja Avancada Com Interior e Apertando F Biggrin agora vamos colocar a função de ao chegar perto dele nos entrar no interior que escolhemos ali em cima..

    5° Definindo Pickup

    Iremos colocar o seguinte código no topo do gm


    Código PHP:
    Código:
    new EntradaPref; 
    [s]
    Agora voltamos na públic Gamemodeinit e faremos o seguinte


    Código:
    Código:
    public OnGameModeInit()
    {
        EntradaPref = CreatePickup(1318, 1, 1480.9655,-1769.6793,18.7958);
        return 1;
    }


    Pronto Nosso Pick Up Está Definido  [Tutorial] » Loja Avancada Com Interior e Apertando F Biggrin

    6° Colocando Ação No Pickup

    Bom Para Isso Usaremos  A Public OnPlayerPickup


    Código PHP:
    Código:
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
        return 1;


    Está aí nossa públic caso não tenha e só copiar e colar no seu gm, agora vamos por em prática..

    Primeiro você irá fazer dessa forma


    Código PHP:
    Código:
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
        if(pickupid == EntradaPref)
        {
            SetPlayerInterior(playerid, 3); 
            SetPlayerPos(playerid, 385.7066,173.7077,1008.3828);
        }
        return 1;


    Aqui colocamos interior 3 que escolhemos no ínicio do tutorial
    EA coordenada que está no site do começo do tutorial...

    Bom, agora você pode entrar no interior [Tutorial] » Loja Avancada Com Interior e Apertando F Biggrin  agora teremos que criar a saída correto ? E quase a mesma coisa...

    Iremos pegar a posição perto da porta com o /save após isso iremos criar um Pickup

    Voltamos novamente na Gamemodeinit e criamos outro Pickup


    Código:
    Código:
    public OnGameModeInit()
    {
        EntradaPref = CreatePickup(1318, 1, 1480.9655,-1769.6793,18.7958);
        SaidaPref = CreatePickup(1318, 1, 389.4673,173.6694,1008.3828);
        return 1;
    }

    Pronto aqui já fui direto e já defini o Pickup então não podemos esquecer de definir ele no topo do gm


    Código PHP:
    Código:
    new EntradaPref;
    new SaidaPref; 

    Definimos Os Pickup Eles Já Estão criados agora vamos definir o Pick para sair da loja


    Código PHP:
    Código:
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
        if(pickupid == EntradaPref)
        {
            SetPlayerInterior(playerid, 3); 
            SetPlayerPos(playerid, 385.7066,173.7077,1008.3828);
        }
        else if(pickupid == SaidaPref)
        {
            SetPlayerInterior(playerid, 0); 
            SetPlayerPos(playerid, 1480.7062,-1766.8220,18.7958);
        }
        return 1;


    Como podem ver setamos o Interior 0 que no caso eo mundo externo
    Ea posição onde ele irá spawn

    OBS: Nunca Esqueça De Colocar O player Pra spawn um pouco a frente do pickup porque se não o personagem fica em um loop infinito entrando e saindo de interior..

    Exemplo se o pickup de entrada estiver  criado em (12345) você não pode colocar o pro player spawn em ( 12345 )

    7° Textlabel

    Já podemos criar a nossa loja mas porém detalhes nunca e d+ né então para deixar um pouco mais daorinha iremos criar um text3d que no caso seria um texto 3d

    Bom, para criar usaremos a Gamemodeinit também fazermos da seguinte forma



    Código PHP:
    Código:
    Create3DTextLabel(" texto\n texto",cor, Coordenadas, 20, 0); 

    Isso ea base do Textlabel

    Bom, como pode ver as coordenadas nos já temos agora precisamos de uma cor que você pode escolher uma nesse site...

    Cores Aqui

    Após escolher sua cor vamos por em prática

    Nas coordenadas iremos colocar a entrada da prefeitura que no caso ea

    Código PHP:
    Código:
    1480.9655,-1769.6793,18.7958 

    Então nosso código ficara assim


    Código PHP:
    Código:
    Create3DTextLabel(" texto\n texto",cor, 1480.9655,-1769.6793,18.7958, 20, 0); 

    Já o texto você pode colocar do jeito mas irei colocar um de exemplo

    Código PHP:
    Código:
    Create3DTextLabel(" Entrada\n Loja De Armas",cor, 1480.9655,-1769.6793,18.7958, 20, 0); 

    Bom, ficara assim mas ainda falta a Cor, Irei Escolher Uma Mas Você Pode escolher qualquer uma de sua preferência...

    Mas irei fazer de uma forma diferente irei definir uma cor..

    No topo do gm junto com as new

    Irei colocar
    Código PHP:
    Código:
    #define azul 0x46A3FFFF 

    No final ficara assim

    Código PHP:
    Código:
    new EntradaPref;
    new SaidaPref;
    #define azul 0x46A3FFFF 

    Após isso irei deixar o código desse jeito..

    Código PHP:
    Código:
    Create3DTextLabel(" Entrada\n Loja De Armas",azul 1480.9655,-1769.6793,18.7958, 20, 0); 

    Prontinho, agora iremos fazer isso com a outra Pick Up no caso a de dentro da prefeitura..

    No mesmo local da públic Gamemodeinit

    Código PHP:
    Código:
    Create3DTextLabel(" Saida\n Loja De Armas",azul 389.4673,173.6694,1008.3828, 20, 0); 

    Pronto, agora o código final ficara dessa maneira

    Código:
    Código:
    public OnGameModeInit()
    {
        EntradaPref = CreatePickup(1318, 1, 1480.9655,-1769.6793,18.7958);
        SaidaPref = CreatePickup(1318, 1, 389.4673,173.6694,1008.3828);
        Create3DTextLabel(" Entrada\n Loja De Armas",azul 1480.9655,-1769.6793,18.7958, 20, 0);
        Create3DTextLabel(" Saida\n Loja De Armas",azul 389.4673,173.6694,1008.3828, 20, 0);
        return 1;
    }

    7° Ícones No mapa

    Bom, agora iremos colocar um ícone no mini mapa para isso usaremos

    Código PHP:
    Código:
    SetPlayerMapIcon(playerid, iconid, coord, markertype, color); 

    playerid: Deixe sempre assim quer dizer que é pra mostrar o ícone para o id do player que conectar.

    iconid: Como esse é o primeiro ícone que você esta colocando, então coloque 1 no proximo 2 e no depois deste 3 e assim adiante...

    Coord: As coordenadas de onde vai ficar o ícone

    markertype: O id do ícone que você vai por que está na imagem mostrada acima.
    color: A Cor do ícone(nuca consegui mudar a cor então deixe 0 mesmo).

    Então vamos lá, iremos pegar um id

    [Tutorial] » Loja Avancada Com Interior e Apertando F Attachment   

    Escolhi o id 6 pois nossa loja será de armar então vamos lá..


    Código PHP:
    Código:
    SetPlayerMapIcon(playerid, iconid, coord, 6, 0); 

    Agora iremos escolher o local de entrada da loja de armas que no caso pref

    Código PHP:
    Código:
    SetPlayerMapIcon(playerid, 1, 1480.9655,-1769.6793,18.7958, 6, 0); 

    Nosso código está pronto agora iremos colocar na public OnPlayerConnect

    Código PHP:
    Código:
    public OnPlayerConnect(playerid)
    {
        SetPlayerMapIcon(playerid, 1, 1480.9655,-1769.6793,18.7958, 6, 0);
        return 1;



    Prontinho está tudo feito


    8° Criando O Painel De Compras

    iremos criar em dialog pois e mais facil de voces entender..

    Código PHP:
    Código:
    ShowPlayerDialog(playerid, 2500, DIALOG_STYLE_LIST, "Loja De Armas", " Ak47 \nMp5 ", "Selecionar", "Fechar"); 

    usaremos o  ShowPlayerDialog para ativar a dialog entao no caso

    2500 = Id da dialog ( sempre coloque id diferentes pra cada dialog )

    DIALOG_STYLE_LIST = Estilo de dialog ( No caso usaremos clicavel )

    Loja De Armas = Titulo da dialog

    Ak47 = item 1

    mp5 = item 2

    bom ja temos a base agora vamos colocar a funcao de comprar armas

    iremos localizar a public OnDialogResponse caso voce nao tiver basta adicionar em sua gm

    Código PHP:
    Código:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        return 1;


    e iremos fazer o seguinte

    Código PHP:
    Código:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
     if(dialogid == 0)
     {
     if(response)
     {
     if(listitem == 0) //Ao clicar no primeiro item
            {

             }
             if(listitem == 1) //Ao clicar no segundo item
             {

             }
             if(listitem == 2) //Ao clicar no segundo item
             {

             }
     }
     }
     return 1;



    Agora Irei Explicar Cada Linha

    if(dialogid == 0) > Aqui Iremos Colocar A ID Da Nossa Dialog ( No Caso Escolhemos 2500 Ali Em Cima )

    if(listitem == 0) //Ao clicar no primeiro item
            {

             }

    Bom Temos Aqui o Primeiro Item E Abaixo As Chaves Onde Nos Ira Colocar Para Setar Arma Ao Player

    entao vamos por partes

    item 1 sera nossa ak47

    entao usaremos

    Código PHP:
    Código:
    if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, -1, "Voce nao tem R$100 Para Comprar Essa Arma."); 

    Sera usado para verificar se o player tem dinheiro o suficiente, esse codigo e meio auto explicativo

    Código PHP:
    Código:
    GivePlayerMoney(playerid, -100); 

    usaremos essa funcao para cobrar 100 reais ao player por isso sempre deixe -100

    Código PHP:
    Código:
    GivePlayerWeapon(playerid, 30, 50); 

    aqui usaremos a funcao para setar a arma ao player sendo 30 o id da arma e 50 a quantidade de ballas

    Código PHP:
    Código:
    SendClientMessage(playerid, azul, "Compra Efetuada"); 

    E Por Ultimo Uma Mensagem...

    entao no final ficara assim

    Código PHP:
    Código:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
     if(dialogid == 0)
     {
     if(response)
     {
     if(listitem == 0) //Ao clicar no primeiro item
            {
        if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, -1, "Voce nao tem R$100 Para Comprar Essa Arma.");
        GivePlayerMoney(playerid, -100);
        GivePlayerWeapon(playerid, 30, 50);
        SendClientMessage(playerid, azul, "Compra Efetuada");

             }
             if(listitem == 1) //Ao clicar no segundo item
             {

             }
     }
     }
     return 1;


    Criamos a acao da ak47 agora iremos colocar a mp5 ea mesma coisa so muda o id da arma

    Código PHP:
    Código:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
     if(dialogid == 0)
     {
     if(response)
     {
     if(listitem == 0) //Ao clicar no primeiro item
            {
                 if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, -1, "Voce nao tem R$100 Para Comprar Essa Arma.");
                 GivePlayerMoney(playerid, -100);
                 GivePlayerWeapon(playerid, 30, 50);
                 SendClientMessage(playerid, azul, "Compra Efetuada");
             }
             if(listitem == 1) //Ao clicar no segundo item
             {
                 if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, -1, "Voce nao tem R$100 Para Comprar Essa Arma.");
                 GivePlayerMoney(playerid, -100);
                 GivePlayerWeapon(playerid, 29, 50);
                 SendClientMessage(playerid, azul, "Compra Efetuada");
             }
     }
     return 1;


    Pronto criamos a funcao agora vamos colocar para abrir a dialog apertando F

    agora va ate o lugar onde voce quer que o player aperta F e use /save apos isso crie um pickup no local apos isso

    Localize a Public OnPlayerKeyStateChange Caso Nao Tiver Em Seu GM Basta Criar Uma

    Código PHP:
    Código:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
     return 1;


    Iremos fazer o seguinte

    Código PHP:
    Código:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
        if(newkeys == 16)//se apertar f ou enter
        {
            if(IsPlayerInRangeOfPoint(playerid, 3.0, coordenadas))//Verifica se esta na coordenada escolhida
            {
                ShowPlayerDialog(playerid, 2500, DIALOG_STYLE_LIST, "Loja De Armas", " Ak47 \nMp5 ", "Selecionar", "Fechar");
            }
     }
     return 1;


    FIM

    Entao e isso esta feito. Esse Eo Primeiro Tutorial Que Fiz Entao Se Estiver Algo Errado Pode Estar Avisando Que Irei Corrigir E Caso Tiver Duvidas Irei Respoder Sem Problemas  [Tutorial] » Loja Avancada Com Interior e Apertando F Biggrin Espero Ter Ajudado
    Creditos: SrGhost_



    [Tutorial] » Loja Avancada Com Interior e Apertando F D07Xwqb
    [Tutorial] » Loja Avancada Com Interior e Apertando F Yjab9HN

      Data/hora atual: Qui 28 Mar 2024 - 8:28