#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, tmp[156];
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 > https://sampwiki.blast.hk/wiki/Weapons
//IMPORTANTE! NAO PODE DAR 2 OU MAIS 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 OU MAIS 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 OU MAIS 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 > https://sampwiki.blast.hk/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;
}
achei meio bagunзado pra ler, seria melhor se separasse tudo em varios [ pawn ], mas oq vale й a intenзгo....
|