[Tutorial] Pesquisando jogadores...
#1

Um comando para achar jogadores que vocк sу sabe uma parte do nick
Usei:
ZCMD
SSCANF ou SSCANF2

STRFIND

PHP код:
#include "a_samp"
#include "ZCMD"
#include "sscanf"
//Carregamos as includes que tem as funзхes que iremos usar! 
//CMD:comando(playerid,params[]){ return 1 e o processador de comando, essa funзгo e da include ZCMD
PHP код:
CMD:procurar(playerid,params[])
{
   if(!
IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1"Vocк nгo estб logado no sistema");
   
//se ele nгo estiver logado. o "!" e o inverso do que vocк coloca, "IsPlayerConnected" = se o jogador estiver 
   //conectado adcionando o ! fica o inverso! pouca fazer 
   
if(IsPlayerConnected(playerid))
   {
      
funcao;
   }
   else
  {
     
aqui seria se ele nгo estiver 
  
}
   return 
1;

PHP код:
CMD:procurar(playerid,params[])
{
   new 
parte//vamos usar como entrada de dados, getar a string digitada pelo playerid
   //funзгo do sscanf
   
if(sscanf(params"s"parte)) return SendClientMessage(playerid, -1"Use: /procurar [parte do nick]");
   new 
str[128];
   
format(str,sizeof(str),"Procurando por: \"%s\": ",parte);
   
SendClientMessage(playerid, -1str);
  
    new 
tem//vmos usar para dizer que nгo tem ninguem que ele procura
   //abriremos um loop para checar todos os jogadores online
   
for(new 0<= MAX_PLAYERSi++)
   
//new i; i = 0, se ir for menor que 1000(depende da sua include o numero int do max_players), i mais 1
   
{
       
//vamos criar uma variavel para armazenar os nome de todos os jogadores, para compararmos eles com o parte
       
new nomeplayers[MAX_PLAYERS_NAME];
       
GetPlayerName(inomeplayerssizeof(nomeplayers)); //getamos e guardamos na variavel nomeplayers;
      
       //variavel para armazenar o pos;
       
new varpos strlen(nomeplayers);
      
//strfind(const string[], const sub[], bool:ignorecase=false, pos=0)
     // Nos vamos mostrar o level id e o nick  e o numero de players com essa parte no nick
      //Criaremos outro loop para pega o pos!
      //criaremos uma variavel para armazena quantas pessoas a com essa parte no nick
      
new parte2;
      for(new 
pos=0pos <= varpospos++)
      {
          if(
strfind(nomeplayers,parte,true) == pos//ex: eu sou merda, id 1, funзгo = (se merda tiver parte no nome, e se o id for 1) retorna os dados
          
{
                
parte2++; //cada vez que o loop achar, um nego com essa parte, parte2 adcionar mais 1, ent ficara 1 = 
                //irineu 2 = lepra tlg?
                
new string[128];
                
format(string,sizeof(string),"%d. NOME (%s) ID %d | Level %d",parte2,nomeplayers,iGetPlayerScore(i));
        
SendClientMessage(playerid, -1string);
                
tem++; // ++ == += 1; (tem = 1)
                
ou 
                tem 
1;
          }
   }
   if(
tem == 0) return SendClientMessage(playerid, -1"Ninguйm foi encontrado"); //se tem = 0, e pq o loop achou ninguйm com a parte no nick.
   
return 1;

PHP код:
format(string,sizeof(string),"%d. NOME (%s) ID %d | Level %d",parte2,nomeplayers,iGetPlayerScore(i)); 
1 %d = parte2, = 1 - Irineu (5) Level (100)
2 %s = nomeplayers, = 1 - Irineu (5) Level (100)
3 %d = i = o loop armazenou i como os id de todos os jogadores
4 %d = level
Reply
#2

Boa Mano esse comando й util em RPG.
Reply
#3

Alguns erros:

Checar se o jogador estб conectado no comando й inъtil.
Esse loop no strfind nгo faz sentido algum, basta checar se a funзгo retornou diferente de -1.
A variбvel "parte" foi declarada como inteiro quando devia ser uma string.
Nгo й necessбrio duas variбveis de contagem ("parte2" e "tem"), uma sу й suficiente.
Reply
#4

O do player connect serve pra se ele tentar usar o comando e ainda estiver na tela de loguin bicho
Reply
#5

Quote:
Originally Posted by ThiagoMikael
Посмотреть сообщение
O do player connect serve pra se ele tentar usar o comando e ainda estiver na tela de loguin bicho
A partir de OnPlayerConnect o jogador jб estб conectado, para evitar o que vocк citou seria necessбrio criar uma variбvel integrada a um sistema de registro.
Reply
#6

Vdd ele deve ter viajado deve ter criado e nгo testou so criou tlg, mas msm assim me ajudou, lgl acha um player so pela parte do nick
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)