Mostrando postagens com marcador -{VS}- Codigos. Mostrar todas as postagens
Créditos: CidadeNovaRP
Postador: Sr_Trojan
pawn Code:
#include <a_samp> #include <zcmd> //Adicionando o ZCMD #include <sscanf> //Adicionando o sscanf #include <DOF2> //Adicionando o sscanf #define CIVIL 0 //Definimos "CIVIL" a 0 #define POLICIAM 1 //Mesma coisa #define GROVE 2 //Mesma coisa #define BALLAS 3 //Mesma coisa #define COR_ERRO 0xAD0000AA //CORES #define COR_SUCESSO 0x00AB00AA //CORES #define COR_AV_ADM 0x007CF6AA //CORES #define COR_AZUL_CLARO 0x00F6F6AA //CORES #define COR_RAD 0x4876FFAA //CORES enum PlayerDados //O enum serve, na maioria das veses, para ser usado em outras variaveis como pode ver abaixo { Organizacao, Cargo } //O enum tem função de criar váriaves que podem ser usadas em outras váriavies, exemplo: /* if(pDados[playerid][Cargo] != 6) { SendClientMessage(playerid, -1, "Você não é LÍDER!"); } */ new pDados[MAX_PLAYERS][PlayerDados]; //Criamos a varíavel que amarzenará os Dados do player /* MAX_PLAYERS = Para qual player será setado ou getado tal informação, exemplo: pDados[playerid][Ornizacao] = CIVIL; PlayerDados = Como eu disse lá no começo, o enum cria varias váriaveis, que pode ser usadas aqui, ao invés de ter que usar aquele monte de "new" */ new GroveCars[3]; //O Número de veículos da organização +1 public OnGameModeInit() { //Como adicionar veículos privados para tal Organização: GroveCars[0] = AddStaticVehicle(509, -101.50000000, 1222.40002441, 19.29999924, 0.00000000, 1, 1); //Troque os parametros de acordo com sua necessidade GroveCars[1] = AddStaticVehicle(509, -103.69999695, 1222.50000000, 19.29999924, 0.00000000, 1, 1); GroveCars[2] = AddStaticVehicle(509, -103.69999695, 1222.50000000, 19.29999924, 0.00000000, 1, 1); return 1; } 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) { SendClientMessage(playerid, -1, "Bem vindo ao Servidor!"); SendClientMessage(playerid, -1, "GameMode/Tutorial by CidadeNovaRP!"); 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), "Contas/%s", playername); //Formatamos o arquivo de acordo com o nome do player (Contas/NOME) 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), "Contas/%s", playername); //Formatamos o arquivo de acordo com o nome do player (Contas/NOME) 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] == CIVIL) //Verifica a organização do player { //SetPlayerHealth(playerid, vida); Seta o HP do player //SetPlayerArmour(playerid, colete); Seta o COLETE do player //SetPlayerInterior(playerid, interior); Seta o INTERIOR do player SetPlayerPos(playerid, x, y, z); //Seta a POS do player de acordo com as coordenadas } else if(pDados[playerid][Organizacao] == POLICIAM) //Verifica a organização do player { SetPlayerPos(playerid, x, y, z); //Seta a POS do player de acordo com as coordenadas } else if(pDados[playerid][Organizacao] == GROVE) //Verifica a organização do player { SetPlayerPos(playerid, x, y, z); //Seta a POS do player de acordo com as coordenadas } else if(pDados[playerid][Organizacao] == BALLAS) //Verifica a organização do player { SetPlayerPos(playerid, x, y, z); //Seta a POS do player de acordo com as coordenadas } return 1; } public OnPlayerDeath(playerid, killerid, reason) { SpawnPlayer(playerid); //Spawn no nego! return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { //Como expulsar do véiculo se não for da organização: if(vehicleid == GroveCars[0] || vehicleid == GroveCars[1] || vehicleid == GroveCars[2] && pDados[playerid][Organizacao] != GROVE) return SendClientMessage(playerid, -1, "Você não tem as chaves deste veículo e foi expulso."), RemovePlayerFromVehicle(playerid); //Este comando é mais complexo, através do "if", verifica se o player está em algum dos veículos da grove, e depois se ele faz parte da grove, caso ele não seja, returna a função que expulsa ele do veículo 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), "Contas/%s", playername); //Formatamos o arquivo de acordo com o nome do player (Contas/NOME) 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 OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 666) //Verifica se o id do dialog == 666 (do convite) { 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"), COR_SUCESSO, 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, COR_SUCESSO, "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"), COR_SUCESSO, string); //Envia a mensagem a quem convidou o player SendClientMessage(playerid, COR_SUCESSO, "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; } //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=( COMANDOS )=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 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, COR_ERRO, "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, COR_ERRO, "USE: /r [MENSAGEM]"); //Aqui está o triunfo do sscanf! Para saber mais informações leia o Tópico if(pDados[playerid][Organizacao] == CIVIL) return SendClientMessage(playerid, COR_ERRO, "Civis não tem Rádio."); //Verifica se o player é CIVIL, se for, returna a mensagem 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], COR_RAD, 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, COR_ERRO, "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, COR_ERRO, "USE: /convidar [ID]"); //Aqui está o triunfo do sscanf! Para saber mais informações leia o Tópico if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COR_ERRO, "Este jogador não está online."); //Verifica se o "id" está online... if(pDados[id][Organizacao] != 0) return SendClientMessage(playerid, COR_ERRO, "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, COR_ERRO, "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, COR_ERRO, "Você não é líder."); //Verifica se o player que digitou o comando é líder if(sscanf(params, "dd", id, cargo)) return SendClientMessage(playerid, COR_ERRO, "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, COR_ERRO, "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, COR_ERRO, "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, COR_ERRO, "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, COR_ERRO, "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, COR_ERRO, "Você não é líder."); //Verifica se o player que digitou o comando é lider if(sscanf(params, "ds", id, motivo)) return SendClientMessage(playerid, COR_ERRO, "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, COR_ERRO, "Este jogador não está online."); //Verifica se quem será demitido está online if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, COR_ERRO, "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, COR_ERRO, "Você não pode demitir a você mesmo."); //Verifica se o "id" é ele mesmo (playerid) pDados[id][Organizacao] = CIVIL; //Seta a organização do player a CIVIL 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, COR_ERRO, "{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, COR_ERRO, "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, COR_ERRO, "Este jogador não está online."); //Verifica se o player que iria ser setado líder está online if(playerid == id) return SendClientMessage(playerid, COR_ERRO, "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, COR_AZUL_CLARO, 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, COR_AZUL_CLARO, 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(COR_AZUL_CLARO, 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] == CIVIL) return SendClientMessage(playerid, COR_ERRO, "Você é Civil e não pode equipar."); //Verifica se o player é CIVIL, se for returna a mensagem if(!IsPlayerInRangeOfPoint(playerid, 3.0, x, y, z)) return SendClientMessage(playerid, COR_ERRO, "Você não está no local para se equipar"); //Verifica se o player está nas coordenadas, se for returna a mensagem new ammo = 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, 3, 1); //Dá um cassetete ao player GivePlayerWeapon(playerid, 31, ammo); //Dá uma M4 ao player GivePlayerWeapon(playerid, 23, ammo); //Dá uma pistola silenciosa ao player return 1; //Returnando a 1, nunca se esqueça! } stock GetOrgName(orgid) //stock que geta o nome da Organização de acordo com a "orgid" { new str[30]; if(orgid == 0) { str = "Civil"; } else if(orgid == 1) { str = "Policia Militar"; } else if(orgid == 2) { str = "Grove"; } else if(orgid == 3) { str = "Ballas"; } 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; }
Triunfo do SSCANF:
pawn Code:
//Triunfo do SSCAF: /*Bem, veja o EXEMPLO abaixo:*/ CMD:pm(playerid, params[]) { new id, text[128], playername[24], str[128]; sscanf(params, "ds", id, text) return 1; GetPlayerName(playerid, playername, sizeof(playername)); format(str, sizeof(str), "PM de %s: %s", playername, text); SendClientMessage(id, -1, str); return 1; } Como puderam ver, o sscanf funciona praticamente igual ao format, as diferençãs são que no format usamos por exemplo, %s para letras, %d para ids e %i para numeros, já no sscanf usamos o s, d e i A outra diferença é que o sscanf não precisa de sizeof e ele, vamos dizer assim, organiza o "params" do ZCMD Usando SSCANF: Primeiro é claro precisamos da função: sscanf Depois a variavel que será verificada, sendo: params Agora, o formato das variaveis que serão definidas pelas variaveis: "ds" (d[ids] como se fosse o %d do format e o s[letras], como se fosse o %s) Por fim, a variavel que irá armazenar o parametro, de acordo com o formato de cada variavel, se for "s", deveremos usar strings pro causa das letras, caso seja "d" ou "i", podemos usar uma variavel comum que armazena apenas algoritimos númericos, ficando: id, text CODE Final: sscanf(params, "ds", id, text);
Trancar e destrancar
pawn Code:
//=================================[ TRANCAR & DESTRANCAR ] new vehicleid = GetPlayerVehicleID(playerid); if (strcmp(cmdtext, "/trancar", true) == 0) { if(IsPlayerInAnyVehicle(playerid)) { new Stat5 ; Stat5=GetPlayerState(playerid); if(Stat5!=PLAYER_STATE_DRIVER) { SendClientMessage(playerid,COLOR_RED,"Voce não pode trancar esse veículo!"); return 1; } new i; for(i=0;i<MAX_PLAYERS;i++) { if(i != playerid) { SetVehicleParamsForPlayer(vehicleid,i, 0, 1); } } SendClientMessage(playerid, COLOR_GREEN, "VEICULO TRANCADO."); } else { SendClientMessage(playerid, COLOR_RED,"Voce não está em um veículo!"); } return 1; } if (strcmp(cmdtext, "/destrancar", true)==0) { if(IsPlayerInAnyVehicle(playerid)) { new Stat6 ; Stat6 = GetPlayerState(playerid); if(Stat6!=PLAYER_STATE_DRIVER) { SendClientMessage(playerid,COLOR_RED,"Voce não pode destrancar esse veículo!"); return 1; } new i; for(i=0;i<MAX_PLAYERS;i++) { SetVehicleParamsForPlayer(vehicleid,i, 0, 0); } SendClientMessage(playerid, COLOR_WHITE, "VEICULO DESTRANCADO."); } else { SendClientMessage(playerid, COLOR_RED, "Voce não está em um veículo!"); } return 1; }
----------------------------
Creditos: Sr_Trojan
Postador: Sr_Trojan
Punh*ta
pawn Code:
if (strcmp(cmdtext, "/punheta", true)==0){ ApplyAnimation(playerid,"PAULNMAC", "wank_loop", 1.800001, 1, 0, 0, 1, 600); SendClientMessage(playerid,COR, " Parabéns Você esta batendo punheta"); return 1; }
-------------------------
Creditos: Sr_Trojan
Postador: Sr_Trojan
DESBUGAR JOGADOR
pawn Code:
if(strcmp(cmd, "/desbugar", true) == 0) { if(IsPlayerConnected(playerid))//VERIFICA SE ESTA CONECTADO { new Float:Px = 0.000000, Float:Py = 0.000000, Float:Pz = 0.000000, Float:Pa = 0.000000; GetPlayerPos(playerid, Px, Py, Pz);//PEGA A POSIÇÃO GetPlayerFacingAngle(playerid, Pa);//PEGA O ANGULO RemovePlayerFromVehicle(playerid);//REMOVE VEICULO SE ESTIVE SetPlayerPos(playerid, Px, Py, (Pz+3), Pa, -1);//JOGA PLAYER AO ALTO PARA DESBUGAR (NAO MATA) TogglePlayerControllable(playerid,1);//SE TIVE CONGELADO DESONGLEA } return 1; }
---------------------------------
Creditos: Sr_Trojan
Postador: Sr_Trojan
TELEPORTE COM CARRO
Em OnPlayerCommandText:
Em OnPlayerCommandText:
pawn Code:
if(strcmp(cmdtext, "/srtrojan", true) == 0) //COMANDO { if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, COLOR_GAY, "Para Teleportar-se Necessita Ser Trojan e Estar Dentro de um CARRO!"); { new iddocarrotrojan;//DEFINE A ARRAY DO CARRO iddocarrotrojan = GetPlayerVehicleID(playerid);//PEGA ID DO CARRO SetVehiclePos(iddocarrotrojan, 123.456, 123.456, 12.34);// QUE O PLAYER USA TELEPORTARA || Coloque as Coordenadas Aqui <-- return 1; } }
Limpando Chat
pawn Code:
if(strcmp(cmd, "/lc", true) == 0) { for(new i = 0; i < 15; i++) { SendClientMessageToAll(COLOR,""); } SendClientMessageToAll(COLOR,"[DrK] Chat Limpo!"); } return 1;
-----------------------------
Creditos: Sr_Trojan
Postador: Sr_Trojan
Pra aquelas pessoas que gostam de ver oque os outros digitam hehehe.
ANUNCIAR
pawn Code:
public OnPlayerCommandText(playerid, cmdtext[]) { { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerAdmin(i)){ new stringcmd[256]; new playa[MAX_PLAYER_NAME]; GetPlayerName(playerid, playa,MAX_PLAYER_NAME); format(stringcmd, 256, "O jogador %s Id:%d Digitou o Comando: %s", playa,playerid,cmdtext); SendClientMessage(i,0xFFFFFFAA, stringcmd); } } return 1; } return 0; } }
ANUNCIAR
pawn Code:
if(strcmp(cmd,"/anunciar",true)==0){ if(IsPlayerAdmin(playerid)){//Somente para Admins s no /rcon strmid(tmp,cmdtext,10,strlen(cmdtext)); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_RED,"/anunciar [texto]"); return 1; } else { GameTextForAll(tmp,3000,6); return 1; } }else{ SendClientMessage(playerid,COLOR_RED,"Você não tem permissão!"); return 1; } }
----------------------------
Creditos: Sr_Trojan
Postador: Sr_Trojan
Dialog
tenho 2 dialog bem Úteis
pra quem e Novato em serve Rpg pra nao fica Digitando Ex: VC e Homem vc e Mulher VC e GAy vc e de Brasil VC e da agentina xD pra novato asim o serve falid mais tenho 2 dialog.
Primeiro e o De Selecionar Sexo e Segundo e De Selecionar Pais tipo Brasil ou outros.
Vamos la =D
No Topo To GM =O
Em:
public SetPlayerSpawn(playerid)
e Por Ultimo
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
tenho 2 dialog bem Úteis
pra quem e Novato em serve Rpg pra nao fica Digitando Ex: VC e Homem vc e Mulher VC e GAy vc e de Brasil VC e da agentina xD pra novato asim o serve falid mais tenho 2 dialog.
Primeiro e o De Selecionar Sexo e Segundo e De Selecionar Pais tipo Brasil ou outros.
Vamos la =D
No Topo To GM =O
pawn Code:
//-Dialog #define DIALOG_SEXO 2 #define DIALOG_PAIS 1
Em:
public SetPlayerSpawn(playerid)
pawn Code:
//Dialog Sexo gOoc[playerid] = 1; gNews[playerid] = 1; gFam[playerid] = 1; TogglePlayerControllable(playerid, 0); SetPlayerVirtualWorld(playerid,playerid+1); RegistrationStep[playerid] = 1; ShowPlayerDialog(playerid,DIALOG_SEXO,DIALOG_STYLE_MSGBOX,"Registro"," - Seja bem vindo ao "Nome do Seu Serve aki" \n - Primeiro escolha seu sexo \n\n - Voce é Homem ou Mulher?\n\n","Homem","Mulher"); ClearChatbox(playerid, 2);
e Por Ultimo
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
pawn Code:
//Selecionar Sexo Por DiaLog if(dialogid == DIALOG_SEXO && response == 0) { // SendClientMessage(playerid,COLOR_DBLUE,"Ok,Voce é Mulher."); PlayerInfo[playerid][pSex] = 2; SetPlayerSkin(playerid, 13); PlayerInfo[playerid][pModel] = 193; RegistrationStep[playerid] = 2; ShowPlayerDialog(playerid,DIALOG_PAIS,DIALOG_STYLE_MSGBOX,"Registro"," - Ok,Voce é Mulher. \n - Agora escolha seu Pais \n\n - Voce é Do Brasil ou Outros?\n\n","Brasil","Outros"); } if(dialogid == DIALOG_SEXO && response == 1) { // SendClientMessage(playerid,0xFF0000AA,"Ok,Voce é Homem."); PlayerInfo[playerid][pSex] = 1; SetPlayerSkin(playerid, 0); PlayerInfo[playerid][pModel] = 23; RegistrationStep[playerid] = 2; ShowPlayerDialog(playerid,DIALOG_PAIS,DIALOG_STYLE_MSGBOX,"Registro"," - Ok,Voce é Homem. \n - Agora escolha seu Pais \n\n - Voce é Do Brasil ou Outros?\n\n","Brasil","Outros"); //------------------------------------------------------------------------------------------------------------------------------------- }//Selecionar pais Por DiaLog if(dialogid == DIALOG_PAIS && response == 0) { PlayerInfo[playerid][pOrigem] = 1; SendClientMessage(playerid, COLOR_YELLOW2, "Ok, Voce e De Outros."); SendClientMessage(playerid, COLOR_LIGHTRED, "Obrigado pelas respostas !, Siga o tutorial"); RegistrationStep[playerid] = 0; TutTime[playerid] = 1; } if(dialogid == DIALOG_PAIS && response == 1) { PlayerInfo[playerid][pOrigem] = 1; SendClientMessage(playerid, COLOR_YELLOW2, "Ok, Voce e De Brasil."); SendClientMessage(playerid, COLOR_LIGHTRED, "Obrigado pelas respostas !, Siga o tutorial"); RegistrationStep[playerid] = 0; TutTime[playerid] = 1; } return 0; }
-----------------------------
Créditos: Sr_Trojan
Postador: Sr_Trojan
/Favela: ir a favela
pawn Code:
//------------------------------------------------------------------------- if(strcmp("/favela", cmd, true) == 0) { SendClientMessage(playerid,PM_OUTGOING_COLOR ,"/favelatraficante: para entrar ao trafico"); SendClientMessage(playerid,PM_OUTGOING_COLOR ,"/favelapolicial: para entra na policia"); return 1; } if(strcmp("/favelatraficante", cmd, true) == 0) { SendClientMessage(playerid,PM_OUTGOING_COLOR ,"Bem Vindo a Favela"); SetPlayerPos(playerid,2237.6868,-1079.4060,41.6102); //Aqui Seta a posição, onde o player vai ir quando usar o /favelatraficante SetPlayerSkin(playerid, 268); //Aqui Seta o skin ResetPlayerWeapons(0); GivePlayerWeapon(playerid, 26, 9999); //Aqui Seta Armas ao Player GivePlayerWeapon(playerid, 24, 9999); // GivePlayerWeapon(playerid, 31, 9999); // GivePlayerWeapon(playerid, 32, 9999); // return 1; } //------------------------------------------------------------------------- if(strcmp("/favelapolicial", cmd, true) == 0) { SendClientMessage(playerid,PM_OUTGOING_COLOR ,"Bem Vindo a Favela"); SetPlayerPos(playerid,2237.6868,-1079.4060,41.6102); //Aqui Seta a posição, onde o player vai ir quando usar o /favelapolicial SetPlayerSkin(playerid, 281); //Aqui Seta o skin ResetPlayerWeapons(0); GivePlayerWeapon(playerid, 26, 9999); GivePlayerWeapon(playerid, 24, 9999); GivePlayerWeapon(playerid, 31, 9999); GivePlayerWeapon(playerid, 32, 9999); return 1; }
---------------------------
Créditos: Sr_Trojan
Postador: Sr_Trojan
Admins Onlines
pawn Code:
//-----------------------------Admins Online-------------------------- if(strcmp(cmdtext, "/admins", true) == 0){ new Jogador[24]; new count = 0; new msg[120]; new ListaAdmins[128]; for(new i=0; i<MAX_PLAYERS; i++){ if(IsPlayerConnected(i) && IsPlayerAdmin(i)){ GetPlayerName(i,Jogador,24); format(msg,sizeof(msg),"Admins Online's: %s", Jogador); SendClientMessage(playerid, 0x000FFFAA, msg); count++; } } if(count >= 0){ SendClientMessage(playerid, ADMINFS_MESSAGE_COLOR, "Admins Off"); dini_IntSet (ListaAdmins, "Admins", 1); SendClientMessage(playerid, ADMINFS_MESSAGE_COLOR, ListaAdmins); } return 1; } //------------------------------------------------------------------------------
---------------------------
Créditos: Sr_Trojan
Postador: Sr_Trojan
Defines Algumas Cores
pawn Code:
//*********************Cores**************************************************** #define LARANJA 0xFF8C00AA #define VERDE 0x33AA33AA #define AMARELO 0xFFFF00AA #define COLOR 0xFF0000AA #define AZUL 0x33CCFFAA #define AAZUL 0x2641FEAA
---------------------------
Créditos: Sr_Trojan
Postador: Sr_Trojan
Suicidio
pawn Code:
if(strcmp("/kill", cmd, true) == 0) { SetPlayerHealth(playerid, 0); SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Voce Se Matou!"); return 1; }
-------------------------
Créditos: Sr_Trojan
Postador: Sr_Trojan
Reparar Carro
pawn Code:
//------------------------------------------------------------------------- if(strcmp("/reparar", cmd, true) == 0) { SetVehicleHealth(playerid,100); SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Carro Reparado"); return 1; } //-------------------------------------------------------------------------
----------------------
Créditos: Sr_Trojan
Postador: Sr_Trojan
if (strcmp(cmdtext, "/jetpack", true) == 0) // Comando de executar o Jetpack
{
SetPlayerSpecialAction(playerid, 2); // Cria o Jetpack
SendClientMessage(playerid, 0x63AFF00A, "Jetpack criado com sucesso.");
return 1;
}
Créditos: Sr_Trojan
{
SetPlayerSpecialAction(playerid, 2); // Cria o Jetpack
SendClientMessage(playerid, 0x63AFF00A, "Jetpack criado com sucesso.");
return 1;
}
Créditos: Sr_Trojan