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;
}
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 ?
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
da razumem te. znaci nemoguce je da postoje 2 ista imena?
npr 2 acc-a sa admin
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
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
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'