[POMOC] Odstupanje za RP ime

Započeo NiKTa, Jul 04, 2013, 11:32:11 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: neki Ravens edit
Detaljan opis problema: Pa ovako zelim da napravim da mogu da udjem na server pod imenom Admin i da me ne kikuje zbog onog Ime_Prezime
Dio skripte:
new namestring = strfind(plname, "_", true);
if(namestring == -1)
{
SendClientMessage(playerid, COLOR_YELLOW2, "Imigracioni Odsek: Vase ime nije prihvatljivo.");
SendClientMessage(playerid, COLOR_YELLOW2, "Podsetnik: Vase ime mora biti u formatu Ime_Prezime.");
Kick(playerid);
return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):

    new namestring = strfind(plname, "_", true);
    new admin = strfind(plname, "Admin", true);
if(admin == -1 && namestring == -1)
{
SendClientMessage(playerid, COLOR_YELLOW2, "Imigracioni Odsek: Vase ime nije prihvatljivo.");
SendClientMessage(playerid, COLOR_YELLOW2, "Podsetnik: Vase ime mora biti u formatu Ime_Prezime.");
Kick(playerid);
return 1;
}
Poslednja Izmena: Jul 04, 2013, 11:48:35 PRE PODNE od MG [Streetboy]

da ne otvaram novu temu posto i meni treba nesto slicno. ja kad to napravim onda bilo ko moze da udje pod tim imenom, a kako da stavim da samo ja mogu ?
BIG RESPECT JOEY_
BIG RESPECT [BD] Mr.Gagi

BIG RESPECT David A.k.A Sabljak

Citat: Nadroj poslato Jul 04, 2013, 12:08:39 POSLE PODNE
da ne otvaram novu temu posto i meni treba nesto slicno. ja kad to napravim onda bilo ko moze da udje pod tim imenom, a kako da stavim da samo ja mogu ?

pa to ne mozes, tj. ne mozes nekom zabranit da ude na neko ime, jedino sto on nece moc da ude zbog lozinke, ili u slucaju ako nema _, sad na njegovo ime moze savako da se konektira ali ne i logira ako me razumijes ;D
Other Dimension RolePlay | Uskoro
Ukoliko zelite pomoci u razvoju servera, mozete se meni javit na PP/PM!

da razumem te. znaci nemoguce je da postoje 2 ista imena?

npr 2 acc-a sa admin
BIG RESPECT JOEY_
BIG RESPECT [BD] Mr.Gagi

BIG RESPECT David A.k.A Sabljak

Citat: Nadroj poslato Jul 04, 2013, 13:58:09 POSLE PODNE
da razumem te. znaci nemoguce je da postoje 2 ista imena?

npr 2 acc-a sa admin
ne vjerujem, mozda preko neke provjere ip-a
Other Dimension RolePlay | Uskoro
Ukoliko zelite pomoci u razvoju servera, mozete se meni javit na PP/PM!

    new namestring = strfind(plname, "Ime_Prezime", true);
    new admin = strfind(plname, "Admin", true);
if(admin == -1 && namestring == -1)
{
SendClientMessage(playerid, COLOR_YELLOW2, "Imigracioni Odsek: Vase ime nije prihvatljivo.");
SendClientMessage(playerid, COLOR_YELLOW2, "Podsetnik: Vase ime mora biti u formatu Ime_Prezime.");
Kick(playerid);
return 1;
}


na ovaj nacin zabranjujes neko imeto jeste  ovim kodom:
new namestring = strfind(plname, "Ime_Prezime", true);
Ovo Ime_Prezime mjenjas kako tebi odgovara
Mislim dakle Boze
Na Zari sve i svasta

Jednostavno koristi ovo:

http://balkan-samp.com/forum/index.php?topic=69777.msg485847;topicseen#new

Upute kako da namjestiš ono što tražiš...

Ovo stavi iznad OnGameModeInit

