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!
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.


2 resultados encontrados para includes

Weslley_Script

[Tutorial] Como criar um sistema de nível - Ter 25 Abr 2023 - 13:42

Bem, meu primeiro tutorial aqui no forum samp, intгo se eu fizer algo errado me desculpe xD

primeiro Devemo Adicionar a Include DINI Usada para Salvar o Level (na Pasta Script Files)
Ao topo do Game Mode:
Код:

Código:
#include <dini>

Agora Devemos Adicionar como Forwards (embaixo das #includes)
Код:
Código:
encaminhar LevelDrakeZ(playerid);
forward LevelDrakeZ -->> Declara a Public que Logo Criaremos



Agora em OnPlayerConnect
Код:
Código:
if (dini_Isset("scores.ini",PlayerName(playerid))) SetPlayerScore(playerid,dini_Int("scores.ini",PlayerName(playerid)));
para Carregar o Score de Imediato ao Conectar jб


Adicione no Final do GM nas Publics
Код:
Código:
public LevelDrakeZ(playerid)
{
SetTimer("LevelDrakeZ",60*60*1000,false);
SetPlayerScore(playerid, GetPlayerScore(playerid) + 1);
SendClientMessage(playerid,COR AQUI,"Você Upou seu nível Parabens.");
}
SendClientMessage --> Envia Mensagem ao Upar um Level/Score
COR AQUI -->> Você vai colocar a cor que você quer
SetPlayerScore(playerid, GetPlayerScore(playerid) + 1); -->> Seta 1 Level/Score
SetTimer -->> A Cada Quanto Tempo o Player Upara
60*60 --> a Cada 1 hora no caso



Agora em OnPlayerDisconnect:
Код:
Código:
dini_IntSet("scores.ini",PlayerName(playerid),GetPlayerScore(playerid));

IrÁ Salvar quando o jogador desconectar


Agora em OnGameModeInit:
Код:
Código:
if (!fexist("scores.ini")) dini_Create("scores.ini");
dini_Create("scores.ini"); -- Criar o Arquivo



Agora em OnPlayerCommandText:
Код:
Código:
if (!strcmp(cmdtext,"/score",true))
{
novo stringdrake[255];
format(stringdrake, sizeof(stringdrake), "Score Atual Seu é de %i",GetPlayerScore(playerid));
SendClientMessage(playerid, COR AQUI, stringdrake);
retornar 1;
}

if(!strcmp(cmdtext,"/score",true)) -->> Comando
Score Atual Seu é de %i",GetPlayerScore(playerid)); -->> Mostra Score ao Player ao Digitar /score
SendClientMessage(playerid , COLOR_ORANGE, string); -->> Envia Mensagem Cor Laranja


No Final Bem la No Final
Код:
Código:
stock PlayerName(playerid) {
 new PlayerName[MAX_PLAYERS];
GetPlayerName(playerid, PlayerName, MAX_PLAYERS);
return NomeDoJogador;
}

Serб Usado para Declarar "PLAYERNAME"

Precisa da Include Dini para Salvar e Funcionar Corretamente

Tutorial й este pessoal do fórum sa-mp tchau!

Creditos: DrakeZ

Weslley_Script

[Tutorial] Programação modular - Sex 14 Abr 2023 - 18:41

Programação Modular


O programa modular, também conhecido por Modularidade é um conceito onde o sistema ou software é dividido em partes distintas. O conceito de modularidade passa por criar módulos com funções diferentes e usar um módulo principal, por exemplo:
Código PHP:

Código:
Soma(x,y) return printf("%d + %d = %d",x,y,(x+y));
Divisao(x,y) return printf("%d/%d = %d",x,y,(x/y));
Multiplicao(x,y) return printf("%d*%d = %d",x,y(x*y));
Subtracao(x,y) return printf("%d-%d = %d",x,y,(x-y));
main()
{
    Soma(2,5);
    Divisao(2,5);
    Multiplicao(2,5);
    Subtracao(2,5);



Neste exemplo já podemos verificar a existência da modularidade, ou seja, nуs criamos funзхes responsбveis por tarefas ou algoritmos, em vez de colocarmos tudo em uma sу parte nуs separamos em pequenas partes e depois juntamos tudo.

Com isto deu-se a criação de bibliotecas, as tais famosas #includes, fazendo com que cada biblioteca fosse responsável por uma determinada tarefa. Já quando nуs programa-mos peão temos tendкncia a escrever um cуdigo em apenas um arquivo eo que acontece й que ele torna-se grande e nуs a fim-nos por perder no meio do cуdigo em si.

As pessoas que usam a modularidade podem-se dizer que são pessoas mais organizadas, pessoas que se preocupam com a estética do código e preocupam-se em não se perder no meio do oceano. Isto porque se separar-mos tudo é mais fácil encontrar algo e esse algo por vezes pode ser um bug.

Um exemplo da programação modular é o Paradise City RPG , o Lуs desenvolveu o gamemode em mуdulos tornando o mesmo bastante organizado e fбcil de outros entenderem, no caso de haverem mais developers claro.

Tópicos com a tag includes em SSGamers - 12 Anos online por você. Rq59PXL

A ideia de como dividir o gamemode em mуdulos depende BASTANTE de cada um e nгo existe uma regra global, eu duvidosamente dividido por sistemas, ou seja, se for o sistema de carros й uma coisa, casa outra, jogador outra, por ai a diante .

Agora claro existem questхes tйcnicas como por exemplo, tenho de definir as includes em todos os mуdulos? Nгo.

Para que nгo saiba a funзгo #include serve apenas para incluir o cуdigo em determinado cуdigo ou seja
calculos.inc
Código PHP:

Código:
Soma(x,y) return printf("%d + %d = %d",x,y,(x+y));
Divisao(x,y) return printf("%d/%d = %d",x,y,(x/y));
Multiplicao(x,y) return printf("%d*%d = %d",x,y(x*y));
Subtracao(x,y) return printf("%d-%d = %d",x,y,(x-y)); 


calcular.pwn
Código PHP:

Código:
#include <calculos.inc>
main()
{
    Soma(2,5);
    Divisao(2,5);
    Multiplicao(2,5);
    Subtracao(2,5);



Realidade:
Código PHP:

Código:
Soma(x,y) return printf("%d + %d = %d",x,y,(x+y));
Divisao(x,y) return printf("%d/%d = %d",x,y,(x/y));
Multiplicao(x,y) return printf("%d*%d = %d",x,y(x*y));
Subtracao(x,y) return printf("%d-%d = %d",x,y,(x-y));
main()
{
    Soma(2,5);
    Divisao(2,5);
    Multiplicao(2,5);
    Subtracao(2,5);



Isso é o que acontece quando se usa o #include, então vamos agora à pergunta em si.

Quando criamos módulos não é necessário estar a incluir os mesmos includes, o que devemos fazer é incluir as includes principais no arquivo principal (main.pwn) e depois incluir os módulos
Código PHP:

Código:
#include <a_samp>
#include <sscanf>
#include <zcmd>
//etc..
//mуdulos
#include "modulos/player.pwn"
#include "modulos/vehs.pwn"
#include "modulos/props.pwn"
//etc.. 


O que acontece é que o cуdigo juntará tudo e como sabemos os compiladores funcionam de cima para baixo, então eles iram definir o que é necessário em baixo.

Então mas e as callbacks do sa-mp, precisa de fazer hook? Não necessariamente.

À um tempo atrés eu tive uma conversa com o y_less sobre usar o Hook Method 7 e fazer a chamada normal das callbacks, então ele disse-me que para fazer a chamada normal das callbacks requere disciplina, ou seja, é necessário saber o que se esta a fazer para nгo causar problemas no script e segundo ele o y_hooks e os hook methods foram desenvolvidos para trabalharem em transparкncia, ou seja, eles redefinem as callbacks afim do outro programador nгo se esquecer de fazer a chamada.
Citar:

Postado originalmente por Y_Less
Quero dizer, se você estiver explicitamente chamando retornos de chamada em outros arquivos, lembre-se de fazê-lo. Hooks foram desenvolvidos como a maioria dos includes usados ​​para declarar algo como:

Citar:


Para usar esta inclusão, adicione "Inc_OnPlayerConnect(playerid);" para "OnPlayerConnect" e "Inc_OnPlayerDisconnect (playerid, razão);" para "OnPlayerDisconnect".

[size]

Isso era pesado, frequentemente ignorado e a principal fonte de bugs no uso deles pela maioria das pessoas. Ganchos foram desenvolvidos para fazer isso de forma transparente.
[/size]

Um exemplo de chamada é o seguinte:
main.pwn
Código PHP:

Código:
public OnPlayerConnect(playerid)
{
    player_OnPlayerConnect(playerid); //chama o mуdulo player.pwn
    return 1;



jogador.pwn
Código PHP:

Código:
public player_OnPlayerConnect(playerid)
{
    //login / registro
    return 1;



O que acontece é que nós chama-mos a nossa função personalizada a partir da função "mée" é como estávamos-mos a criar uma árvore onde existem o pai e os filhos. Na minha opinião não existe nenhuma necessidade de usar y_hooks ou qualquer mйtodo hooks ao desenvolver um gamemode em mуdulos isto porque sendo o programador o ъnico desenvolvedor ou a equipa os ъnicos nгo existe necessidade de trabalhar nessa transparкncia pois ambos tкm conhecimento do que estгo a fazer e por sua vez nгo se irгo esquecer de ligar o pai а filho.

Isto também é um método bastante usado no LS-RP, por exemplo, eles quando usam funções como OnPlayerConnect, eles fazem desta forma Damian_OnPlayerConnect , Mmartin_OnPlayerConnect, etc..

Isto é uma boa forma de organização e para quem deseja trabalhar nesta área deve levar em consideração isto pois caso contrário pode-se tornar complicado trabalhar em equipa.

Nгo sei se o tutorial estб grande coisa, jб nгo faзo а algum tempo, mas pronto, como me fez um pedido vir aqui esclarecer umas dъvidas e expor a minha opiniгo e conhecimento, obrigado a todos!


Creditos: Rebelox


Ir para o topo

Data/hora atual: Qui 2 maio 2024 - 0:10