Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Vitez El arambasa poslato Februar 06, 2017, 20:48:45 POSLE PODNE

Naslov: [POMOC] SetPlayerName
Poruka od: Vitez El arambasa poslato Februar 06, 2017, 20:48:45 POSLE PODNE
Skripta koju koristim: Srbija Gaming
Detaljan opis problema: Napravio sam komandu za menjanje igracevog imena , i sve super radi , promeni igracu ime i sve to ali kada taj igrac ode relog i udje sa tim jednim imenom server ga kikuje i obrise mu acc. Kako da napravim da ga ne kikuje server zbog nonRP imena. Ima provera RP imena pod onplayerconnect
Dio skripte:

Komanda :
YCMD:promeniname(playerid, params[],help)
{
    if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""SERVERPLAVA"(MGRP) "C_BELA"Moras biti prijavljen.");
if (PI[playerid][Admin] >= 6)
{
new pplayerid;
new ime[32];
if(AdminDuty[playerid] == 0) return Error(playerid, "Morate biti na Admin duznosti.");
if(sscanf(params, "us[32]", pplayerid, ime)) return Koristi(playerid, "/promeniname [ID igraca/Deo imena] [Novo ime]");
if(!IsPlayerConnected(pplayerid)) return Error(playerid, "Taj igrac nije na serveru.");
// if(PI[pplayerid][Admin] >= 6) return Error(playerid, "Ne mozete to koristiti na vlasnika.");
new status[20];
if(PI[playerid][Admin] >= 1) format(status, sizeof(status), "Admin");
  format(nellys, sizeof(nellys), ""C_CRVENA"![WARNING]: "C_ZUTA"%s %s je promenio ime igraca "C_CRVENA"%s "C_ZUTA" u ime "C_CRVENA"''%s''", status, Ime_Igraca(playerid), Ime_Igraca(pplayerid), ime);
StaffPoruka(COLOR_YELLOW, nellys);

ServerS[sNames] ++;
format(logstring, sizeof logstring, "| Igrac: %s | Admin: %s | Novo Ime: %s", Ime_Igraca(playerid),Ime_Igraca(pplayerid), ime);
UpisiLog(FILE_PREIMENOVANI, logstring);

SetPlayerName(pplayerid, ime);

//StatusKonekta(pplayerid, 2);
SacuvajServerStats();

}
else
{
Ovlascenje(playerid);
}
return 1;
}


Provera RP Imena :
stock ProveraRPImena(playerid)
{
    new pname[MAX_PLAYER_NAME],underline=0;
    GetPlayerName(playerid, pname, sizeof(pname));
    /////////////////////////////////////////////////////////
    if(strfind(pname,"Vaske",true) != (-1)) return 1;
    else if(strfind(pname,"Vuk",true) != (-1)) return 1;
    else if(strfind(pname,"Admin",true) != (-1)) return 1;
    else if(strfind(pname,"Admin",true) != (-1)) return 1;
    else if(strfind(pname,"Admin",true) != (-1)) return 1;
    else if(strfind(pname,"Admin",true) != (-1)) return 1;
    else if(strfind(pname,"Admin",true) != (-1)) return 1;
    /////////////////////////////////////////////////////////
    else if(strfind(pname,"[",true) != (-1)) return 0;
    else if(strfind(pname,"]",true) != (-1)) return 0;
    else if(strfind(pname,"$",true) != (-1)) return 0;
    else if(strfind(pname,"(",true) != (-1)) return 0;
    else if(strfind(pname,")",true) != (-1)) return 0;
    else if(strfind(pname,"=",true) != (-1)) return 0;
    else if(strfind(pname,"[member=1996][/member]",true) != (-1)) return 0;
    else if(strfind(pname,"1",true) != (-1)) return 0;
    else if(strfind(pname,"2",true) != (-1)) return 0;
    else if(strfind(pname,"3",true) != (-1)) return 0;
    else if(strfind(pname,"4",true) != (-1)) return 0;
    else if(strfind(pname,"5",true) != (-1)) return 0;
    else if(strfind(pname,"6",true) != (-1)) return 0;
    else if(strfind(pname,"7",true) != (-1)) return 0;
    else if(strfind(pname,"8",true) != (-1)) return 0;
    else if(strfind(pname,"9",true) != (-1)) return 0;
    else if(strfind(pname,".",true) != (-1)) return 0;
    else if(strfind(pname,",",true) != (-1)) return 0;
    else if(strfind(pname,"-",true) != (-1)) return 0;
    new maxname = strlen(pname);
    for(new i=0; i<maxname; i++)
    {
       if(pname[i] == '_') underline ++;
    }
    if(underline != 1) return 0;
    pname[0] = toupper(pname[0]);
    for(new x=1; x<maxname; x++)
    {
        if(pname[x] == '_') pname[x+1] = toupper(pname[x+1]);
        else if(pname[x] != '_' && pname[x-1] != '_') pname[x] = tolower(pname[x]);
    }
return 1;
}