stock isRoleplayName(playerid, const zanemari[MAX_PLAYER_NAME] = "-1", bool:senzitivno = true, bool:autoRegulacija = true) // by Slay_
{
  #define SL@Y__KLJUC(%0) ("_V([%0])V_")
  new
ime[MAX_PLAYER_NAME] = "\0";
      GetPlayerName(playerid, ime, MAX_PLAYER_NAME);
  if(strcmp(ime, zanemari, senzitivno) == 0 || strcmp(ime, SL@Y__KLJUC(playerid), true) == 0) return (1);

      new
     s = strlen(ime), povlaka[2], i = (0), znakovi = (0), zabranjeniZnakovi[20] =
     { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '[', ']', '.', ')', '(',
       '@', '{', '}', '$', 'â,¬' }, brojacSlova[2];

      povlaka[0] = strfind(ime, "_", true);
      povlaka[1] = strfind(ime, "_", true, povlaka[0]+1);

  if(povlaka[0] == -1) return (2);
  else if(povlaka[1] != -1) return (3);
  else if(ime[0] == '_' || ime[s-1] == '_') return (7);
  else
  {
   do
   {
while(znakovi < sizeof(zabranjeniZnakovi))
{
                     if(ime[i] == zabranjeniZnakovi[znakovi]) return (4);
                     ++ znakovi;
}
if(i == 0 || i == povlaka[0]+1)
{
         if(ime[i] < 'A' || ime[i] > 'Z')
{
  if(autoRegulacija == false) return (5);
  else if(autoRegulacija != false)
  {
       SetPlayerName(playerid, SL@Y__KLJUC(playerid));
       ime[i] = toupper(ime[i]);
  }
}
}
else if(i != 0 && i != povlaka[0])
{
if(ime[i] < 'a' || ime[i] > 'z')
{
                          if(autoRegulacija == false) return (6);
  else if(autoRegulacija != false)
  {
      SetPlayerName(playerid, SL@Y__KLJUC(playerid));
      ime[i] = tolower(ime[i]);
                  }
}
if(i != 0 && i < povlaka[0]+1) ++ brojacSlova[0];
else if(i != 0 && i > povlaka[0]+1) ++ brojacSlova[1];
}
++ i;
   }
   while(i < s && ime[i] != EOS);
   if(brojacSlova[0] < 2) return (8);
   else if(brojacSlova[1] < 2) return (9);
   if(autoRegulacija == true) SetPlayerName(playerid, ime);
  }
  return (1);
}


PronaÄ'i OnPlayerConnect i umjest ovog svog koda:

new namestring = strfind(plname, "_", true);
if(namestring == -1)
{
SendClientMessage(playerid, COLOR_YELLOW2, "Imigracioni Odsek: Vase ime nije prihvatljivo.");
SendClientMessage(playerid, COLOR_YELLOW2, "Podsetnik: Vase ime mora biti u formatu Ime_Prezime.");
Kick(playerid);
return 1;
}


Ubaci ovaj:

switch(isRoleplayName(playerid, "Admin", _, true))
   {
             case (1): SendClientMessage(playerid, -1, "Vase ime je ispravno! ");
             case (2): { SendClientMessage(playerid, -1, "Vase ime nema niti jednu povlaku!"); Kick(playerid); }
             case (3): { SendClientMessage(playerid, -1, "Vase ime ne smije imati vise od 1 povlake!"); Kick(playerid); }
             case (4): { SendClientMessage(playerid, -1, "Vase ime ne smije imati zabranjene znakove!"); Kick(playerid); }
             case (5): { SendClientMessage(playerid, -1, "Prvo slovo imena ili prezimena nije veliko slovo!"); Kick(playerid); }
             case (6): { SendClientMessage(playerid, -1, "Slova poslije prvog slova imena i prezimena moraju biti mala!"); Kick(playerid); }
             case (7): { SendClientMessage(playerid, -1, "Povlaka ne smije biti prvo slovo vaÅ¡eg imena! Koristi povlaku za odvajanje Imena od Prezimena"); Kick(playerid); }
             case (8): { SendClientMessage(playerid, -1, "VaÅ¡e ime ima manje od 3 slova!"); Kick(playerid); }
             case (9): { SendClientMessage(playerid, -1, "VaÅ¡e prezime ima manje od 3 slova!"); Kick(playerid); }
   }


Uz to što će ti RP name checker biti 100% točniji od ovog što sada koristiš još si jednostavnije samo ubacio nick koji će funkcija zanemariti kod provjere u tvom slučaju je taj nick 'Admin'
Kristijan Stipić