tutorial de como utilizara a porra do strtok... ( para eu mesmo não esquecer e/ou os outro aprenderem a utilizar! ) strtok serve para achar string após o ESPAÇO " ", a galera utiliza bastante para argumentação ( comum em gm antiga ), mesmo tendo outros concorrentes
como sscanf.
strtok (str1,&index);
exemplo (irei usar strcmp):
Código:
public OnPlayerCommandText(playerid, cmdtext[]){
new cmd[128];
new tmp[128];
new idx;
comando_cortado = strtok(cmdtext, idx);
if(strcmp(comando_cortado,"/comado",true)==0){ // jogador usa /comando [argumento1] [argumento2] [argumento3]
new var1[20];
new var2[20];
new var3[20];
if(!strlen(var1)){ // comparar o tamanho da string, se for 0 ( nada ) vai retornar printar
printf("argumento var1 não encontrado!");
}
if(!strlen(var2)){
printf("argumento var2 não encontrado!");
}
if(!strlen(var3)){
printf("argumento var3 não encontrado!");
}
}
}
Resumidamente:
o strtok, pega a proxima string depois do espaço.
exemplo:
Código:
new idx=0;
string = "FEIJOADA È MUTO BOM SABIA"
\/ | \/ \/ \/
0 1 2 3 4
strtok(string,idx) = FEIJOADA
strtok(string,idx) = É
strtok(string,idx) = MUITO
strtok(string,idx) = BOM
strtok(string,idx) = SABIA
strtok(string,idx)....
e assim vai, pegando string pós espaço!
ok, porque IDX?
* idx, seria INDEX, seria quantidade de elementos seria para capturar.
exemplo
Código:
new idx = 1
string = "porta samp ok"
strtok(string,idx) = "orta" // index[0]
strtok(string,idx) = "amp" //index[1]
strtok(string,idx) = "" //index[3] // Não apareceu porque exerceu o limite definido no INDEX
resumidamente, o INDEX 0, deixa INFININTO o numero de argumentos,
já INDEX 1, se limite a 2
INDEX 2, se limita a 3
INDEX 3, se limita a 4
...........4................5
..........6................7
......
....
e assim por diante..
Nesse tópico irei ensinar como criar um infoorg com sistema de salvamento proprio, somente com alguns comandos básicos!..
Primeiramente temos que ter uma Enum da ORG, a qual cada org pode-se manipular, nessa enum vai ter informações básicas sobre a org, como exemplo membros, lideres, sublíderes etc..
* Nesse tutorial será criada somente 3 organização:
[0] - Civil
[1] - Mendingos
[2] - Policia Aleatória
Porque integrar a Enum na Matris?
*para poder manipular, exemplo
OrgInfo[0][pMembro1] = "Peixe_Ssardinha";
OrgInfo[0][pMembro2] = "Amguinho_Peixe";
etc
Agora temos que criar um sistema de carregar/salvar as Orgs, utilizarei o sistema DINI(download aqui). porem é possivel utilizar dof2 ou database ( sqlite/mysql/mariadb...) tudo depende de como você quer salvar.
os dados dentro das cfg das Orgs, podem variar, de quanto membros você pos pra criar.
Agora devemos definir de qual ORG o player vai estar, e se ele é o lider, o certo é adicionar dentro de uma ENUM ( PlayerInfo[playerid][pOrg/pLider] ) incluso do sistema de salvamento do server...
mas nesse caso irei adicionar por variável
no inicio da GM, fora dos scopo ( callbacks )
Código:
new MemberOrgID[50]
new CargoOrgID[50]
os [50] são array de quantidade de players do servidor, recomendo botar uma #define MAX_PLAYERS!
* essas variáveis vão ser constantemente chamadas para os comandos!
Agora vamos pegar as variáveis e sentar no jogador:
Código:
Stock LoadOrgFromPlayer(playerid)
{
if(IsPlayerConnected(playerid))
{
new Nick[256];
GetPlayerName(playerid,Nick,sizeof(Nick));
for(new i = 1; i < sizeof(OrgInfo); i++)
{
if(strcmp(Nick,OrgInfo[i][Lider],true)==0)
{
MemberOrgID[playerid] = i;
CargoOrgID[playerid] = 6
return 1;
}
* Como podes notar, os cargo das org sempre vão ser 1, devido não termos um sistema de SALVAMENTO de JOGADORES,
nesse tutorial não irei incluir, porem é extremamente recomendado ter para poder salvar os MemberORG e CargoOrg.
Na callback OnPlayerConnect(playerid)
bote essa função criada.
e na callback OnPlayerDisconnect(playerid)
reset as variaveis dos membros
usando:
-> Novo sistema de eventos. -> Objetos texturizados e stunts novos. -> Diversão garantida com diversidade de comandos para usar no servidor. -> Arenas para competir com jogadores. -> Sistema VIP com base VIP, portões inteligentes e comandos! -> Todos os dias com atualizações e correção de bugs.
Galera e possivel adcionar objeto in game? Tipo tem as tropas do meu servidor cada tropa e uma mochila e possivel adicionar mas dff de mochila para da pra modificar as mochilas?
Olá a todos, bom gostaria da ajuda de vcs para saber como crio um tutorial para novatos ao entrar em meu servidor. Se alguém puder me auxiliar, ou me dar exemplos agradeceria muito!