24.05.2012, 17:59
Bem Amigos eu tou criando GM Roleplay Tudo certo ate ao momento que vou criar as factions meto tudo direitinho mas deu me estes erros:
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3672) : error 001: expected token: "}", but found "const"
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3685) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3690) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3701) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3707) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3714) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3729) : error 021: symbol already defined: "OnPlayerStateChange"
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : error 032: array index out of bounds (variable "VCivil")
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : warning 202: number of arguments does not match definition
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : warning 202: number of arguments does not match definition
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : error 001: expected token: ";", but found "-identifier-"
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : warning 215: expression has no effect
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : error 001: expected token: ";", but found "-string-"
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
11 Errors.
Eis as linhas
Gostava muito que me ajudassem dou +REP
Obrigado.
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3672) : error 001: expected token: "}", but found "const"
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3685) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3690) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3701) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3707) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3714) : error 010: invalid function or declaration
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3729) : error 021: symbol already defined: "OnPlayerStateChange"
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : error 032: array index out of bounds (variable "VCivil")
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : warning 202: number of arguments does not match definition
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : warning 202: number of arguments does not match definition
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : error 001: expected token: ";", but found "-identifier-"
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : warning 215: expression has no effect
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : error 001: expected token: ";", but found "-string-"
C:\Users\PC\Desktop\GTA SERVER\Samp 0.3E Server\gamemodes\GigaRP.pwn(3732) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
11 Errors.
Eis as linhas
Код:
enum Info { Membro, //Identifica de que organizaзгo o player й membro. 0 para civil. Cargo, //Identifica qual o cargo do player. 10 para lнder. }; new ProgressaoInfo[MAX_PLAYERS][Info]; //Utilizaremos essa variбvel com arrays em conjunto com o enum new Nomeorgs[5][128] = //[5] representa o numero de linhas iniciando do 0 e [128] o numero de caracters mбximo de cada string. { "Civil", //Org [0]: Como dito no enum, a org 0 й civil, nгo й propriamente uma org mas й necessбrio ter pois o player serб automaticamente membro da org 0 caso nгo definido. "GNR", //Org [1]: Guarda Nacional Republicana Policia todo terreno. "Ciganos", //Org [2]: Faction Ilegal Que trafica , E й um problema para a sociedade. "Inem", //Org [3]: Medicos , Sгo eles que socorrem e salvam pessoas da morte. "Mecanicos" //Org [4]: Eles quem arranjam os carros , Qualquer problema no carro eles que resolvem . const C_Civil = 0xFFFFFFFF; //Cor dos civis, branco. const C_Ciganos = 0x330066AA; //Cor dos Ciganos , Roxo. const C_Inem = 0xFF00FFAA; //Cor do Inem , Rosa. const C_Mecanicos = 0xAFAFAFAA; //Cor dos Mecanicos, cizento. const C_GNR = 0x33FF00FF; //Cor da GNR, verde. new VCivil[2]; //Os Civis tem 2 veнculos new VGNR[9]; //A GNR tem 9 veнculos. new VCiganos[4]; //Os Ciganos tem 4 veнculos. new VInem[5]; //O Inem tem 5 veнculos. new VMecanicos[5]; //Os Mecanicos tem 5 veнculos. //**********************************[ Veнculos Civis]************************************************* VCivil[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VCivil[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VCivil[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); //******************************[ Veнculos da GNR]************************************************* VGNR[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VGNR[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VGNR[3] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VGNR[4] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VGNR[5] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VGNR[6] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VGNR[7] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VGNR[8] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VGNR[9] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); //E assim vai atй criar todos os veнculos pra completar as arrays da variбvel. //******************************[ Veнculos dos Ciganos]************************************************* VCiganos[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VCiganos[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VCiganos[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VCiganos[3] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); //E assim vai atй criar todos os veнculos pra completar as arrays da variбvel. //***************************[ Veнculos do INEM]********************************************** VInem[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VInem[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VInem[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VInem[3] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VInem[4] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); //E assim vai atй criar todos os veнculos pra completar as arrays da variбvel. //***************************[ Veнculos dos Mecanicos]********************************************** VMecanicos[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VMecanicos[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VMecanicos[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VMecanicos[3] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); VMecanicos[4] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay); //E assim vai atй criar todos os veнculos pra completar as arrays da variбvel. #define VCiv #define membros #define Orgnome #define cmd #define VDaOrg(%0,%1,%2) GetPlayerVehicleID(playerid) >= %0[%1] && GetPlayerVehicleID(playerid) <= %0[%2] public OnPlayerStateChange(playerid, newstate, oldstate) //Verificarб a mudanзa de estado do player { if(newstate == PLAYER_STATE_DRIVER) //O novo estado do player й de motorista. { if(VDaOrg(VCivil,0,2) SendClientMessage(playerid)C_Civil "Vocк entrou num veiculo Civil"); if(VDaOrg(VGNR,0,4) && ProgressaoInfo[playerid][Membro] != 2) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_GNR, "Vocк nгo й um GNR"); if(VDaOrg(VCiganos,0,6) && ProgressaoInfo[playerid][Membro] != 3) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Ciganos, "Vocк nгo й Cigano"); if(VDaOrg(VInem,0,3) && ProgressaoInfo[playerid][Membro] != 4) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Inem, "Vocк nгo й um Medico"); if(VDaOrg(VMecanicos,0,5) && ProgressaoInfo[playerid][Membro] != 5) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Mecanicos, "Vocк nгo й um Mecanico"); } return true; new Texto[256]; //Lembrando, й uma variбvel global, nгo deve ser posta dentro de qualquer estrutura que use chaves. cmd(membros, playerid, params[]) { #pragma unused params //Nгo estamos usando parametros no comando, por isso o pragma. new corda[70]; for(new i, PP = GetMaxPlayers(); i < PP; i++) { if(!IsPlayerConnected(PP)) continue; //Caso o player nгo esteja conectado ele darб continuidade no loop if(ProgressaoInfo[i][Membro] == ProgressaoInfo[playerid][Membro]) //Caso a org do player [i] for igual a org do player [playerid] Executarб o que vem abaixo. { new nome[MAX_PLAYER_NAME]; //Criarб a variбvel que acumularб o nome do player membro da org. GetPlayerName(playerid, nome, sizeof(nome)); //Pegarб o nome do player membro da org pra acumular na variбvel acima. format(corda, sizeof(corda), "%s membro da org %s cargo %d\n", nome, Orgnome[ProgressaoInfo[i][Membro]], ProgressaoInfo[i][Cargo]); //Formatarб a string corda com o nome, cargo e nome da org pertencente. strcat(Texto, corda, 70); } } ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Lista de membros online", Texto, "OK", ""); //Mostratб ao player o dialog com a lista de membros. strdel(Texto, 0, sizeof(Texto)); //Deletarб os dados da string pra que ela possa ser reutilizada e evitando um 'bug' que repete as mensagens. return true; } cmd(equipar, playerid, params[]) { #pragma unused params //Nгo estamos usando parametros no comando, por isso o pragma. if(ProgressaoInfo[playerid][Membro] == 1 && IsPlayerInRangeOfPoint(playerid, 3.0, Float:X, Float:Y, Float:Z)) //No X, Y e Z as coordenadas do local de equipe da org 1 = GNR { ResetPlayerWeapons(playerid); //Tirarб as armas do player evitando que ele se equipe vбrias vezes pra conseguir muniзгo infinita. GivePlayerWeapon(playerid, 31, 500); //Lhe equiparб com uma M4 e 500 balas. GivePlayerWeapon(playerid, 24, 300); //Lhe equiparб com uma Eagle e 300 balas. GivePlayerWeapon(playerid, 3, 0); //Lhe equiparб com um Cacetete. SendClientMessage(playerid, C_GNR, "Vocк foi equipado"); return true; } else if(ProgressaoInfo[playerid][Membro] == 2 && IsPlayerInRangeOfPoint(playerid, 3.0, Float:X, Float:Y, Float:Z)) //No X, Y e Z as coordenadas do local de equipe da org 2 = Ciganos { ResetPlayerWeapons(playerid); //Tirarб as armas do player evitando que ele se equipe vбrias vezes pra conseguir muniзгo infinita. GivePlayerWeapon(playerid, 0, 0); SendClientMessage(playerid, C_Ciganos, "Vocк foi equipado"); return true; } else if(ProgressaoInfo[playerid][Membro] == 2 && IsPlayerInRangeOfPoint(playerid, 3.0, Float:X, Float:Y, Float:Z)) //No X, Y e Z as coordenadas do local de equipe da org 3 = Inem { ResetPlayerWeapons(playerid); //Tirarб as armas do player evitando que ele se equipe vбrias vezes pra conseguir muniзгo infinita. SendClientMessage(playerid, C_Inem, "Vocк foi equipado"); return true; } else if(ProgressaoInfo[playerid][Membro] == 2 && IsPlayerInRangeOfPoint(playerid, 3.0, Float:X, Float:Y, Float:Z)) //No X, Y e Z as coordenadas do local de equipe da org 4 = Mecanicos { ResetPlayerWeapons(playerid); //Tirarб as armas do player evitando que ele se equipe vбrias vezes pra conseguir muniзгo infinita. SendClientMessage(playerid, C_Mecanicos, "Vocк foi equipado"); return true; } return true; } cmd(chatorg, playerid, params[]) { //Usaremos parвmetros entгo nгo precisaremos do pragma. new corda[128]; if(sscanf(params, "s[128]", corda)) return SendClientMessage(playerid, GetPlayerColor(playerid), "Uso correto: /ChatOrg [Mensagem]"); if(ProgressaoInfo[playerid][Membro] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Civis nгo tem chat prуprio"); //Caso o player tente utilizar chat sendo civil. new nome[MAX_PLAYER_NAME]; //Criamos a variбvel que acumularб o nome do player que estб mandando a mensagem а org. GetPlayerName(playerid, nome, sizeof(nome)); //Getamos o nome do player e acoplamos а variбvel criada acima. format(Texto, 128, "%s[%d] diz: %s", nome, ProgressaoInfo[playerid][Cargo], corda); //Lembra da variбvel global chamada de Texto que criamos? Reutilizaremos ela para armazenar o texto que serб mandado aos membros da org. Junto com o mandante e seu cargo. for(new PP, Progressao = GetMaxPlayers(); PP < Progressao; PP++) { if(!IsPlayerConnected(PP)) continue; //Caso o player do loop nгo esteja conectado ele darб continuidade no loop sem executar o que estб abaixo. if(ProgressaoInfo[PP][Membro] == ProgressaoInfo[playerid][Membro]) //Verificarб se o player no Loop й da mesma organizaзгo do player que mandou a mensagem а org. { SendClientMessage(PP, GetPlayerColor(playerid), Texto); //Mandarб a mensagem ao player no loop com a cor do player que mandou que lуgicamente serб a cor da org dele. } } return true; } cmd(convidar, playerid, params[]) { new PlayerB, nome[MAX_PLAYER_NAME]; //Criarб as variбveis PlayerB que acumularб o ID do player convidado e nome que acumularб o nome de dois players(Um de cada vez, claro). if(sscanf(params, "d", PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /convidar [id]"); //Caso o player nгo digite o comando completo retornarб а esta mensagem. if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo estб online"); //Caso o jogador convidado nгo esteja online retornarб а esta mensagem. GetPlayerName(PlayerB, nome, sizeof(nome)); //Pegarб o nome do player convidado para usar ao formatar a variбvel Texto. format(Texto, 70, "Vocк convidou %s para sua organizaзгo", nome); //Formatarб a variбvel texto com a mensagem e o nome do convidante. SendClientMessage(playerid, GetPlayerColor(playerid), Texto); //Mandarб a mensagem ao convidante informando-o que ele convidou um player. GetPlayerName(playerid, nome, sizeof(nome)); //Pegarб o nome do player convidante para usar ao formatar a variбvel Texto format(Texto, 128, "%s estб lhe convidando para fazer parte da organizaзгo: %s \nDeseja aceitar?", nome, Nomeorgs[ProgressaoInfo[playerid][Membro]]); //Formatarб a variбvel Texto com o nome do player convidante e o nome da organizaзгo ShowPlayerDialog(PlayerB, 100, DIALOG_STYLE_MSGBOX, "Convite para organizaзгo", Texto, "Sim", "Nгo"); //Mostrarб ao player convidado o dialog de aceitaзгo da org. SetPVarInt(PlayerB, "OrgConvidado", ProgressaoInfo[playerid][Membro]); //Setarб a PVar do player convidado com o id da org que ele estб sendo convidado, caso aceite, serб setado. return true; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 100 && response) //100 й o ID do dialog que usamos no ShowPlayerDialog do comando /convidar. Response й a resposta ao primeiro botгo do dialog, no caso, "Sim". { ProgressaoInfo[playerid][Membro] = GetPVarInt(playerid, "OrgConvidado"); //Setaremos a org do player = a org setada no PVar dele, que й a mesma do player que o convidou. ProgressaoInfo[playerid][Cargo] = 1; //Setaremos o cargo do player para 1 afinal ele acabou de entrar na nova organizaзгo. DeletePVar(playerid, "OrgConvidado"); //Deletaremos a PVar que usamos no comando /convidar. return true; } return true; } cmd(promover, playerid, params[]) { new PlayerB, cargo; if(sscanf(params, "dd", PlayerB, Cargo)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /Promover [id] [cargo]"); if(ProgressaoInfo[playerid][Cargo] != 10) return SendClientMessage(playerid, 0x1E90FF99, "Vocк nгo й lнder"); if(ProgressaoInfo[PlayerB][Membro] != ProgressaoInfo[playerid][Membro]) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo й da mesma organizaзгo que vocк."); ProgressaoInfo[playerid][Cargo] = cargo; return true; } cmd(demitir, playerid, params[]) { new PlayerB; if(sscanf(params, "d", PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /Demitir [id]"); if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo estб online"); if(ProgressaoInfo[playerid][Membro] != ProgressaoInfo[PlayerB][Membro]) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo й da sua organizaзгo"); if(ProgressaoInfo[playerid][Cargo] != 10) return SendClientMessage(playerid, 0x1E90FF99, "Vocк nгo й lнder da organizaзгo"); ProgressaoInfo[PlayerB][Membro] = 0; //Tornarб o player demitido um civil novamente. ProgressaoInfo[PlayerB][Cargo] = 0; //Atribuirб o cargo 0 ao player demitido, afinal, agora ele nгo pertence а org alguma. SendClientMessage(PlayerB, C_Civil, "Vocк foi demitido"); SetPlayerColor(playerid, C_Civil); SendClientMessage(playerid, 0x1E90FF99, "Jogador demitido"); return true; } public OnPlayerDisconnect(playerid, reason) { SalvarPlayer(playerid); return true; } stock SalvarPlayer(playerid) { new nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, nome, sizeof(nome)); format(Texto, 35, "Jogadores/%s", nome); //Formatarб na variбvel Texto o caminho onde ficarб o arquivo com os dados do player. INI_Open(Texto); //Abrirб o arquivo para escrever as informaзхes, caso nгo exista, ele criarб automaticamente. INI_WriteInt("Organizaзгo", ProgressaoInfo[playerid][Membro]); //Setarб na TAG Organizaзгo o valor inteiro da variбvel Membro do playerid(No caso o ID da org dele). INI_WriteInt("Cargo", ProgressaoInfo[playerid][Cargo]); //Setarб na TAG Cargo o valor inteiro da variбvel Cargo do playerid(No caso, o cargo dele na org). INI_Save(); //Salvar й necessбrio, caso nгo salve, nгo verб nada escrito no arquivo. INI_Close(); //Tambйm й necessбrio Fechar oa rquivo aberto. return true; } public OnPlayerConnect(playerid) { new nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, nome, sizeof(nome)); format(Texto, 35, "Jogadores/%s", nome); //Formatarб na variбvel Texto o caminho onde fica o arquivo com os dados do player. if(fexist(Texto)) //Verificarб se o arquivo existe, caso exista executarб o que vem entre as chaves abaixo. { INI_Open(Texto); //Й necessбrio abrir o arquivo antes de tudo. ProgressaoInfo[playerid][Membro] = INI_ReadInt("Organizaзгo"); ProgressaoInfo[playerid][Cargo] = INI_ReadInt("Cargo"); INI_Close(); //Й necessбrio apenas fechar o arquivo sem salvar, pois nada foi modificado nele. } return true; }
Obrigado.