Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- /*----------------------------------Filter Script + Tutorial - Sistema de equipar simples para RP -------------------
- [--------------------------------------Criado por Aninhaah (humildadeforever) ---------------------]
- */
- #define DIALOG_EQUIPAR 1
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[156], idx;
- cmd = strtok(cmdtext, idx);
- if (strcmp(cmd, "/equiparsimples", true) == 0)/* Vai verificar quando o player digitar /equiparsimples
- para executar a função do cmd*/
- {
- new equipamento[50];/* Essa linha e a de baixo vai ser para poder usar o comando da seguinte forma: /equipar 1,
- /equipar 2, /equipar 3,etc*/
- equipamento = strtok(cmdtext, idx);//vai tipo que dar um espaço no cmd, para ser colocado o numero
- if(!strval(equipamento)) return SendClientMessage(playerid,-1,"Use /equiparsimples [ID]");
- //A linha acima manda uma mensagem pro jogador caso ele não use /equipar e um numero.
- if(PlayerInfo[playerid][Org] != 1) return SendClientMessage(playerid,-1,"Você não pode usar esse comando.");
- /*A linha acima é para verificar se o player é de uma certa org para usar o comando, se não for vai aparecer a mensagem
- Ali o != quer dizer "Diferente de 1", ou seja se o player for de qualquer org que não seja a 1, vai aparecer a mensagem
- Existe varios metodos de setar e verificar a org do player, varia de GM pra GM, varios GMs RP se usa da seguinte forma:
- PlayerInfo[playerid][pMember] ou [pMembro] para verificar se é membro, e PlayerInfo[playerid][pLeader] ou [pLider] para verificar se é lider
- */
- if(!IsPlayerInRangeOfPoint(playerid,3.0, 1234.4321,5678.8765,1012.2110)) return SendClientMessage(playerid,-1,"Voce não esta no local para equipar");
- //A linha acima manda uma mensagem pro jogador caso ele não esteja no local ou perto do local onde deve ser digitado o comando
- if(strcmp(equipamento, "1", true) == 0)
- {
- ResetPlayerWeapons(playerid); //Primeiro retira todas armas que ele tem para dar as outras
- SendClientMessage(playerid,-1,"Você recebeu o equipamento numero 1");//Manda mensagem pro player dizendo que ele recebeu o equipamento 1
- GivePlayerWeapon(playerid,24,100);//Dá uma desert eagle pro jogador com 100 munições
- GivePlayerWeapon(playerid,25,100);//Dá uma Shotgun pro jogador com 100 munições.
- // ID das armas em > http://wiki.sa-mp.com/wiki/Weapons
- //IMPORTANTE! NAO PODE DAR 2 ARMAS DO MESMO SLOT, POIS ELA SERA SUBSTITUIDA E FICARA APENAS 1
- }
- else if(strcmp(equipamento, "2", true) == 0)
- {
- if(PlayerInfo[playerid][Cargo] < 2) return SendClientMessage(playerid,-1,"Você não tem cargo para pegar esse equipamento.");
- /* A linha acima manda uma mensagem pro jogador caso o cargo dele for menor que 2
- > maior. < menor. <= menor ou igual. >= maior ou igual. == igual. o -1 nos SendClientMessage é onde fica a cor, que no caso o -1 é o branco
- */
- ResetPlayerWeapons(playerid); //Primeiro retira todas armas que ele tem para dar as outras
- SendClientMessage(playerid,-1,"Você recebeu o equipamento numero 2");//Manda mensagem pro player dizendo que ele recebeu o equipamento 2
- GivePlayerWeapon(playerid,24,100);//Dá uma desert eagle pro jogador com 100 munições
- GivePlayerWeapon(playerid,25,100);//Dá uma Shotgun pro jogador com 100 munições.
- GivePlayerWeapon(playerid,29,100);//Dá uma MP5 pro jogador com 100 munições
- //IMPORTANTE! NAO PODE DAR 2 ARMAS DO MESMO SLOT, POIS ELA SERA SUBSTITUIDA E FICARA APENAS 1
- }
- else if(strcmp(equipamento, "3", true) == 0)
- {
- if(PlayerInfo[playerid][Cargo] < 3) return SendClientMessage(playerid,-1,"Você não tem cargo para pegar esse equipamento.");
- // A linha acima manda uma mensagem pro jogador caso o cargo dele for menor que 3
- ResetPlayerWeapons(playerid); //Primeiro retira todas armas que ele tem para dar as outras
- SendClientMessage(playerid,-1,"Você recebeu o equipamento numero 3");//Manda mensagem pro player dizendo que ele recebeu o equipamento 3
- GivePlayerWeapon(playerid,24,100);//Dá uma desert eagle pro jogador com 100 munições
- GivePlayerWeapon(playerid,25,100);//Dá uma Shotgun pro jogador com 100 munições.
- GivePlayerWeapon(playerid,29,100);//Dá uma MP5 pro jogador com 100 munições
- GivePlayerWeapon(playerid,33,100);//Dá um Country Rifle pro jogador com 100 munições.
- GivePlayerWeapon(playerid,36,100);//Dá uma HS Rocket pro jogador com 100 munições
- //IMPORTANTE! NAO PODE DAR 2 ARMAS DO MESMO SLOT, POIS ELA SERA SUBSTITUIDA E FICARA APENAS 1
- }
- else { SendClientMessage(playerid,-1,"Os IDs é de 1 a 3"); }
- // A linha acima é pra enviar uma mensagem caso o jogador digite um id que nao seja, 1,2 ou 3
- return 1;
- }
- if(strcmp(cmd, "/equipardialog", true) == 0)/* Vai verificar quando o player digitar /equipardialog
- para executar a função do cmd*/
- {
- if(PlayerInfo[playerid][Org] != 2) return SendClientMessage(playerid,-1,"Você não pode usar esse comando.");
- /*A linha acima é para verificar se o player é de uma certa org para usar o comando, se não for vai aparecer a mensagem
- Ali o != quer dizer "Diferente de 2", ou seja se o player for de qualquer org que não seja a 2, vai aparecer a mensagem
- */
- if(!IsPlayerInRangeOfPoint(playerid,3.0, 1234.4321,5678.8765,1012.2110)) return SendClientMessage(playerid,-1,"Voce não esta no local para equipar");
- //A linha acima manda uma mensagem pro jogador caso ele não esteja no local ou perto do local onde deve ser digitado o comando
- ShowPlayerDialog(playerid,DIALOG_EQUIPAR,DIALOG_STYLE_LIST,"Equipando","Equipamento 1\nEquipamento 2\nEquipamento 3","Equipar","Cancelar");
- /* ---------------------------- Explicando o ShowPlayerDialog ---------------
- playerid - pra quem vai ser mostrado o dialog
- DIALOG_EQUIPAR - ID do Dialog que foi definido no topo do GM
- DIALOG_STYLE_LIST - Estilo do Dialog (existe o LIST, INPUT, PASSWORD E MSGBOX)
- "Equipando" - Vai ser tipo que um "titulo" do Dialog.
- "Equipamento 1\nEquipamento 2\nEquipamento 3 - Serão as opções da lista no dialog
- "Equipar" - Botão para equipar
- "Cancelar" - Vai fechar o dialog e não receberá nenhum equipamento*/
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_EQUIPAR)
- {// vai verificar o id do diaog
- if(!response) return SendClientMessage(playerid,-1,"Você não quer mais se equipar.");
- //a linha acima manda uma mensagem pro player se ele cancelar (apertar o segundo botao)
- if(listitem == 0)//Primeira opção da lista ("Equipamento 1")
- {//chave que abre o que vai acontecer ao clicar na primeira opção
- ResetPlayerWeapons(playerid); //Primeiro retira todas armas que ele tem para dar as outras
- SendClientMessage(playerid,-1,"Você recebeu o equipamento numero 1");//Manda mensagem pro player dizendo que ele recebeu o equipamento 1
- GivePlayerWeapon(playerid,24,100);//Dá uma desert eagle pro jogador com 100 munições
- GivePlayerWeapon(playerid,25,100);//Dá uma Shotgun pro jogador com 100 munições.
- // ID das armas em > http://wiki.sa-mp.com/wiki/Weapons
- }//chave que fecha as funções da primeira opçao
- else if(listitem == 1)// Segunda opção da lista ("Equipamento 2")
- {//chave que abre o que vai acontecer ao clicar na segunda opção
- if(PlayerInfo[playerid][Cargo] < 2) return SendClientMessage(playerid,-1,"Você não tem cargo para pegar esse equipamento.");
- // A linha acima manda uma mensagem pro jogador caso o cargo dele for menor que 2
- ResetPlayerWeapons(playerid); //Primeiro retira todas armas que ele tem para dar as outras
- SendClientMessage(playerid,-1,"Você recebeu o equipamento numero 2");//Manda mensagem pro player dizendo que ele recebeu o equipamento 2
- GivePlayerWeapon(playerid,24,100);//Dá uma desert eagle pro jogador com 100 munições
- GivePlayerWeapon(playerid,25,100);//Dá uma Shotgun pro jogador com 100 munições.
- GivePlayerWeapon(playerid,29,100);//Dá uma MP5 pro jogador com 100 munições
- //IMPORTANTE! NAO PODE DAR 2 ARMAS DO MESMO SLOT, POIS ELA SERA SUBSTITUIDA E FICARA APENAS 1
- }//chave que fecha as funções da segunda opçao
- else if(listitem == 2)//terceira opção da lista ("Equipamento 3")
- {//chave que abre o que vai acontecer ao clicar na terceira opção
- if(PlayerInfo[playerid][Cargo] < 3) return SendClientMessage(playerid,-1,"Você não tem cargo para pegar esse equipamento.");
- // A linha acima manda uma mensagem pro jogador caso o cargo dele for menor que 3
- ResetPlayerWeapons(playerid); //Primeiro retira todas armas que ele tem para dar as outras
- SendClientMessage(playerid,-1,"Você recebeu o equipamento numero 3");//Manda mensagem pro player dizendo que ele recebeu o equipamento 3
- GivePlayerWeapon(playerid,24,100);//Dá uma desert eagle pro jogador com 100 munições
- GivePlayerWeapon(playerid,25,100);//Dá uma Shotgun pro jogador com 100 munições.
- GivePlayerWeapon(playerid,29,100);//Dá uma MP5 pro jogador com 100 munições
- GivePlayerWeapon(playerid,33,100);//Dá um Country Rifle pro jogador com 100 munições.
- GivePlayerWeapon(playerid,36,100);//Dá uma HS Rocket pro jogador com 100 munições
- //IMPORTANTE! NAO PODE DAR 2 ARMAS DO MESMO SLOT, POIS ELA SERA SUBSTITUIDA E FICARA APENAS 1
- }//chave que fecha as funções da terceira opção
- return 1;
- }//termina o dialog de equipar
- return 1;
- }
- stock strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement