[TUT] Provera za RP Ime

Započeo B185, Maj 11, 2017, 20:13:44 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Nesto sto svi traze, a ima i mnogo drugih provera. Pod OnPlayerConnect Stavite "CheckRPName(playerid, GetName(playerid));"

[pawn]
new rpNameFuck[MAX_PLAYERS];

stock CheckRPName(playerid, name[]) // by RESPONSE
{
   if(IsNameInUse(name)) return 1;
   else
   {
       new ch = name[0]; // kreira novu varijablu koja ima vrijednost array name pozicije stringa 0
       if(strfind(name, "_") != -1) // ako postoji "_" u imenu nastavlja se
       {
           if(ch >= 'A' && ch <= 'Z') // ako ch ima vrednost manju ili jednaku 'A' i vecu ili jednaku 'Z'
           {
               for(new i=0, j=strlen(name); i < j; i++) // za loop
               {
                    if((name >= 0) && (name <= 9)) // number check
                 {
                   SendClientMessage(playerid, -1, "Tvoje ime ne sme sadrzavati brojeve."); rpNameFuck[playerid] = 1;
                   Kick(playerid);
                   return 1;
                 }
                   if(!strfind(name, "_")) // ako je u var i u trenutnom loopu znak _ nastavlja se
                   {
                   name[++i]; // povecava se varijabla za +1 sto ce oznaciti pocetak imena
                   if(name >= 'A' && name <= 'Z') return 1; // ako je taj znak manji ili jednak A ili veci ili jednak Z return-a 1
                       else // ako to nije tacno
                       {
                               rpNameFuck[playerid] = 1; SendClientMessage(playerid, -1, "Prezime mora biti napisano velikim pocetnim slovom."); // onda se stavlja poruka
                               Kick(playerid);
                               return 1; // returna 0
                       }
                   }
                   else continue; // ako nije pronadjen znak "_" na trenutnoj poziciji vraca se na pocetak loopa sto oznacava da podize var i za 1
               }
               return 1; // returna 1
           }
           else // ako nema na prvoj poziciji velikog slova baca donju poruku i returna 0
           {
                   rpNameFuck[playerid] = 1; SendClientMessage(playerid, -1, "Ime mora biti napisano velikim pocetnim slovom.");
                   Kick(playerid);
                   return 1;
           }
       }
       else // ako nema znaka "_" u imenu poruka i return 0
       {
               rpNameFuck[playerid] = 1; SendClientMessage(playerid, -1, "Vas nick mora biti u formatu Ime_Prezime.");
               Kick(playerid);
               return 1;
       }
      }
}

[/pawn]

Moja preporuka vam je da koristite regex.
Mozete sa njim raditi razne provere, kompletnije provere tipa rp ime, email...

Citat: Cadilab poslato Maj 11, 2017, 20:26:27 POSLE PODNE
Moja preporuka vam je da koristite regex.
Mozete sa njim raditi razne provere, kompletnije provere tipa rp ime, email...

Hvala, imao sam u glavi da odradim isto sa regex, ali nikako, ali ipak hvala :)

cemu sluzi `rpNameFuck[playerid]` ako se samo koristi bukvalno ovako rpNameFuck[playerid] = 1;

Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Maj 11, 2017, 21:03:34 POSLE PODNE
cemu sluzi `rpNameFuck[playerid]` ako se samo koristi bukvalno ovako rpNameFuck[playerid] = 1;
Vjv neka definicja iz moda


Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Maj 11, 2017, 21:03:34 POSLE PODNE
cemu sluzi `rpNameFuck[playerid]` ako se samo koristi bukvalno ovako rpNameFuck[playerid] = 1;

Pa definisano je new rpNameFuck[MAX_PLAYERS];
Odredjuje da li je ime pravilno ili ne..
Poslednja Izmena: Maj 11, 2017, 22:09:34 POSLE PODNE od RESPOSNE

Citat: RESPOSNE poslato Maj 11, 2017, 22:07:58 POSLE PODNE
Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Maj 11, 2017, 21:03:34 POSLE PODNE
cemu sluzi `rpNameFuck[playerid]` ako se samo koristi bukvalno ovako rpNameFuck[playerid] = 1;

Pa definisano je new rpNameFuck[MAX_PLAYERS];
Odredjuje da li je ime pravilno ili ne..

Da ali koja mu je svrha sem da zauzima memoriju i mijenja value?

Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Maj 11, 2017, 23:05:46 POSLE PODNE
Citat: RESPOSNE poslato Maj 11, 2017, 22:07:58 POSLE PODNE
Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Maj 11, 2017, 21:03:34 POSLE PODNE
cemu sluzi `rpNameFuck[playerid]` ako se samo koristi bukvalno ovako rpNameFuck[playerid] = 1;

Pa definisano je new rpNameFuck[MAX_PLAYERS];
Odredjuje da li je ime pravilno ili ne..

Da ali koja mu je svrha sem da zauzima memoriju i mijenja value?

I da salje poruku igracu zbog cega je kikovan...


Moze posluziti...

TIIIIIRRRRRRUUUUUU RIIIIIIIIIIIIIIIII RUUUUUUUUUUUUU

Citat: RESPOSNE poslato Maj 12, 2017, 15:48:06 POSLE PODNE
Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Maj 11, 2017, 23:05:46 POSLE PODNE
Citat: RESPOSNE poslato Maj 11, 2017, 22:07:58 POSLE PODNE
Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Maj 11, 2017, 21:03:34 POSLE PODNE
cemu sluzi `rpNameFuck[playerid]` ako se samo koristi bukvalno ovako rpNameFuck[playerid] = 1;

Pa definisano je new rpNameFuck[MAX_PLAYERS];
Odredjuje da li je ime pravilno ili ne..

Da ali koja mu je svrha sem da zauzima memoriju i mijenja value?

I da salje poruku igracu zbog cega je kikovan...

Poruka se salje sa SendClientMessage f-jom ne mijenjanjem varijable..


Good,posluzit ce nekom...
Respect: Harexe,Muma,Depay,Hrustanovic,Tosic,#Rakic,Maxwell,Medo,anDro,Dedic,SlavicBeast,gReeDy.amx,berroni.amx,LoOdak,Kasperzi

GAME OVER