Olá, hoje me encontro com o nome Pontes, mas já fui encontrado como zHypezinXzl e Y-Hypezin. E hoje trago aqui uma include que seria uma junção de todas outras includes que já fiz, essa include tem como finalidade extender as funções do SAMP nos seguintes seguimentos:
SKIN
CAMERA 1° PESSOA
MATEMATICA
ARQUIVOS
e fazer a adição do seguimento:
CORTINA
Vou trazer algumas informações sobre cada um desses seguimentos, mas não darei muitos exemplos de uso pois deixarei esses exemplos para a WIKI no tópico do github.
ENTÃO VAMOS LÁ
1. SKIN
as novas funções relacionadas as SKINS envolverão conseguir pegar o Nome, Gênero, Local, Modelo e Existência. Contando assim com as funções:
- IsValidSkinID - verifica se a skin existe
- GetSkinName - obtém o nome da skin
- GetSkinModelName - obtém o nome do modelo da skin
- GetSkinSex - obtém o gênero da skin
- GetSkinSexName - obtém uma string com o nome do gênero
- GetSkinLocal - obtém o local da skin
- GetSkinLocalName - obtém uma string com o nome do local onde a skin aparece
Caso queira trocar os nomes do gênero use o seguinte código acima da definição da include:
Código:
// Padrão: "Male"
#define EXT_SKIN_SEX_MALE_NAME "Homem"
// Padrão: "Female"
#define EXT_SKIN_SEX_FEMALE_NAME "Mulher"
#include <a_extensions>
OBS: Referente ao nome das skins algumas delas podem ter nomes com numeração por exemplo paramedic, paramedic2, paramedic3 e por ai vai. Isso ocorre pela skin não fazer parte de nenhuma missão do jogo, então seu nome não tem tanta importância para o jogo, como o CJ, Ryder, Big Smoke e outros.
2. CÂMERA 1° PESSOA
as novas funções relacionadas a Câmera em 1° pessoa envolverão conseguir Definir a câmera do jogador em 1° pessoa, Cancelar a câmera em 1° pessoa, Verificar se o jogador está em 1°pessoa e Editar a posição dessa câmera. Contando assim com as funções:
- ResetCamPosFirstPersonPlayer - volta as configurações da câmera para o padrão.
- SetCamPositionFirstPersonPlayer - configura a posição da câmera em 1° pessoa do jogador.
- SetCamFirstPersonPlayer - define a câmera do jogador para 1° pessoa.
- CancelCamFirstPersonPlayer - volta o jogador ao estado espectro, ou a 3° pessoa.
- IsCamFirstPersonPlayer - verifica se o jogador está com câmera em 1° pessoa.
3. MATEMÁTICA
as novas funções relacionadas a Matemática envolverão conseguir Número aleatório de N° a N° sendo positivo ou negativo(randomex só que melhorado podendo conter números negativos), potência de um número elevado a outro, Raiz quadrada, Resto raiz quadrada, e raiz sobre potência. Contando assim com as funções:
- MathRandomEx - escolhe um número aleatório de N° a N°. ex: (-15, 30) escolheu -2
- MathPow - faz a potência de um número pelo seu expoente N°^N°. ex: (5, 2) = (5.5) = 25
- MathSqRoot - pega a raiz potencial de um número. (500, 2) = (√500) = 22
- MathSqRootRest - pega o resto da raiz potencial de um número. (500, 2) = (22^2) = (500 - 484) = (√16) = 4
4. ARQUIVO
as novas funções relacionadas a Arquivos envolverão conseguir Manipular arquivos e armazenar valores em keys(dini com ping melhorado e estável), além de funções uteis como "fclear" que limpa todo conteúdo do arquivo ou "fsetstring" que pode inserir textos dentro de um arquivo sem precisar de uma key muito útil para logs. Com essas informações vamos ver todas funções:
- fcreate - cria uma arquivo
- frename - renomeia um arquivo
- fcopy - copia um arquivo
- fbackup - faz um backup do arquivo
- fclear - limpa o conteúdo do arquivo
- fsetstring - adiciona uma string no arquivo
- fgetstring - pega uma string no arquivo
- fgetlines - pega o número de linhas que o arquivo contém
- fkeyexist - verifica se um KEY existe
- fkeyrename - renomeia uma KEY
- fkeyremove - remove a KEY
- fgetkeystringex - armazena o conteúdo de uma KEY em uma variável (format)
- fsetkeystring - adiciona uma string no conteúdo de uma KEY
- fsetkeyinteger - adiciona um número no conteúdo de uma KEY
- fsetkeyfloating - adiciona uma float no conteúdo de uma KEY
- fsetkeyboolean - adiciona um booleano no conteúdo de uma KEY
- fgetkeystring - obtém a string do conteúdo de uma KEY
- fgetkeyinteger - obtém o número do conteúdo de uma KEY
- fgetkeyfloating - obtém a float do conteúdo de uma KEY
- fgetkeyboolean - obtém o booleano do conteúdo de uma KEY
Caso necessite trocar o tamanho que o nome do arquivo pode conter ou quantos caracteres as funções podem trabalhar use o seguinte código acima da definição da include:
Código:
// Padrão: 64
#define EXT_MAX_FILE_NAME (100)
// Padrão: 256
#define EXT_MAX_FILE_CHARS (500)
#include <a_extensions>
OBS: Caso você for trabalhar com armazenamento de strings grandes possa ser que seja necessário usar o código acima pois as funções não trabalham com string maiores que os definidos
5. CORTINA
O novo seguimento Cortina adicionará uma capacidade de "apagar" a tela do jogar e "acender" novamente, esse sistema é muito similar quando o jogador morre no modo História, escurecendo aos poucos a tela do jogador e ascendendo novamente quando ele aparece no hospital. As funções que ele ira contar são: Mostrar a cortina ao jogador, Verificar se o jogador está com a cortina, Remover a cortina de forma forçada da tela do jogador, e callbacks de acionamento capazes de ajudar no código do desenvolvedor. Com essas informações vamos ver tudo que será proporcionado:
- ShowPlayerCurtain - mostra a cortina para o jogador (a cortina é removida automaticamente após o fim da animação
- HidePlayerCurtain - remove de forma forçada a cortina do jogador
- IsCurtainExists - verifica se a cortina existe
CALLBACKS:
- OnPlayerUpdateCurtain - acionada toda vez que a opacidade da cortina muda (de 0 a 255)
- OnPlayerCurtainClosed - acionada quando a cortina estiver cobrindo totalmente a luz (tela escura)
COMENTÁRIOS:
Citar:yPontes: agradeço ao @pushiline por sua contribuição com a adaptação da include para OPEN.MP
OBS: quando é dito cortina não significa que ira aparecer uma cortina literal na tela do jogador, apenas a tela do jogador ficará escura como se a luz da janela não chegasse a pessoa.
Talvez essa seja uma das ultimas contribuições(se não a ultima) para a comunidade.
Código:
.o. .
.888. .o8
.8"888. .o888oo .ooooo.
.8' `888. 888 d88' `88b
.88ooo8888. 888 888ooo888
.8' `888. 888 . 888 .o
o88o o8888o "888" `Y8bod8P'