i onplayerconnect
    if(!ProveraRPImena(playerid))
    {
    StatusKonekta(playerid, 2);
return 1;
    }


Neke slike/video za lakse dobivanje pomoci(neobavezno): /
Naslov: Odg: [POMOC] SetPlayerName
Poruka od: Dragi poslato Februar 06, 2017, 21:45:20 POSLE PODNE
Koliko ja vidim igracu "vaske" je sklonjena provera. Ako zelis da jos nekom sklonis proveru rp imena samo kopiraj tu liniju i izmeni .
Naslov: Odg: [POMOC] SetPlayerName
Poruka od: Vitez El arambasa poslato Februar 06, 2017, 21:53:54 POSLE PODNE
Ne zelim da svaki put kada nekom promenim ime moram da compilujem mod i da ubacuje na control panel , zelim da napravim nesto da ne moram da radim to svakog puta
Naslov: Odg: [POMOC] SetPlayerName
Poruka od: Bašovski poslato Februar 06, 2017, 21:56:11 POSLE PODNE
Stavi provjeru na registraciji, ne na onplayerconnect.
Naslov: Odg: [POMOC] SetPlayerName
Poruka od: AlienWare95 poslato Februar 06, 2017, 22:05:50 POSLE PODNE
evo ti moje nesto izvorno pretvori ga [pawn]CMD:specijalnoime( playerid, params[] ) {

   if( PlayerInfo[ playerid ][ pAdmin ] < 7 ) return GRESKA( playerid, ""col_chating"You are not authorized.");
   if( !HiacDuty[ playerid ] ) return GRESKA( playerid, "Da bi koristili ovu komandu morate biti HIAC na duznosti" );

   new id, novoime[ 32 ], newname[ 40 ];
   new year, month, day;

   if( sscanf( params, "us[32]", id, novoime ) ) return SendUsageMessage( playerid, "/specijalnoime [ ID ] [ Ime_Prezime ]");
   format( newname, sizeof( newname ), "Korisnici/%s.ini", novoime );
   if( id == IPI ) return GRESKA( playerid, "Pogresan ID." );
   if( fexist( newname ) ) return GRESKA( playerid, "Novo ime vec postoji u bazi podataka!" );

   getdate( year, month, day );
    format( globalstring, sizeof( globalstring ), "RENAME | Hiac %s je promenio ime igracu %s u %s (%d-%d-%d)", ImeIgraca( playerid ), ImeIgraca( id ), novoime, month, day, year );
    printf( "%s",  globalstring );
    format( globalstring, sizeof( globalstring ), "RENAME | Hiac %s je promenio ime igracu %s u %s .", ImeIgraca( playerid ), ImeIgraca( id ), novoime );
   HiacPoruka( CRVENA, globalstring );

   SavePlayer( id );
   RenamePlayer( ImeIgraca( id ), novoime, id );

   SendInfoMessage( id, "Hiac %s vam je promenio ime u %s.", ImeIgraca( playerid ), ImeIgraca( id ) );
    format( globalstring, sizeof( globalstring ), "Prijavite se ponovno sa imenom: %s", novoime );
   Kickovanje( id, globalstring );
   return 1;
}[/pawn]
Naslov: Odg: [POMOC] SetPlayerName
Poruka od: #Rakic poslato Februar 07, 2017, 16:52:51 POSLE PODNE
Moras sacuvati to ime igraca u fajlu korsinika