Criando Organizaзхes[pedido] -
Josma_cmd - 22.07.2011
================================================== ================================================
Bom, vim em resposta a
este tуpico criar um tutorial completo de como fazer orgs/profissхes/gangs em seu GameMode RPG.
Нndice
● Criar orgs com cargos
● Criar veiculos para orgs
● Criar comando /membros
● Criar comandos para lнderes /convidar /promover /demitir
● Banco de dados para salvamento de orgs
● Criar cores paras orgs
Necessбrio
● Saber utilizar strtok
● Saber utilizar variбveis
● Saber utilizar operadores
● Saber utilizar database(No caso usaremos dini).
Bom, antes de tudo quero esclarecer que este nгo й um cуdigo ъtil e sim um tutorial, nгo copie e edite, leia, entenda e crie seu sistema.
Parte 1, criando suas organizaзхes: Bom, decidi sair do velho esquema rotineiro de orgs do GF, entгo nosso enum serб diferente, o enum cria arrays dentro de arrays, fazendo juz ao nome, enumйricos ou enumerados, o enum funciona quase como o new, vocк pode criar vбrias variбveis a partir dele utilizando vнrgula para separar umas das outras, irei criar aqui 3 organizaзхes como exemplo neste enum.
pawn Код:
enum Info
{
PMilitar,
Groove,
Ballas
};
Nгo й obrigatуrio e tambйm nгo faz diferenзa a utilizaзгo de vнrgula na ultima variбvel da enum, eu nгo coloco mas isso й uma opзгo de cada um, enfim, o enum criado precisaremos de uma variбvel como tipo de dados para podermos usa-la em diferentes situaзхes e para diferentes players, para isso usaremos o MAX_PLAYERS que no caso cria uma variбvel para cada ID de player, o MAX_PLAYERS й equivalente a 500 entгo й aconselhбvel que vocк crie uma diretiva no inнcio do GM definindo o numero de slots que seu servidor usa, logo apуs, utilize essa diretivo no lugar do MAX_PLAYERS prй definido no a_samp.
pawn Код:
new PlayerInfo[MAX_PLAYERS][Info];
Como podem perceber acima criei a variбvel PlayerInfo, o nome й de sua preferencia, esta variбvel tem o valor MAX_PLAYERS, ou seja, poderei usar em diversas ocasiхes utilizando playerid, giveplayerid ou qualquer outro tipo de variбvel que acumule o id de um player, na outra array eu utilizo o enum Info, assim poderemos usar qualquer uma das variбveis disponнveis no enum.
Parte 2, entrando nas organizaзхes: Bom, criada as organizaзхes, agora deveremos entrar nelas, pra isso iremos fazer 3 comandos, /Convidar, /Demitir, /Promover.
Nгo esqueзa de criar o new tmp[128]; no inicio da OnPlayerCommandText junto com as outras variбveis, cmd e idx, tambйm coloque o strtok no fim do gamemode.
pawn Код:
if(strcmp(cmd, "/convidar", true) == 0)
{
tmp = strtok(cmdtext, idx);
new PlayerB;
if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "Uso correto: /convidar [id]");
PlayerB = strval(tmp);
if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб conectado");
if(PlayerInfo[playerid][PMilitar] >= 6)
{
PlayerInfo[PlayerB][PMilitar] = 1;
SendClientMessage(PlayerB, Branco, "Vocк entrou а Polнcia Militar");
SetPlayerColor(PlayerB, Cor_PMilitar);
return 1;
}
else if(PlayerInfo[playerid][Groove] >= 6)
{
PlayerInfo[PlayerB][Groove] = 1;
SendClientMessage(PlayerB, Branco, "Vocк entrou а Groove");
SetPlayerColor(PlayerB, Cor_Groove);
return 1;
}
else if(PlayerInfo[playerid][Ballas] >= 6)
{
PlayerInfo[PlayerB][Ballas] = 1;
SendClientMessage(PlayerB, Branco, "Vocк entrou aos Ballas");
SetPlayerColor(PlayerB, Cor_Ballas);
return 1;
}
return 1;
}
Existem diversas formas de fazer um comando /convidar, essa nгo й a mais otimizada porйm achei a mais simples para explicar sobre o cуdigo, nгo vou explicar sobre o que o strtok faz pois creio que muitos jб sabem e caso nгo saibam й sу dizer que explico ou crio outro tutorial, enfim, voltando ao cуdigo, ao digitar /convidar [id] o if se encarregarб de verificar se o jogador й da PMilitar, e se ele tem o cargo igual ou maior que 6, que no caso estamos utilizando como um padrгo para lнder, mude conforme sua escolha, caso ele seja da Policia Militar e tiver o cargo requerido serб setado ao PlayerB(convidado) a cor da policia militar e a org Policia militar, o mesmo processo acontece mas 3 orgs seguintes, foi apenas adicionado o else para a cadeia de decisхes, se, mas se...
pawn Код:
if(strcmp(cmd, "/promover", true) == 0)
{
tmp = strtok(cmdtext, idx);
new PlayerB, level;
if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "Uso correto: /promover [id] [cargo]");
PlayerB = strval(tmp);
if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб conectado");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "Uso correto: /promover [id] [cargo]");
level = strval(tmp);
if(level < 1 || level > 6) return SendClientMessage(playerid, Branco, "O level deve ser maior que 0 e menor que 7");
new string[128], promovedor[MAX_PLAYER_NAME];
GetPlayerName(playerid, promovedor, sizeof(promovedor));
if(PlayerInfo[playerid][PMilitar] >= 6)
{
if(PlayerInfo[PlayerB][PMilitar] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua org");
PlayerInfo[PlayerB][PMilitar] = level;
format(string, sizeof(string), "Vocк foi promovido a level %d por %s", level, promovedor););
SendClientMessage(PlayerB, Branco, string);
return 1;
}
else if(PlayerInfo[playerid][Groove] >= 6)
{
if(PlayerInfo[PlayerB][Groove] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua org");
PlayerInfo[PlayerB][Groove] = level;
format(string, sizeof(string), "Vocк foi promovido a level %d por %s", level, promovedor););
SendClientMessage(PlayerB, Branco, string);
return 1;
}
else if(PlayerInfo[playerid][Ballas] >= 6)
{
if(PlayerInfo[PlayerB][Ballas] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua org");
PlayerInfo[PlayerB][Ballas] = level;
format(string, sizeof(string), "Vocк foi promovido a level %d por %s", level, promovedor););
SendClientMessage(PlayerB, Branco, string);
return 1;
}
return 1;
}
O comando /promover acima segue a mesma ordem do /convidar, verifica a organizaзгo do player primбrio na aзгo e executa a ordem no player secundбrio que no caso seria o PlayerB, como disse no outro comando, nгo vou explicar sobre strtok neste tutorial.
pawn Код:
if(strcmp(cmd, "/demitir", true) == 0)
{
tmp = strtok(cmdtext, idx);
new PlayerB, string[128], demitidor[MAX_PLAYER_NAME];
if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "Uso correto: /demitir [id]");
PlayerB = strval(tmp);
GetPlayerName(playerid, demitidor, sizeof(demitidor));
if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб conectado");
if(PlayerInfo[playerid][PMilitar] >= 6)
{
if(PlayerInfo[PlayerB][PMilitar] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua organizaзгo");
PlayerInfo[PlayerB][PMilitar] = 0;
format(string, sizeof(string), "Vocк foi demitido por %s", demitidor);
SendClientMessage(PlayerB, Branco, string);
return 1;
}
else if(PlayerInfo[playerid][Groove] >= 6)
{
if(PlayerInfo[PlayerB][Groove] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua organizaзгo");
PlayerInfo[PlayerB][Groove] = 0;
format(string, sizeof(string), "Vocк foi demitido por %s", demitidor);
SendClientMessage(PlayerB, Branco, string);
return 1;
}
else if(PlayerInfo[playerid][Ballas] >= 6)
{
if(PlayerInfo[PlayerB][Ballas] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua organizaзгo");
PlayerInfo[PlayerB][Ballas] = 0;
format(string, sizeof(string), "Vocк foi demitido por %s", demitidor);
SendClientMessage(PlayerB, Branco, string);
return 1;
}
return 1;
}
O comando demitir й Muito bбsico, entendendo os dois primeiros vocк entenderб ele tambйm, creio que todo mundo saibam se quiserem explicaзхes mais detalhadas sobre o comando sу perguntar.
Bom, como vocкs viram estes comandos utilizam algumas cores, provavelmente vocкs nгo terгo essas cores em seus GMґs entгo й sу criar algumas diretivas relativas as cores.
pawn Код:
#define Cor_PMilitar 0x4169E199
#define Cor_Groove 0x00FF0099
#define Cor_Ballas 0xA020F099
#define Branco 0xFFFFFFFF
O cуdigo de cor na diretiva й muito simples, 0x = definiзгo de que "Й" uma cor, os 6 primeiros caracters apуs o 0x sгo do cуdigo da cor e os 2 ultimos da transparкncia da cor.
Parte 3, Criando veiculos paras organizaзхes: Antes de tudo vocк precisa aprender a mexer com variбveis entгo se ainda nгo souber leia outro tutorial, Vamos criar os veiculos paras orgs, para isso, tenha em mгos as coordenadas e os modelos dos veiculos que deseja criar, vamos lб.
Vamos supor que a Policia Militar tenha 4 carros, entгo criaremos a variбvel com o valor 4 pois comeзaremos do 0 e nгo podemos esquecer do Null, deixaremos isso quase como se fosse uma margem de erro.
Estб criada a variбvel de veiculos da Policia Militar, vamos agora criar os veiculos:
No OnGameModeInit(); coloque:
pawn Код:
VPMilitar[0] = CreateVehicle(modelo, X, Y, Z, Rotaзгo, Cor1, Cor2, RespawnDelay); //Veiculo numero 0
VPMilitar[1] = CreateVehicle(modelo, X, Y, Z, Rotaзгo, Cor1, Cor2, RespawnDelay); //Veiculo numero 1
VPMilitar[2] = CreateVehicle(modelo, X, Y, Z, Rotaзгo, Cor1, Cor2, RespawnDelay); //Veiculo numero 2
VPMilitar[3] = CreateVehicle(modelo, X, Y, Z, Rotaзгo, Cor1, Cor2, RespawnDelay); //Veiculo numero 3
Estб criado os veiculos da Policia Militar, siga o mesmo exemplo para criar os veнculos de outras organizaзхes, apenas troque o numero das variбveis e os nomes das mesmas conforme o numero de veнculos e o nome da prуxima org.
Parte 4, Impedindo que outros peguem seus veiculos: Bom, vamos bloquear os veнculos para que membros de outras organizaзхes nгo o peguem, existem inicialmente duas maneiras de fazer isso, com a public OnPlayerEnterVehicle ou com a public OnPlayerStateChange, vou usar a OnPlayerStateChange...
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) VerificarVeiculo(playerid);
return 1;
}
Notem que tem uma sintaxe que nгo й padrгo nesta public, a sintaxe VerificarVeiculo, bom, teremos que criar ela entгo vamos lб.
pawn Код:
forward VerificarVeiculo(playerid);
public VerificarVeiculo(playerid)
{
for(new c = 0; c <= 4; c++)
{
if(IsPlayerInVehicle(playerid, VPMilitar[c]) && PlayerInfo[playerid][PMilitar] < 1)
{
SendClientMessage(playerid, Branco, "Vocк nгo й da Policia Militar");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
return 1;
}
O laзo for irб fazer uma conta rбpida verificando possнveis valores do 0 ao 4, na if seguinte ele verificarб se o Player estб no veiculo C que pode ser equivalente de 0 a 4 e se ele nгo й da policia militar, caso a resposta para esta aзгo seja SIM ele removerб o player do veiculo e dirб a ele que aquele veiculo nгo pertence a sua organizaзгo.
Para reproduzir este cуdigo com outras organizaзхes vocк pode usar o mesmo laзo for e adicionar mais if's, else if's e aumentar o numero do laзo conforme o numero de veiculos da org maxнma ou pode criar outros laзos de conta, vocк pode tambйm verificar resultado por resultado usando o GetPlayerVehicleID.
Parte 5, Salvando sua org: Bom, salvaremos a org do player em dini, entгo ai vai o cуdigo.
pawn Код:
forward SalvarOrg(playeri);
public SalvarOrg(playerid)
{
new arquivo[60], nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), "Contas\%s.ini", nome);
if(!dini_Exists(arquivo))
{
dini_Create(arquivo);
}
if(PlayerInfo[playerid][PMilitar] > 0) dini_IntSet(arquivo, "PMilitar", PlayerInfo[playerid][PMilitar]);
if(PlayerInfo[playerid][Groove] > 0) dini_IntSet(arquivo, "Groove", PlayerInfo[playerid][Groove]);
if(PlayerInfo[playerid][Ballas] > 0) dini_IntSet(arquivo, "Ballas", PlayerInfo[playerid][Ballas]);
return 1;
}
Explicaзгo: criei as variбveis arquivo e nome para acumularem dado do tipo char, elas vгo acumular strings, nome vai acumular o nome do player na aзгo e arquivo o caminho onde serб salva suas informaзхes, GetPlayerName pega o nome do playerid e salva na variбvel nome, o format seta o caminho onde serб salvo as informaзхes na variбvel arquivo, e pra isso ele precisa da variбvel nome, para criar um arquivo pra cada player.
if(!dini_Exists(arquivo)) << Verifica se NГO existe, caso nгo exista ele executa o que estб entre as chaves, no caso, dini_Create(arquivo) ou seja, se nгo existir ele criarб, logo apуs vem uma sequencia de if, esses vгo verificar se o cara й da PMilitar, caso seja ele salvarб o cargo dele no dini com o nome de PMilitar, a mesma coisa pras organizaзхes seguintes, se quiser aprender mais sobre dini procure outro tutorial no fуrum e bendito seja o search.
Vou atualizar o tutorial depois, implementar, melhorar os cуdigos, explicar melhor etc, no momento to com sono e o vinho acabou entгo vou dormir.
Bom, й isso, tutorial meio corrido mas estб ai, nгo pude explicar detalhadamente sobre alguns detalhes pois fugiriam do tema do tutorial como dini, strtok, variбveis enfim, QUALQUER duvida й sу perguntar, se nгo tiver conseguindo montar seu cуdigo poste aqui.
Re: Criando Organizaзхes[pedido] -
Scripter123 - 22.07.2011
Muito bom!!!! Obrigado, realmente sempre quis aprender isto *.*
Agora podia criar um tutorial de BUS DRIVER JOB, para explicar como fazer e como salvar
![Smiley](images/smilies/smile.png)
Ah e por checkpoints e claro
Re: Criando Organizaзхes[pedido] -
Tymer - 22.07.2011
Parabens Manolo!!
Excelente!
Re: Criando Organizaзхes[pedido] -
steki. - 22.07.2011
Ah se tivesse isso na minha йpoca... Parabйns.
Re: Criando Organizaзхes[pedido] -
Macintosh - 22.07.2011
Gыdi Jуbi mai frendi.
Gostei josminha xP.
Velo da Progressгo ahsuaHSAUshSUAsa.
Re: Criando Organizaзхes[pedido] -
Josma_cmd - 22.07.2011
Quote:
Originally Posted by Scripter123
Muito bom!!!! Obrigado, realmente sempre quis aprender isto *.*
Agora podia criar um tutorial de BUS DRIVER JOB, para explicar como fazer e como salvar ![Smiley](images/smilies/smile.png) Ah e por checkpoints e claro
|
Nunca ouvi falar sobre Bus Driver, vou pesquisar, se achar legal quem sabe kk.
Valeu.
Quote:
Originally Posted by Tymer
Parabens Manolo!!
Excelente! ![Wink](images/smilies/wink.png)
|
Obrigado
Quote:
Originally Posted by Luнs Miki
Ah se tivesse isso na minha йpoca... Parabйns.
|
kkkkkkk, em tempos antigos os programadores de C Sharp faziam um enorme trabalho pra fazer algo que hoje se faz apenas com uma sintaxe, como o RepairVehicle na 0.2x nгo tinha.
Valeu.
Quote:
Originally Posted by Shickcard
Gыdi Jуbi mai frendi.
Gostei josminha xP.
Velo da Progressгo ahsuaHSAUshSUAsa.
|
Velo do progressгo owna Shickcard, quando fiz ele foi amor a primeira vista kkk.
Quote:
Originally Posted by DarkPT
Nгo tem necessidade de criar uma calback para verificar se o player й da organizaзгo do veнculo que entrou, faзa logo tudo no OnPlayerStateChange.
E nгo precisa de criar loop tambйm (mas nгo estб errado).
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate) { new Veiculo = GetPlayerVehicleID(playerid);
if((Veiculo >=VPMilitar[0]) && (Veiculo <= VPMilitar[4])) { if(PlayerInfo[playerid][PMilitar] == 1) return false; //Se ele for da org, continua usando o veнculo SendClientMessage(playerid, Branco, "Vocк nгo й da Policia Militar"); RemovePlayerFromVehicle(playerid); } return true; }
Уtimo tutorial, gostei ![Cheesy](images/smilies/biggrin.png)
|
Um GM RPG nгo terб apenas a verificaзгo de veiculos no OnPlayerStateChange, fiz a callback pra economizar cуdigos na public, isso nгo afeta em nada o GM, apenas organiza melhor, o loop serve para economizar o uso de vбrios operadores relacionais, como: vehicleid == VPMilitar[0] || vehicleid == VPMilitar[1] || vehicleid == VPMilitar[2].
Valeu.
Re: Criando Organizaзхes[pedido] -
Josma_cmd - 22.07.2011
Quote:
Originally Posted by DarkPT
Nгo era uma critica, apenas uma sugestгo (:
Como disse anteriormente, bom trabalho ![Cheesy](images/smilies/biggrin.png)
|
Sei que nгo foi uma crнtica, й uma alternativa, mas nгo tenho problema com crнticas, servem pra aperfeiзoar meus cуdigos kk.
Valeu.
Re: Criando Organizaзхes[pedido] -
Falcon. - 22.07.2011
Quote:
Originally Posted by Josma_cmd
Nunca ouvi falar sobre Bus Driver, vou pesquisar, se achar legal quem sabe kk.
Valeu.
|
Bus Driver й um simulador de motorista de фnibus que eu jogo quando estou sem nada para fazer
![Cheesy](images/smilies/biggrin.png)
mбs neste caso ele se refere a profissгo de motorista de фnibus mesmo
Bom tutorial Josma.
Atenciosamente,
Falcon.
Re: Criando Organizaзхes[pedido] -
Ghost_ - 22.07.2011
Josma , me passa essa tua viatura da LSPD ?
Re: Criando Organizaзхes[pedido] -
Josma_cmd - 22.07.2011
Quote:
Originally Posted by Falcon.Sixe
Bus Driver й um simulador de motorista de фnibus que eu jogo quando estou sem nada para fazer ![Cheesy](images/smilies/biggrin.png)
mбs neste caso ele se refere a profissгo de motorista de фnibus mesmo
Bom tutorial Josma.
Atenciosamente,
Falcon.
|
Sim, me lembro do Bus Driver, simulador de фnibus, mas como ele falou sobre sa-mp nгo sabia
![Tongue](images/smilies/razz.gif)
Vocк joga Bus Driver? kk lol, nunca tive paciкncia pra andar а 30km. kkk.
Valeu Falcon.
Quote:
Originally Posted by Ghost_
Josma , me passa essa tua viatura da LSPD ?
|
Vou ver se acho o link denovo e te passo por MP.
Re: Criando Organizaзхes[pedido] -
Falcon. - 22.07.2011
So ando de 55 acima
![Tongue](images/smilies/razz.gif)
jogo mais quando estou sem sono..ficar parado nos sinais vermelhos me cansa...
Nem tinha notado o velocimetro, ficou legal xD
parabйns ae por ele tambйm
Re: Criando Organizaзхes[pedido] -
Josma_cmd - 22.07.2011
Quote:
Originally Posted by Falcon.Sixe
So ando de 55 acima ![Tongue](images/smilies/razz.gif)
jogo mais quando estou sem sono..ficar parado nos sinais vermelhos me cansa...
Nem tinha notado o velocimetro, ficou legal xD
parabйns ae por ele tambйm ![Cheesy](images/smilies/biggrin.png)
|
Valeu, qualquer dia te mostro como estб ficando o servidor que estamos fazendo.
Quote:
Originally Posted by [GangsTa]Bia
boum tutorial!!!
euri
Code:
Parte 1, criando suas organizaзхes:
Parte 2, criando suas organizaзхes:
Obs: Oque й 'reputation' ?
|
Fail, parte 1 criando organizaзхes, parte 2 entrando nas organizaзхes, digitei certo kk.
Reputation, em portuguкs reputaзгo sгo os pontos dados quando um usuбrio ajuda o outro, mas nem sempre o usuбrio ajudado dб reputation pro usuбrio que ajudou, pra dar reputation й sу clicar na estrela em baixo da foto do usuбrio que vocк quer.
Re: Criando Organizaзхes[pedido] -
ApolloRJ - 22.07.2011
belo tudo Nota 10
Obs: so n sei como setar o cara para... PMilitar, Groove, Ballas...
Quote:
Originally Posted by Josma_cmd
Vou ver se acho o link denovo e te passo por MP.
|
Se der manda para min tb... obrigado...
Re: Criando Organizaзхes[pedido] -
Josma_cmd - 22.07.2011
Quote:
Originally Posted by ApolloRJ
belo tudo Nota 10
Obs: so n sei como setar o cara para... PMilitar, Groove, Ballas...
Se der manda para min tb... obrigado...
|
Coloque isto no OnPlayerConnect que setarб.
PlayerInfo[playerid][PMilitar] = dini_Int(arquivo, "PMilitar");
Eu deveria ter feito um comando para adm setar org mas esqueci agora to meio sem tempo mais tarde irei fazer...
Vocк pode setar isso tambйm diretamente no dini.
Jб mandei o link pra vocк tambйm, valeu.
Re: Criando Organizaзхes[pedido] -
histire - 22.07.2011
parabens belo tuto , tava procurando 1 achei \o/
Re: Criando Organizaзхes[pedido] -
Shadoww5 - 22.07.2011
Otimo tutorial.
Mas nгo achei onde as informaзхes do jogador sгo carregadas. '-'
Re: Criando Organizaзхes[pedido] -
ApolloRJ - 22.07.2011
eu acho que vc n me entendeu.. vou explicar de outra forma..
eu crio as class assim....
pawn Code:
#define Policia 1
#define Bandido 2
#define Mafia 3
new gTeam[MAX_PLAYERS];
---------------
public OnPlayerRequestClass(playerid, classid)
{
if((classid >= 0) && (classid <= 3)) // Ou Seja Igual й Maior que 0. й Menor й Igual a 2. Ou Seja, 0,1 e 2.
{
gTeam[playerid] = Policia; // Setarб ele Para GANG Policia.
SetPlayerInterior(playerid,8);
SetPlayerFacingAngle(playerid,280.0);
SetPlayerPos(playerid,2806.69,-1171.72,1025.07);
SetPlayerCameraPos(playerid,2809.3428,-1170.4800,1025.5703);
SetPlayerCameraLookAt(playerid,2805.69,-1171.72,1025.07);
ApplyAnimation(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0);
etc............
como apontar para PMilitar, Groove, Ballas
ou criar as class.. desde ja agradeзo o pack do carro.. obrigado!
Re: Criando Organizaзхes[pedido] -
Josma_cmd - 22.07.2011
pawn Code:
public OnPlayerRequestClass(playerid, classid)
{
if(classid >= 0 && classid <= 3))
{
PlayerInfo[playerid][PMilitar] = 1;
return 1;
}
else if(classid >= 4 && classid <= 7)
{
PlayerInfo[playerid][Groove] = 1;
return 1;
}
Seu classid tб errado.
Re: Criando Organizaзхes[pedido] -
Dark.Angel - 22.07.2011
Parabens, otimo tutorial
Re: Criando Organizaзхes[pedido] -
ByladeN - 22.07.2011
ййй parceiro, parabens, bom trabalho, bem organizado e bem explicado
um dia quero ser um bom scripter assim, espero ser, e se eu ser, preguiзa eu nao vou ter.......bom voltando ao assunto parabens pelo seu trabalho, nгo apenas esse mais tambem os outros