vehicle++; } } if(!vehicle) SendClientMessage(playerid, COLOR_GREY, "Você não possui veículos em sua residência."); else ShowPlayerDialog(playerid, DIALOG_INVENTORY3, DIALOG_STYLE_LIST, "Veículos na residência", string, "Fechar", ""); }
Todos os veículos que tiver com player_car_house[playerid][slot] definido com numero da casa tem que aparece na lista, mais do jeito que esta mostra apenas o primeiro, o que devo fazer?
Coloquei no timer de 30 segundos o codigo abaixo, apos 30 segundos se o jogador tiver dentro da casa e for o dono senta a chave dele pra o numero da casa assim entregando a chave da casa:
Citar: for(new h = 0; h < MAX_HOUSES; ++h)
{
if(PlayerToPoint(30.0, i, HouseInfo[h][hExitx], HouseInfo[h][hExity], HouseInfo[h][hExitz]) && HouseEntrance[i] == h)
{
if(!strcmp(Name(i), HouseInfo[h][hOwner], false)) PlayerInfo[i][pPhousekey] = h;
}
}
ALS HOOK's
Bom, até onde consegui pesquisar o ALS (Advanced Library System) basicamente determina que uma função já foi registrado/fisgado. Essa técnica até onde tenho conhecimento aproveita do pre-processamento do compilador através de suas diretivas que fazem que o processamento ocorra de forma especial gerando uma outra linha de processamento.
COMO FUNCIONA
O gancho é feito fazendo com que uma função chame outra função aparentemente com o mesmo nome, "encadeando" todas essas funções idênticas, de modo que chamar uma chama todas elas. Ao conectar funções, isso é fácil porque a cadeia chama a função anterior com o mesmo nome; no entanto, conectar retornos de chamada é complicado pelo fato de que a cadeia chama a próxima função com o mesmo nome - uma função que ainda não foi definida e pode nem existir.
MACROS
Um macro é uma sequência de instruções que é atribuída a um nome. Os macros são usados para automatizar tarefas repetitivas.
DIRETIVAS
As diretivas são comandos especiais que são processados pelo compilador antes de compilar o código-fonte.
LISTA DE DIRETIVAS:
#define: Define uma constante no código.
#if, #else, #endif: São usados para condicionalmente compilar parte do código, dependendo de se uma condição é verdadeira ou falsa.
#undef: Ela desfaz a definição de uma constante de uma #define.
OBSERVAÇÕES
1. Achei pouco conteúdo sobre na internet, se houver algum erro me corrija.
2. Ao declarar um ALS é extremamente necessário que ele esteja sendo chamado caso contrário ele pode, dar conflito e assim ele não carregará os outros módulo
3. Infelizmente o compilador não possui suporte para um limite de 31 caracteres em definições de variáveis e funções, caso aconteça esse aviso na hora de compilar utilize o código abaixo:
Código PHP:
#pragma warning disable 230
COMO UTILIZAR O ALS
Tendo em mente as observações citadas acima, vamos aplicar o ALS em prática, o código a seguir representa o uso do ALS com Callbacks:
1. Crie uma pasta chamada: "modules" e dentro dessa pasta adicione um arquivo chamado: "ALS.inc", após isso coloque o código abaixo dentro desse arquivo.
Código PHP:
public OnPlayerConnect(playerid) { print("ALS in Callbacks, teste"); #if defined HOOK_OnPlayerConnect return HOOK_OnPlayerConnect(players); #else return 1; #endif }
#if defined _ALS_OnPlayerConnect #undef OnPlayerConnect #else #define _ALS_OnPlayerConnect #endif #define OnPlayerConnect HOOK_OnPlayerConnect #if defined HOOK_OnPlayerConnect forward HOOK_OnPlayerConnect(playerid); #endif
2. Após isso, dentro do arquivo principal que se encontra em: "gamemodes/main.pwn". Adicione o código abaixo para incluir o arquivo que possui o método de ALS, assim ele será executado quando compilado o arquivo principal.
Boa tarde. Estou criando um sistema de casas e gostaria de adicionar alguns comandos e texdraw dentro dos interiores, como por exemplo um comando /geladeira (Ou algo parecido). Um outro exemplo é as lojas 24/7, onde individualmente criei um TextDraw em cada virtual world das lojas, o porém é que não são muitas, já as casas que estou criando serão centenas de Virtual world, e eu gostaria de saber de algum sistema que reproduza o mesmo comando (TextDraw também) em vários virtual world com poucas linhas...
Olá pessoal, sou novato na area estou aprendendo ainda, queria saber como faço pra deixar os carros das profissões só pra quem trabalha na profissão, e aparecer a mensgem exemplo:
Isso serve pra você monitorar o progresso dos jogadores com as armas, se por ventura alguém tiver fazendo um TDM onde os jogadores tem que upar as armas isso vai servir pra você, pra chegar no nível hitman do jeito que eu fiz ou você salva o progresso de cada arma do zero até o 999 ou deixa do jeito que fiz no on player death onde os jogadores devem ter 36 kills em cada arma pra chegar no nível hitman, como da pra burlar isso usando cleo sempre que o jogador entrar no servidor somente uma vez ele vai ser reportado sempre que tentar se mover enquanto atira, sem o nível hitman tirando a sawnoff e as armas pesadas você não pode se mover enquanto atira, quem tiver de tv no jogador observe a animação do ped.
Pistola de duas mãos somente hitman 999 abaixo disso o jogador ta xitado
Desert eagle andar e atirar ao mesmo tempo somente no nível hitman abaixo disso o jogador ta xitado
Ak47 e M4 ped com a arma no ombro 200 pra cima andar e atirar 999 abaixo disso o jogador ta xitado
Shotgun arma no ombro 200 abaixo disso o jogador ta xitado, sawnoff duas mãos somente hitman
MP5 arma no ombro 250 abaixo disso o jogador ta xitado, andar e atirar somente nível hitman
UZI e TEC9 compartilham o mesmo id atirar com as duas mãos somente nível hitman