[Tutorial] Loja Avancada Com Interior e Apertando F - Versão de Impressão +- Portal SAMP (https://portalsamp.com) +-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5) +--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7) +--- Tópico: [Tutorial] Loja Avancada Com Interior e Apertando F (/showthread.php?tid=137) |
Loja Avancada Com Interior e Apertando F - SrGhost_ - 16/10/2020 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 [attachment=3] [attachment=4] 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 [attachment=5] 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: public OnGameModeInit() 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: 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: public OnGameModeInit() Após isso seu Pick Up já está criado in game 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: new EntradaPref; Agora voltamos na públic Gamemodeinit e faremos o seguinte Código: public OnGameModeInit() Pronto Nosso Pick Up Está Definido 6° Colocando Ação No Pickup Bom Para Isso Usaremos A Public OnPlayerPickup Código PHP: public OnPlayerPickUpPickup(playerid, pickupid) 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: public OnPlayerPickUpPickup(playerid, pickupid) 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 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: public OnGameModeInit() 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: new EntradaPref; Definimos Os Pickup Eles Já Estão criados agora vamos definir o Pick para sair da loja Código PHP: public OnPlayerPickUpPickup(playerid, pickupid) 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: 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: 1480.9655,-1769.6793,18.7958 Então nosso código ficara assim Código PHP: 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: 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: #define azul 0x46A3FFFF No final ficara assim Código PHP: new EntradaPref; Após isso irei deixar o código desse jeito.. Código PHP: 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: 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: public OnGameModeInit() 7° Ícones No mapa Bom, agora iremos colocar um ícone no mini mapa para isso usaremos Código PHP: 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 [attachment=6] Escolhi o id 6 pois nossa loja será de armar então vamos lá.. Código PHP: SetPlayerMapIcon(playerid, iconid, coord, 6, 0); Agora iremos escolher o local de entrada da loja de armas que no caso pref Código PHP: 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: public OnPlayerConnect(playerid) Prontinho está tudo feito 8° Criando O Painel De Compras iremos criar em dialog pois e mais facil de voces entender.. Código PHP: 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: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) e iremos fazer o seguinte Código PHP: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) 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: 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: GivePlayerMoney(playerid, -100); usaremos essa funcao para cobrar 100 reais ao player por isso sempre deixe -100 Código PHP: 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: SendClientMessage(playerid, azul, "Compra Efetuada"); E Por Ultimo Uma Mensagem... entao no final ficara assim Código PHP: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) Criamos a acao da ak47 agora iremos colocar a mp5 ea mesma coisa so muda o id da arma Código PHP: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) 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: public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) Iremos fazer o seguinte Código PHP: public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) 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 Espero Ter Ajudado RE: Loja Avancada Com Interior e Apertando F - NelsonC. - 16/10/2020 Bom tutorial, mas dá para melhorar bastante e também não vejo nada avançado nisso. Você poderia fazer o sistema dinâmico, criando / editando in-game. RE: Loja Avancada Com Interior e Apertando F - Silva - 16/10/2020 SetPlayerMapIcon não vai em OnGameModeInit. RE: Loja Avancada Com Interior e Apertando F - SrGhost_ - 17/10/2020 (16/10/2020 22:22)Silva Escreveu: SetPlayerMapIcon não vai em OnGameModeInit. Putz Cara E Verdade.. Fica Na public OnPlayerConnect Irei Corrigir... RE: Loja Avancada Com Interior e Apertando F - Hazard - 17/10/2020 se vocês usam streamer, é só usar isso Código: CreateDynamicMapIcon(Float:x, Float:y, Float:z, type, color, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_MAP_ICON_SD, style = MAPICON_LOCAL, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0) RE: Loja Avancada Com Interior e Apertando F - Smith - 06/11/2020 Poderia ser em textdraw RE: Loja Avancada Com Interior e Apertando F - rafaelkkxj - 24/01/2024 eae irmãzinho poderia me ajudar?
samp037_svr_R2-2-1_win32\gamemodes\tst.pwn(230) : error 017: undefined symbol "coordenadas" sempre quando vou compilar aparece esse erro, me ajuda pfvv RE: Loja Avancada Com Interior e Apertando F - Aranha - 24/01/2024 (24/01/2024 15:27)rafaelkkxj Escreveu: Qual quer duvida crie um topico nesta aba https://portalsamp.com/forumdisplay.php?fid=6 |