16/10/2020 02:59
(Esta mensagem foi modificada pela última vez a: 17/10/2020 00:50 por SrGhost_.)
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
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
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
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
Como pode ver colocamos o Id ( 1318)
E essa são nossas coordenadas ( 1480.9655,-1769.6793,18.7958 )
No final ira ficar assim...
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
[s]
Agora voltamos na públic Gamemodeinit e faremos o seguinte
Pronto Nosso Pick Up Está Definido
6° Colocando Ação No Pickup
Bom Para Isso Usaremos A Public OnPlayerPickup
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
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
Pronto aqui já fui direto e já defini o Pickup então não podemos esquecer de definir ele no topo do gm
Definimos Os Pickup Eles Já Estão criados agora vamos definir o Pick para sair da loja
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
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
Então nosso código ficara assim
Já o texto você pode colocar do jeito mas irei colocar um de exemplo
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
No final ficara assim
Após isso irei deixar o código desse jeito..
Prontinho, agora iremos fazer isso com a outra Pick Up no caso a de dentro da prefeitura..
No mesmo local da públic Gamemodeinit
Pronto, agora o código final ficara dessa maneira
7° Ícones No mapa
Bom, agora iremos colocar um ícone no mini mapa para isso usaremos
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
Escolhi o id 6 pois nossa loja será de armar então vamos lá..
Agora iremos escolher o local de entrada da loja de armas que no caso pref
Nosso código está pronto agora iremos colocar na public OnPlayerConnect
Prontinho está tudo feito
8° Criando O Painel De Compras
iremos criar em dialog pois e mais facil de voces entender..
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
e iremos fazer o seguinte
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
Sera usado para verificar se o player tem dinheiro o suficiente, esse codigo e meio auto explicativo
usaremos essa funcao para cobrar 100 reais ao player por isso sempre deixe -100
aqui usaremos a funcao para setar a arma ao player sendo 30 o id da arma e 50 a quantidade de ballas
E Por Ultimo Uma Mensagem...
entao no final ficara assim
Criamos a acao da ak47 agora iremos colocar a mp5 ea mesma coisa so muda o id da arma
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
Iremos fazer o seguinte
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
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
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
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()
{
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:
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()
{
CreatePickup(1318, 1, 1480.9655,-1769.6793,18.7958);
return 1;
}
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()
{
EntradaPref = CreatePickup(1318, 1, 1480.9655,-1769.6793,18.7958);
return 1;
}
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)
{
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:
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 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()
{
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:
new EntradaPref;
new SaidaPref;
Definimos Os Pickup Eles Já Estão criados agora vamos definir o Pick para sair da loja
Código PHP:
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:
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;
new SaidaPref;
#define azul 0x46A3FFFF
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()
{
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:
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
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)
{
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:
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[])
{
return 1;
}
e iremos fazer o seguinte
Código PHP:
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:
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[])
{
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:
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:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
Iremos fazer o seguinte
Código PHP:
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 Espero Ter Ajudado