(217,972.3825,-1544.0740,13.6026,178.2698,0,0,0,0,0,0); // porta pra HQ (217,970.2272,-1520.6815,13.5504,2.1983,0,0,0,0,0,0); // Local Para equipar
#include <a_samp> #include <zcmd> //Adicionando o ZCMD #include <sscanf> //Adicionando o sscanf #include <DOF2> //Adicionando o DOF2 #define PRF 60 #define 1 #define 2 #define 3 #define C_PRF #include <a_samp> #define C_ #define C_ #define C_ enum PlayerDados //O enum serve, na maioria das veses, para ser usado em outras variaveis como pode ver abaixo { Organizacao, Cargo } new pDados[MAX_PLAYERS][PlayerDados]; //Criamos a varнavel que amarzenarб os Dados do player main() { print("\n----------------------------------"); print(" [GM] DESCRIЗГO DO GAMEMODE"); print("----------------------------------\n"); } public OnGameModeExit() { DOF2_Exit(); //Sempre coloque isto aqui quando estiver a usar DOF2, ou irб dar um WARN, e mau funcionamento da include return 1; } public OnPlayerRequestClass(playerid, classid) { SpawnPlayer(playerid); //Ao aparecer aqueles setinhas (<<< >>> SPAWN), o jgador irб levar Spawn return 1; } public OnPlayerConnect(playerid) { new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername); pDados[playerid][Organizacao] = DOF2_GetInt(arquivo, "Organizaзгo"); //Setamos "pDados[playerid][Organizacao]" de acordo com a TAG getada do "arquivo" pDados[playerid][Cargo] = DOF2_GetInt(arquivo, "Cargo"); //Setamos "pDados[playerid][Cargo]" de acordo com a TAG getada do "arquivo" SpawnPlayer(playerid); //Dб SPAWN no player return 1; } public OnPlayerDisconnect(playerid, reason) { new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername); if(DOF2_FileExists(arquivo)) //Se a Conta existir { DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo" DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo" } else //Se a conta nгo esxitir { DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo" DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo" } return 1; } public OnPlayerUpdate(playerid) { new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername); if(DOF2_FileExists(arquivo)) //Se a Conta existir { DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo" DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo" } else //Se a conta nгo esxitir { DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo" DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo" } return 1; } public OnPlayerSpawn(playerid) { if(pDados[playerid][Organizacao] == PRF) { SetPlayerPos(playerid, 217,972.3825,-1544.0740,13.6026,178.2698,0,0,0,0,0,0); } else if(pDados[playerid][Organizacao] == ) { SetPlayerPos(playerid, ); } else if(pDados[playerid][Organizacao] == ) { SetPlayerPos(playerid, ); } else if(pDados[playerid][Organizacao] == ) { SetPlayerPos(playerid, ); } return 1; } public OnPlayerDeath(playerid, killerid, reason) { SpawnPlayer(playerid); //Spawn no nego! return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 600) { new playername[MAX_PLAYER_NAME], string[128]; //Variaveis que irб armazenar o nome e "string" GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que aparaceu o dialog if(response) //Se ele clicar em SIM... { pDados[playerid][Organizacao] = GetPVarInt(playerid, "OrgConvidado"); //Seta a organizaзгo de acordo com a PVarInt do comando /convida pDados[playerid][Cargo] = 1; //Seta o cargo a 1 format(string, sizeof(string), "%s aceitou seu Convite.", playername); //Formata uma mensagem com o nome do player que aceitou SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensgaem a quem convidou format(string, sizeof(string), "%s й o mais novo membro da Organizaзгo.", playername); //Formata uma mensgaem com o nome do player que aceitou SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Manda a mensagem para a organizaзгo do player SendClientMessage(playerid, 0x00FF00FF, "Vocк aceitou o Convite."); //Manda uma mensagem amigavel ao player que aceitou :P DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar SpawnPlayer(playerid); //Spawn nele! } else //Se ele ciclar em NГO... { format(string, sizeof(string), "%s rejeitou seu Convite.", playername); //Formata a mensgaem com o nome do player que rejeitou o convite SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensagem a quem convidou o player SendClientMessage(playerid, 0x00FF00FF, "Vocк rejeitou o Convite."); //Manda uma mensagem amigavel ao player que rejeitou :P DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar } } return 1; } CMD:membros(playerid) { new playername[MAX_PLAYER_NAME], string[128]; //Criamos variaveis que irгo armazenar o nome e mensganes formatadas if(pDados[playerid][Organizacao] >= 1) { SendClientMessage(playerid, 0xBFC0C2FF, "(=-=-=-=-=-=-=({FFD700}Membros Online{BFC0C2})=-=-=-=-=-=-=)"); for(new i = 0; i < MAX_PLAYERS; i++) //Criamos um loop de acordo com o MAX_PLAYERS { if(IsPlayerConnected(i)) //Verifica se o "i" (player) do loop estб online { if(pDados[i][Organizacao] == pDados[playerid][Organizacao]) //Verifica se a organizaзгo do player (do loop) й igual a do player que digitou o comando { GetPlayerName(i, playername, sizeof(playername)); //Geta o nome do player(loop)... if(pDados[i][Cargo] <= 4) //Verifica se o player do loop e cargo 4 ou menos { format(string, sizeof(string), "Membro: %s, Cargo: %d", playername, pDados[i][Cargo]); //Formata uma mensgaem com o nome e cargo do player (loop) SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem do player que digitou o comando } else { if(pDados[i][Cargo] == 6) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada { format(string, sizeof(string), "Membro: %s, Cargo: Lнder", playername); SendClientMessage(playerid, GetPlayerColor(playerid), string); } else if(pDados[i][Cargo] == 5) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada { format(string, sizeof(string), "Membro: %s, Cargo: Sub-Lнder", playername); SendClientMessage(playerid, GetPlayerColor(playerid), string); } } } } } } else { SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pertence a nenhuma Organizaзгo."); } return 1; //Returnando a 1, nunca se esqueзa! } CMD:r(playerid, params[]) { new text[128], string[128], playername[MAX_PLAYER_NAME]; //Criando variavйs... if(sscanf(params, "s", text)) return SendClientMessage(playerid, 0xAD0000AA, "Uso correto: /r [MENSAGEM]"); //Aqui estб o triunfo do sscanf! if(pDados[playerid][Organizacao] == PRF) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo participa de nenhuma organizaзгo!"); GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem usou o comando format(string, sizeof(string), "(Rбdio) %s [Cargo: %d] diz: %s", playername, pDados[playerid][Cargo], text); //Formata uma mensagem com o nome do player, cargo e a mensgem SendFamilyMessage(pDados[playerid][Organizacao], 0xAD0000AA, string); //Envia a mensagem a organizaзгo do player return 1; //Returnando a 1, nunca se esqueзa! } CMD:convidar(playerid, params[]) { new id, playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME], string[128]; //Cria variaveis que irгo armazenar id, nome e string if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Vк se quem digitou o comando й lнder, se nгo, returna a mensagem if(sscanf(params, "d", id)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /convidar [ID]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o "id" estб online... if(pDados[id][Organizacao] != 0) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador jб estб em uma Organizaзгo."); //Verifica se o player jб estб em alguma organizaзгo, se estiver, returna a mensagem if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode convidar a vocк mesmo."); //Verifica se o "id" = id de quem digitou (playerid) GetPlayerName(id, idname, sizeof(idname)); //Geta o nome do "id" format(string, sizeof(string), "Vocк convidou %s para sua Organizaзгo.", idname); //Formata a mensagem com que foi convidado SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem ao lнder GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem digitou o comando format(string, sizeof(string), "%s estб lhe Convidando para fazer parte da Organizaзгo: %s \nDeseja aceitar?", playername, GetOrgName(pDados[playerid][Organizacao])); //Formata um dialog com o nome de que convidou e o nome da organizaзгo ShowPlayerDialog(id, 666, DIALOG_STYLE_MSGBOX, "Convite para organizaзгo", string, "Sim", "Nгo"); //Cria o dialog de acordo com a "string" e a mostra para o "id" SetPVarInt(id, "OrgConvidado", pDados[playerid][Organizacao]); //Setando PVarInt que serб usar no OnDialogResponse SetPVarInt(id, "QuemConvidou", playerid); //Setando PVarInt que serб usar no OnDialogResponse return 1; //Returnando a 1, nunca se esqueзa! } CMD:promover(playerid, params[]) { new id, cargo, string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Cria as vбriveis... if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Verifica se o player que digitou o comando й lнder if(sscanf(params, "dd", id, cargo)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /promover [ID] [CARGO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o player que serб promovido estб online if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк."); //Verifica se o "id" й da mesma organizaзгo do lнder if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode promover a vocк mesmo."); //Verifica se o "id" й ele mesmo (playerid) if(cargo >= 1 || cargo <= 5) //Verifica se o cargo estб entre 1 a 5 { pDados[id][Cargo] = cargo; //Seta o cargo do player de acordo com o "cargo" que o lнder digitou GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que digitou o comando GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem recebeu a promoзгo format(string, sizeof(string), "%s promoveu o membro %s para o Cargo %d.", playername, idname, cargo); //Formata a mesgaem com quem prommoveu, quem foi promovido e o cargo SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organizaзгo format(string, sizeof(string), "%s te promoveu para o Cargo %d.", playername, cargo); //Formata a mensgame... SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mesngaem para quem foi promovido } else //Caso o cargo nгo esta de 1 a 5, envia a mensagem abaixo: { SendClientMessage(playerid, 0xAD0000AA, "Cargos de 1 a 5"); return 1; } return 1; //Returnando a 1, nunca se esqueзa! } CMD:demitir(playerid, params[]) { new id, motivo[128], string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Criando variaveis :P if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Verifica se o player que digitou o comando й lider if(sscanf(params, "ds", id, motivo)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /demitir [ID] [MOTIVO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se quem serб demitido estб online if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк."); //Verifica se o "id" й da mesma organizaзгo do lнder if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode demitir a vocк mesmo."); //Verifica se o "id" й ele mesmo (playerid) pDados[id][Organizacao] = PRF; pDados[id][Cargo] = 0; //Seta o cargo od player a 0 GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem demitiu GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem foi demitido format(string, sizeof(string), "%s demitiu o membro %s da Organizaзгo.", playername, idname); //Formata uma mensagem com o nome de quem demitiu e quem foi demitido SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organizaзгo format(string, sizeof(string), "%s te demitiu da Organizaзгo. Motivo: %s.", playername, motivo); //Formata uma mensagem com o nome de quem demitiu e o motivo SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mensagem para quem foi demitido SpawnPlayer(id); //Spawn no nego! return 1; //Returnando a 1, nunca se esqueзa! } CMD:darlider(playerid, params[]) { new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME]; //Cria vбriaveis que irб armazenar o id do lнder, a organizaзгo, o nome etc... if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado a usar este Comando."); //Verifica se o player estб logado na RCON, se nгo, returna a mensagem if(sscanf(params, "ii", id, org)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /darlider [ID] [ORGANIZAЗГO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o player que iria ser setado lнder estб online if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode dar lider a vocк mesmo."); //Verifica se o "id" й igual ao seu (playerid) GetPlayerName(id, quemganhou, sizeof(quemganhou)); //Geta o nome de quem ganhou a lideanзa GetPlayerName(playerid, quemdeu, sizeof(quemdeu)); //Geta o nome do admin que deu o lнder format(string, sizeof(string), "Vocк deu lнder da Organizaзгo %s para %s(ID: %d)", GetOrgName(org), quemganhou, id); //Formata uma mensagem com o nome de quem ganhou a lideranзa, o nome da orgnizaзгo que foi setada e o "id" SendClientMessage(playerid, 0x00F6F6AA, string); //Manda a mensgem formatada para quem digitou o comando (quem deu o lнder) format(string, sizeof(string), "%s(ID: %d) te deu lнder da Organizaзгo %s.", quemdeu, playerid, GetOrgName(org)); //Formata uma mensgame com quem deu a lideranзa, o "playerid" e o nome organizaзгo setada SendClientMessage(id, 0x00F6F6AA, string); //Envia a mensgaem formatada para que recebeu a lideranзa format(string, sizeof(string), "%s(ID: %d) й o novo lнder da Organizaзгo %s.", quemganhou, id, GetOrgName(org)); //Formata a mensagem... SendClientMessageToAll(0x00F6F6AA, string); //Envia a mensagem para todos Online pDados[id][Organizacao] = org; //Seta a organizaзгo do "id" pDados[id][Cargo] = 6; //Seta o cargo (lideranзa) do "id" SpawnPlayer(id); //Spawna o player que rebeu a lideranзa return 1; //Returnando a 1, nunca se esqueзa! } CMD:equipar(playerid) { if(pDados[playerid][Organizacao] == PRF) { SendClientMessage(playerid, 0xAD0000AA, "Vocк й Civil e nгo pode equipar."); } else if(pDados[playerid][Organizacao] == ) { if(!IsPlayerInRangeOfPoint(playerid, 3.0,217,970.2272,-1520.6815,13.5504,2.1983,0,0,0,0,0,0)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar"); new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб GivePlayerWeapon(playerid, 24, Armas_); GivePlayerWeapon(playerid, 25, Armas_); GivePlayerWeapon(playerid, 29, Armas_); GivePlayerWeapon(playerid, 31, Armas_); GivePlayerWeapon(playerid, 32, Armas_); GivePlayerWeapon(playerid, 34, Armas_); } else if(pDados[playerid][Organizacao] == ) { if(!IsPlayerInRangeOfPoint(playerid, 3.0,)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar"); new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб GivePlayerWeapon(playerid, 24, Armas_); GivePlayerWeapon(playerid, 25, Armas_); GivePlayerWeapon(playerid, 29, Armas_); GivePlayerWeapon(playerid, 31, Armas_); GivePlayerWeapon(playerid, 32, Armas_); GivePlayerWeapon(playerid, 34, Armas_); } else if(pDados[playerid][Organizacao] == ) { if(!IsPlayerInRangeOfPoint(playerid, 3.0,)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar"); new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб GivePlayerWeapon(playerid, 24, Armas_); GivePlayerWeapon(playerid, 25, Armas_); GivePlayerWeapon(playerid, 29, Armas_); GivePlayerWeapon(playerid, 31, Armas_); GivePlayerWeapon(playerid, 32, Armas_); GivePlayerWeapon(playerid, 34, Armas_); } return 1; //Returnando a 1, nunca se esqueзa! } stock GetOrgName(orgid) { new str[30]; if(orgid == 0) { str = "PRF"; } else if(orgid == 1) { str = ""; } else if(orgid == 2) { str = ""; } else if(orgid == 3) { str = ""; } return str; } stock SendFamilyMessage(orgid, cor, mensagem[]) //stock que envia a mensagem para tal organizaзгo de acordo com "ogrid" { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(pDados[i][Organizacao] == orgid) { SendClientMessage(i, cor, mensagem); } } } return 0; }
D:\gm\PRF.pwn(7) : error 074: #define pattern must start with an alphabetic character D:\gm\PRF.pwn(8) : error 074: #define pattern must start with an alphabetic character D:\gm\PRF.pwn(9) : error 074: #define pattern must start with an alphabetic character D:\gm\PRF.pwn(95) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(95) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(95) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(95) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(95) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(95) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(95) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(95) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(97) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(99) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(99) : error 035: argument type mismatch (argument 2) D:\gm\PRF.pwn(101) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(103) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(103) : error 035: argument type mismatch (argument 2) D:\gm\PRF.pwn(105) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(107) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(107) : error 035: argument type mismatch (argument 2) D:\gm\PRF.pwn(294) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(296) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(296) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(296) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(296) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(296) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(296) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(296) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(296) : warning 202: number of arguments does not match definition D:\gm\PRF.pwn(305) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(307) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(307) : error 001: expected token: ")", but found "return" D:\gm\PRF.pwn(316) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(318) : error 029: invalid expression, assumed zero D:\gm\PRF.pwn(318) : error 001: expected token: ")", but found "return" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 19 Errors.
#include <a_samp>
#include <a_zcmd> //Adicionando o ZCMD
#include <sscanf> //Adicionando o sscanf
#include <DOF2> //Adicionando o DOF2
#define PRF 60
/*#define 1
#define 2
#define 3
#define C_PRF
#define C_
#define C_
#define C_ */
enum PlayerDados //O enum serve, na maioria das veses, para ser usado em outras variaveis como pode ver abaixo
{
Organizacao,
Cargo
}
new pDados[MAX_PLAYERS][PlayerDados]; //Criamos a varнavel que amarzenarб os Dados do player
main()
{
print("\n----------------------------------");
print(" [GM] DESCRIЗГO DO GAMEMODE");
print("----------------------------------\n");
}
public OnGameModeExit()
{
DOF2_Exit(); //Sempre coloque isto aqui quando estiver a usar DOF2, ou irб dar um WARN, e mau funcionamento da include
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SpawnPlayer(playerid); //Ao aparecer aqueles setinhas (<<< >>> SPAWN), o jgador irб levar Spawn
return 1;
}
public OnPlayerConnect(playerid)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername);
pDados[playerid][Organizacao] = DOF2_GetInt(arquivo, "Organizaзгo"); //Setamos "pDados[playerid][Organizacao]" de acordo com a TAG getada do "arquivo"
pDados[playerid][Cargo] = DOF2_GetInt(arquivo, "Cargo"); //Setamos "pDados[playerid][Cargo]" de acordo com a TAG getada do "arquivo"
SpawnPlayer(playerid); //Dб SPAWN no player
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername);
if(DOF2_FileExists(arquivo)) //Se a Conta existir
{
DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
else //Se a conta nгo esxitir
{
DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player
DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
return 1;
}
public OnPlayerUpdate(playerid)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername);
if(DOF2_FileExists(arquivo)) //Se a Conta existir
{
DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
else //Se a conta nгo esxitir
{
DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player
DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
return 1;
}
public OnPlayerSpawn(playerid)
{
if(pDados[playerid][Organizacao] == PRF)
{
SetPlayerPos(playerid, 972.3825,-1544.0740,13.6026);
}
/* else if(pDados[playerid][Organizacao] == )
{
SetPlayerPos(playerid, );
}
else if(pDados[playerid][Organizacao] == )
{
SetPlayerPos(playerid, );
}
else if(pDados[playerid][Organizacao] == )
{
SetPlayerPos(playerid, );
} */
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SpawnPlayer(playerid); //Spawn no nego!
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 600)
{
new playername[MAX_PLAYER_NAME], string[128]; //Variaveis que irб armazenar o nome e "string"
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que aparaceu o dialog
if(response) //Se ele clicar em SIM...
{
pDados[playerid][Organizacao] = GetPVarInt(playerid, "OrgConvidado"); //Seta a organizaзгo de acordo com a PVarInt do comando /convida
pDados[playerid][Cargo] = 1; //Seta o cargo a 1
format(string, sizeof(string), "%s aceitou seu Convite.", playername); //Formata uma mensagem com o nome do player que aceitou
SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensgaem a quem convidou
format(string, sizeof(string), "%s й o mais novo membro da Organizaзгo.", playername); //Formata uma mensgaem com o nome do player que aceitou
SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Manda a mensagem para a organizaзгo do player
SendClientMessage(playerid, 0x00FF00FF, "Vocк aceitou o Convite."); //Manda uma mensagem amigavel ao player que aceitou :P
DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
SpawnPlayer(playerid); //Spawn nele!
}
else //Se ele ciclar em NГO...
{
format(string, sizeof(string), "%s rejeitou seu Convite.", playername); //Formata a mensgaem com o nome do player que rejeitou o convite
SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensagem a quem convidou o player
SendClientMessage(playerid, 0x00FF00FF, "Vocк rejeitou o Convite."); //Manda uma mensagem amigavel ao player que rejeitou :P
DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
}
}
return 1;
}
CMD:membros(playerid)
{
new playername[MAX_PLAYER_NAME], string[128]; //Criamos variaveis que irгo armazenar o nome e mensganes formatadas
if(pDados[playerid][Organizacao] >= 1)
{
SendClientMessage(playerid, 0xBFC0C2FF, "(=-=-=-=-=-=-=({FFD700}Membros Online{BFC0C2})=-=-=-=-=-=-=)");
for(new i = 0; i < MAX_PLAYERS; i++) //Criamos um loop de acordo com o MAX_PLAYERS
{
if(IsPlayerConnected(i)) //Verifica se o "i" (player) do loop estб online
{
if(pDados[i][Organizacao] == pDados[playerid][Organizacao]) //Verifica se a organizaзгo do player (do loop) й igual a do player que digitou o comando
{
GetPlayerName(i, playername, sizeof(playername)); //Geta o nome do player(loop)...
if(pDados[i][Cargo] <= 4) //Verifica se o player do loop e cargo 4 ou menos
{
format(string, sizeof(string), "Membro: %s, Cargo: %d", playername, pDados[i][Cargo]); //Formata uma mensgaem com o nome e cargo do player (loop)
SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem do player que digitou o comando
}
else
{
if(pDados[i][Cargo] == 6) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada
{
format(string, sizeof(string), "Membro: %s, Cargo: Lнder", playername);
SendClientMessage(playerid, GetPlayerColor(playerid), string);
}
else if(pDados[i][Cargo] == 5) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada
{
format(string, sizeof(string), "Membro: %s, Cargo: Sub-Lнder", playername);
SendClientMessage(playerid, GetPlayerColor(playerid), string);
}
}
}
}
}
}
else
{
SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pertence a nenhuma Organizaзгo.");
}
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:r(playerid, params[])
{
new text[128], string[128], playername[MAX_PLAYER_NAME]; //Criando variavйs...
if(sscanf(params, "s", text)) return SendClientMessage(playerid, 0xAD0000AA, "Uso correto: /r [MENSAGEM]"); //Aqui estб o triunfo do sscanf!
if(pDados[playerid][Organizacao] == PRF) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo participa de nenhuma organizaзгo!");
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem usou o comando
format(string, sizeof(string), "(Rбdio) %s [Cargo: %d] diz: %s", playername, pDados[playerid][Cargo], text); //Formata uma mensagem com o nome do player, cargo e a mensgem
SendFamilyMessage(pDados[playerid][Organizacao], 0xAD0000AA, string); //Envia a mensagem a organizaзгo do player
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:convidar(playerid, params[])
{
new id, playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME], string[128]; //Cria variaveis que irгo armazenar id, nome e string
if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Vк se quem digitou o comando й lнder, se nгo, returna a mensagem
if(sscanf(params, "d", id)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /convidar [ID]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o "id" estб online...
if(pDados[id][Organizacao] != 0) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador jб estб em uma Organizaзгo."); //Verifica se o player jб estб em alguma organizaзгo, se estiver, returna a mensagem
if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode convidar a vocк mesmo."); //Verifica se o "id" = id de quem digitou (playerid)
GetPlayerName(id, idname, sizeof(idname)); //Geta o nome do "id"
format(string, sizeof(string), "Vocк convidou %s para sua Organizaзгo.", idname); //Formata a mensagem com que foi convidado
SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem ao lнder
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem digitou o comando
format(string, sizeof(string), "%s estб lhe Convidando para fazer parte da Organizaзгo: %s \nDeseja aceitar?", playername, GetOrgName(pDados[playerid][Organizacao])); //Formata um dialog com o nome de que convidou e o nome da organizaзгo
ShowPlayerDialog(id, 666, DIALOG_STYLE_MSGBOX, "Convite para organizaзгo", string, "Sim", "Nгo"); //Cria o dialog de acordo com a "string" e a mostra para o "id"
SetPVarInt(id, "OrgConvidado", pDados[playerid][Organizacao]); //Setando PVarInt que serб usar no OnDialogResponse
SetPVarInt(id, "QuemConvidou", playerid); //Setando PVarInt que serб usar no OnDialogResponse
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:promover(playerid, params[])
{
new id, cargo, string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Cria as vбriveis...
if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Verifica se o player que digitou o comando й lнder
if(sscanf(params, "dd", id, cargo)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /promover [ID] [CARGO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o player que serб promovido estб online
if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк."); //Verifica se o "id" й da mesma organizaзгo do lнder
if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode promover a vocк mesmo."); //Verifica se o "id" й ele mesmo (playerid)
if(cargo >= 1 || cargo <= 5) //Verifica se o cargo estб entre 1 a 5
{
pDados[id][Cargo] = cargo; //Seta o cargo do player de acordo com o "cargo" que o lнder digitou
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que digitou o comando
GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem recebeu a promoзгo
format(string, sizeof(string), "%s promoveu o membro %s para o Cargo %d.", playername, idname, cargo); //Formata a mesgaem com quem prommoveu, quem foi promovido e o cargo
SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organizaзгo
format(string, sizeof(string), "%s te promoveu para o Cargo %d.", playername, cargo); //Formata a mensgame...
SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mesngaem para quem foi promovido
}
else //Caso o cargo nгo esta de 1 a 5, envia a mensagem abaixo:
{
SendClientMessage(playerid, 0xAD0000AA, "Cargos de 1 a 5");
return 1;
}
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:demitir(playerid, params[])
{
new id, motivo[128], string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Criando variaveis :P
if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Verifica se o player que digitou o comando й lider
if(sscanf(params, "ds", id, motivo)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /demitir [ID] [MOTIVO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se quem serб demitido estб online
if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк."); //Verifica se o "id" й da mesma organizaзгo do lнder
if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode demitir a vocк mesmo."); //Verifica se o "id" й ele mesmo (playerid)
pDados[id][Organizacao] = PRF;
pDados[id][Cargo] = 0; //Seta o cargo od player a 0
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem demitiu
GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem foi demitido
format(string, sizeof(string), "%s demitiu o membro %s da Organizaзгo.", playername, idname); //Formata uma mensagem com o nome de quem demitiu e quem foi demitido
SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organizaзгo
format(string, sizeof(string), "%s te demitiu da Organizaзгo. Motivo: %s.", playername, motivo); //Formata uma mensagem com o nome de quem demitiu e o motivo
SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mensagem para quem foi demitido
SpawnPlayer(id); //Spawn no nego!
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:darlider(playerid, params[])
{
new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME]; //Cria vбriaveis que irб armazenar o id do lнder, a organizaзгo, o nome etc...
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado a usar este Comando."); //Verifica se o player estб logado na RCON, se nгo, returna a mensagem
if(sscanf(params, "ii", id, org)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /darlider [ID] [ORGANIZAЗГO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o player que iria ser setado lнder estб online
if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode dar lider a vocк mesmo."); //Verifica se o "id" й igual ao seu (playerid)
GetPlayerName(id, quemganhou, sizeof(quemganhou)); //Geta o nome de quem ganhou a lideanзa
GetPlayerName(playerid, quemdeu, sizeof(quemdeu)); //Geta o nome do admin que deu o lнder
format(string, sizeof(string), "Vocк deu lнder da Organizaзгo %s para %s(ID: %d)", GetOrgName(org), quemganhou, id); //Formata uma mensagem com o nome de quem ganhou a lideranзa, o nome da orgnizaзгo que foi setada e o "id"
SendClientMessage(playerid, 0x00F6F6AA, string); //Manda a mensgem formatada para quem digitou o comando (quem deu o lнder)
format(string, sizeof(string), "%s(ID: %d) te deu lнder da Organizaзгo %s.", quemdeu, playerid, GetOrgName(org)); //Formata uma mensgame com quem deu a lideranзa, o "playerid" e o nome organizaзгo setada
SendClientMessage(id, 0x00F6F6AA, string); //Envia a mensgaem formatada para que recebeu a lideranзa
format(string, sizeof(string), "%s(ID: %d) й o novo lнder da Organizaзгo %s.", quemganhou, id, GetOrgName(org)); //Formata a mensagem...
SendClientMessageToAll(0x00F6F6AA, string); //Envia a mensagem para todos Online
pDados[id][Organizacao] = org; //Seta a organizaзгo do "id"
pDados[id][Cargo] = 6; //Seta o cargo (lideranзa) do "id"
SpawnPlayer(id); //Spawna o player que rebeu a lideranзa
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:equipar(playerid)
{
if(pDados[playerid][Organizacao] == PRF)
{
SendClientMessage(playerid, 0xAD0000AA, "Vocк й Civil e nгo pode equipar.");
}
/* else if(pDados[playerid][Organizacao] == )
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0,217,970.2272,-1520.6815,13.5504,2.1983,0,0,0,0,0,0)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб
GivePlayerWeapon(playerid, 24, Armas_);
GivePlayerWeapon(playerid, 25, Armas_);
GivePlayerWeapon(playerid, 29, Armas_);
GivePlayerWeapon(playerid, 31, Armas_);
GivePlayerWeapon(playerid, 32, Armas_);
GivePlayerWeapon(playerid, 34, Armas_);
}
else if(pDados[playerid][Organizacao] == )
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0,)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб
GivePlayerWeapon(playerid, 24, Armas_);
GivePlayerWeapon(playerid, 25, Armas_);
GivePlayerWeapon(playerid, 29, Armas_);
GivePlayerWeapon(playerid, 31, Armas_);
GivePlayerWeapon(playerid, 32, Armas_);
GivePlayerWeapon(playerid, 34, Armas_);
}
else if(pDados[playerid][Organizacao] == )
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0,)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб
GivePlayerWeapon(playerid, 24, Armas_);
GivePlayerWeapon(playerid, 25, Armas_);
GivePlayerWeapon(playerid, 29, Armas_);
GivePlayerWeapon(playerid, 31, Armas_);
GivePlayerWeapon(playerid, 32, Armas_);
GivePlayerWeapon(playerid, 34, Armas_);
} */
return 1; //Returnando a 1, nunca se esqueзa!
}
stock GetOrgName(orgid)
{
new str[30];
if(orgid == 0)
{
str = "PRF";
}
else if(orgid == 1)
{
str = "";
}
else if(orgid == 2)
{
str = "";
}
else if(orgid == 3)
{
str = "";
}
return str;
}
stock SendFamilyMessage(orgid, cor, mensagem[]) //stock que envia a mensagem para tal organizaзгo de acordo com "ogrid"
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(pDados[i][Organizacao] == orgid)
{
SendClientMessage(i, cor, mensagem);
}
}
}
return 0;
}
pawn Код:
|
#define 2
#include <a_samp>
#include <zcmd> //Adicionando o ZCMD
#include <sscanf> //Adicionando o sscanf
#include <DOF2> //Adicionando o DOF2
#define PRF 60
#define Muda 1
#define Muda_ 2
#define Muda_a 3
enum PlayerDados //O enum serve, na maioria das veses, para ser usado em outras variaveis como pode ver abaixo
{
Organizacao,
Cargo
}
new pDados[MAX_PLAYERS][PlayerDados]; //Criamos a varнavel que amarzenarб os Dados do player
main()
{
print("\n----------------------------------");
print(" [GM] DESCRIЗГO DO GAMEMODE");
print("----------------------------------\n");
}
public OnGameModeExit()
{
DOF2_Exit(); //Sempre coloque isto aqui quando estiver a usar DOF2, ou irб dar um WARN, e mau funcionamento da include
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SpawnPlayer(playerid); //Ao aparecer aqueles setinhas (<<< >>> SPAWN), o jgador irб levar Spawn
return 1;
}
public OnPlayerConnect(playerid)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername);
pDados[playerid][Organizacao] = DOF2_GetInt(arquivo, "Organizacao"); //Setamos "pDados[playerid][Organizacao]" de acordo com a TAG getada do "arquivo"
pDados[playerid][Cargo] = DOF2_GetInt(arquivo, "Cargo"); //Setamos "pDados[playerid][Cargo]" de acordo com a TAG getada do "arquivo"
SpawnPlayer(playerid); //Dб SPAWN no player
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername);
if(DOF2_FileExists(arquivo)) //Se a Conta existir
{
DOF2_SetInt(arquivo, "Organizacao", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizacao"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
else //Se a conta nгo esxitir
{
DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player
DOF2_SetInt(arquivo, "Organizacao", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizacao"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
return 1;
}
public OnPlayerUpdate(playerid)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "ContasPRF/%s", playername);
if(DOF2_FileExists(arquivo)) //Se a Conta existir
{
DOF2_SetInt(arquivo, "Organizacao", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizacao"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
else //Se a conta nгo esxitir
{
DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player
DOF2_SetInt(arquivo, "Organizacao", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizacao"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
return 1;
}
public OnPlayerSpawn(playerid)
{
if(pDados[playerid][Organizacao] == PRF)
{
SetSpawnInfo(playerid, PRF, 217, 972.3825,-1544.0740,13.6026,178.2698,0,0,0,0,0,0);// Use assim que й melhor do que o que vocк tinha feito
}
else if(pDados[playerid][Organizacao] == Muda_)
{
SetSpawnInfo(playerid, Muda_, 217, 972.3825,-1544.0740,13.6026,178.2698,0,0,0,0,0,0);// Use assim que й melhor do que o que vocк tinha feito
}
else if(pDados[playerid][Organizacao] == Muda_a)
{
SetSpawnInfo(playerid, Muda_a, 217, 972.3825,-1544.0740,13.6026,178.2698,0,0,0,0,0,0);// Use assim que й melhor do que o que vocк tinha feito
}
else if(pDados[playerid][Organizacao] == Muda)
{
SetSpawnInfo(playerid, Muda, 217, 972.3825,-1544.0740,13.6026,178.2698,0,0,0,0,0,0);// Use assim que й melhor do que o que vocк tinha feito
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SpawnPlayer(playerid); //Spawn no nego!
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 600)
{
new playername[MAX_PLAYER_NAME], string[128]; //Variaveis que irб armazenar o nome e "string"
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que aparaceu o dialog
if(response) //Se ele clicar em SIM...
{
pDados[playerid][Organizacao] = GetPVarInt(playerid, "OrgConvidado"); //Seta a organizaзгo de acordo com a PVarInt do comando /convida
pDados[playerid][Cargo] = 1; //Seta o cargo a 1
format(string, sizeof(string), "%s aceitou seu Convite.", playername); //Formata uma mensagem com o nome do player que aceitou
SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensgaem a quem convidou
format(string, sizeof(string), "%s й o mais novo membro da Organizaзгo.", playername); //Formata uma mensgaem com o nome do player que aceitou
SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Manda a mensagem para a organizaзгo do player
SendClientMessage(playerid, 0x00FF00FF, "Vocк aceitou o Convite."); //Manda uma mensagem amigavel ao player que aceitou :P
DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
SpawnPlayer(playerid); //Spawn nele!
}
else //Se ele ciclar em NГO...
{
format(string, sizeof(string), "%s rejeitou seu Convite.", playername); //Formata a mensgaem com o nome do player que rejeitou o convite
SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensagem a quem convidou o player
SendClientMessage(playerid, 0x00FF00FF, "Vocк rejeitou o Convite."); //Manda uma mensagem amigavel ao player que rejeitou :P
DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
}
}
return 1;
}
CMD:membros(playerid)
{
new playername[MAX_PLAYER_NAME], string[128]; //Criamos variaveis que irгo armazenar o nome e mensganes formatadas
if(pDados[playerid][Organizacao] >= 1)
{
SendClientMessage(playerid, 0xBFC0C2FF, "(=-=-=-=-=-=-=({FFD700}Membros Online{BFC0C2})=-=-=-=-=-=-=)");
for(new i = 0; i < MAX_PLAYERS; i++) //Criamos um loop de acordo com o MAX_PLAYERS
{
if(IsPlayerConnected(i)) //Verifica se o "i" (player) do loop estб online
{
if(pDados[i][Organizacao] == pDados[playerid][Organizacao]) //Verifica se a organizaзгo do player (do loop) й igual a do player que digitou o comando
{
GetPlayerName(i, playername, sizeof(playername)); //Geta o nome do player(loop)...
if(pDados[i][Cargo] <= 4) //Verifica se o player do loop e cargo 4 ou menos
{
format(string, sizeof(string), "Membro: %s, Cargo: %d", playername, pDados[i][Cargo]); //Formata uma mensgaem com o nome e cargo do player (loop)
SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem do player que digitou o comando
}
else
{
if(pDados[i][Cargo] == 6) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada
{
format(string, sizeof(string), "Membro: %s, Cargo: Lнder", playername);
SendClientMessage(playerid, GetPlayerColor(playerid), string);
}
else if(pDados[i][Cargo] == 5) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada
{
format(string, sizeof(string), "Membro: %s, Cargo: Sub-Lнder", playername);
SendClientMessage(playerid, GetPlayerColor(playerid), string);
}
}
}
}
}
}
else
{
SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pertence a nenhuma Organizaзгo.");
}
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:r(playerid, params[])
{
new text[128], string[128], playername[MAX_PLAYER_NAME]; //Criando variavйs...
if(sscanf(params, "s", text)) return SendClientMessage(playerid, 0xAD0000AA, "Uso correto: /r [MENSAGEM]"); //Aqui estб o triunfo do sscanf!
if(pDados[playerid][Organizacao] == PRF) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo participa de nenhuma organizaзгo!");
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem usou o comando
format(string, sizeof(string), "(Rбdio) %s [Cargo: %d] diz: %s", playername, pDados[playerid][Cargo], text); //Formata uma mensagem com o nome do player, cargo e a mensgem
SendFamilyMessage(pDados[playerid][Organizacao], 0xAD0000AA, string); //Envia a mensagem a organizaзгo do player
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:convidar(playerid, params[])
{
new id, playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME], string[128]; //Cria variaveis que irгo armazenar id, nome e string
if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Vк se quem digitou o comando й lнder, se nгo, returna a mensagem
if(sscanf(params, "d", id)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /convidar [ID]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o "id" estб online...
if(pDados[id][Organizacao] != 0) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador jб estб em uma Organizaзгo."); //Verifica se o player jб estб em alguma organizaзгo, se estiver, returna a mensagem
if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode convidar a vocк mesmo."); //Verifica se o "id" = id de quem digitou (playerid)
GetPlayerName(id, idname, sizeof(idname)); //Geta o nome do "id"
format(string, sizeof(string), "Vocк convidou %s para sua Organizaзгo.", idname); //Formata a mensagem com que foi convidado
SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem ao lнder
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem digitou o comando
format(string, sizeof(string), "%s estб lhe Convidando para fazer parte da Organizaзгo: %s \nDeseja aceitar?", playername, GetOrgName(pDados[playerid][Organizacao])); //Formata um dialog com o nome de que convidou e o nome da organizaзгo
ShowPlayerDialog(id, 666, DIALOG_STYLE_MSGBOX, "Convite para organizaзгo", string, "Sim", "Nгo"); //Cria o dialog de acordo com a "string" e a mostra para o "id"
SetPVarInt(id, "OrgConvidado", pDados[playerid][Organizacao]); //Setando PVarInt que serб usar no OnDialogResponse
SetPVarInt(id, "QuemConvidou", playerid); //Setando PVarInt que serб usar no OnDialogResponse
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:promover(playerid, params[])
{
new id, cargo, string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Cria as vбriveis...
if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Verifica se o player que digitou o comando й lнder
if(sscanf(params, "dd", id, cargo)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /promover [ID] [CARGO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o player que serб promovido estб online
if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк."); //Verifica se o "id" й da mesma organizaзгo do lнder
if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode promover a vocк mesmo."); //Verifica se o "id" й ele mesmo (playerid)
if(cargo >= 1 || cargo <= 5) //Verifica se o cargo estб entre 1 a 5
{
pDados[id][Cargo] = cargo; //Seta o cargo do player de acordo com o "cargo" que o lнder digitou
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que digitou o comando
GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem recebeu a promoзгo
format(string, sizeof(string), "%s promoveu o membro %s para o Cargo %d.", playername, idname, cargo); //Formata a mesgaem com quem prommoveu, quem foi promovido e o cargo
SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organizaзгo
format(string, sizeof(string), "%s te promoveu para o Cargo %d.", playername, cargo); //Formata a mensgame...
SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mesngaem para quem foi promovido
}
else //Caso o cargo nгo esta de 1 a 5, envia a mensagem abaixo:
{
SendClientMessage(playerid, 0xAD0000AA, "Cargos de 1 a 5");
return 1;
}
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:demitir(playerid, params[])
{
new id, motivo[128], string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Criando variaveis :P
if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Verifica se o player que digitou o comando й lider
if(sscanf(params, "ds", id, motivo)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /demitir [ID] [MOTIVO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se quem serб demitido estб online
if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк."); //Verifica se o "id" й da mesma organizaзгo do lнder
if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode demitir a vocк mesmo."); //Verifica se o "id" й ele mesmo (playerid)
pDados[id][Organizacao] = PRF;
pDados[id][Cargo] = 0; //Seta o cargo od player a 0
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem demitiu
GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem foi demitido
format(string, sizeof(string), "%s demitiu o membro %s da Organizaзгo.", playername, idname); //Formata uma mensagem com o nome de quem demitiu e quem foi demitido
SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organizaзгo
format(string, sizeof(string), "%s te demitiu da Organizaзгo. Motivo: %s.", playername, motivo); //Formata uma mensagem com o nome de quem demitiu e o motivo
SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mensagem para quem foi demitido
SpawnPlayer(id); //Spawn no nego!
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:darlider(playerid, params[])
{
new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME]; //Cria vбriaveis que irб armazenar o id do lнder, a organizaзгo, o nome etc...
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado a usar este Comando."); //Verifica se o player estб logado na RCON, se nгo, returna a mensagem
if(sscanf(params, "ii", id, org)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /darlider [ID] [ORGANIZAЗГO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o player que iria ser setado lнder estб online
if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode dar lider a vocк mesmo."); //Verifica se o "id" й igual ao seu (playerid)
GetPlayerName(id, quemganhou, sizeof(quemganhou)); //Geta o nome de quem ganhou a lideanзa
GetPlayerName(playerid, quemdeu, sizeof(quemdeu)); //Geta o nome do admin que deu o lнder
format(string, sizeof(string), "Vocк deu lнder da Organizaзгo %s para %s(ID: %d)", GetOrgName(org), quemganhou, id); //Formata uma mensagem com o nome de quem ganhou a lideranзa, o nome da orgnizaзгo que foi setada e o "id"
SendClientMessage(playerid, 0x00F6F6AA, string); //Manda a mensgem formatada para quem digitou o comando (quem deu o lнder)
format(string, sizeof(string), "%s(ID: %d) te deu lнder da Organizaзгo %s.", quemdeu, playerid, GetOrgName(org)); //Formata uma mensgame com quem deu a lideranзa, o "playerid" e o nome organizaзгo setada
SendClientMessage(id, 0x00F6F6AA, string); //Envia a mensgaem formatada para que recebeu a lideranзa
format(string, sizeof(string), "%s(ID: %d) й o novo lнder da Organizaзгo %s.", quemganhou, id, GetOrgName(org)); //Formata a mensagem...
SendClientMessageToAll(0x00F6F6AA, string); //Envia a mensagem para todos Online
pDados[id][Organizacao] = org; //Seta a organizaзгo do "id"
pDados[id][Cargo] = 6; //Seta o cargo (lideranзa) do "id"
SpawnPlayer(id); //Spawna o player que rebeu a lideranзa
return 1; //Returnando a 1, nunca se esqueзa!
}
CMD:equipar(playerid)
{
if(pDados[playerid][Organizacao] == PRF)
{
SendClientMessage(playerid, 0xAD0000AA, "Vocк й Civil e nгo pode equipar.");
}
else if(pDados[playerid][Organizacao] == Muda_)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0,970.2272,-1520.6815,13.5504)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб
GivePlayerWeapon(playerid, 24, Armas_);
GivePlayerWeapon(playerid, 25, Armas_);
GivePlayerWeapon(playerid, 29, Armas_);
GivePlayerWeapon(playerid, 31, Armas_);
GivePlayerWeapon(playerid, 32, Armas_);
GivePlayerWeapon(playerid, 34, Armas_);
}
else if(pDados[playerid][Organizacao] == Muda_a)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0,970.2272,-1520.6815,13.5504)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб
GivePlayerWeapon(playerid, 24, Armas_);
GivePlayerWeapon(playerid, 25, Armas_);
GivePlayerWeapon(playerid, 29, Armas_);
GivePlayerWeapon(playerid, 31, Armas_);
GivePlayerWeapon(playerid, 32, Armas_);
GivePlayerWeapon(playerid, 34, Armas_);
}
else if(pDados[playerid][Organizacao] == Muda)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0,970.2272,-1520.6815,13.5504)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
new Armas_ = 50*pDados[playerid][Cargo]; //Isto fбra que multiplique 50 pelo cargo do player, sendo assim, a muniзгo que o player terб
GivePlayerWeapon(playerid, 24, Armas_);
GivePlayerWeapon(playerid, 25, Armas_);
GivePlayerWeapon(playerid, 29, Armas_);
GivePlayerWeapon(playerid, 31, Armas_);
GivePlayerWeapon(playerid, 32, Armas_);
GivePlayerWeapon(playerid, 34, Armas_);
}
return 1; //Returnando a 1, nunca se esqueзa!
}
stock GetOrgName(orgid)
{
new str[30];
if(orgid == 0)
{
str = "PRF";
}
else if(orgid == 1)
{
str = "muda aqui";
}
else if(orgid == 2)
{
str = "muda aqui";
}
else if(orgid == 3)
{
str = "muda aqui";
}
return str;
}
stock SendFamilyMessage(orgid, cor, mensagem[]) //stock que envia a mensagem para tal organizaзгo de acordo com "ogrid"
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(pDados[i][Organizacao] == orgid)
{
SendClientMessage(i, cor, mensagem);
}
}
}
return 0;
}
pois й nй mas caso ele ainda esteja procurando ta aew sem nenhum warning
espero que funcione e que ele venha falar se funfo ou nao |