[POMOC] SetPlayerName


Započeo Vitez El arambasa, Februar 06, 2017, 20:48:45 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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): /

Koliko ja vidim igracu "vaske" je sklonjena provera. Ako zelis da jos nekom sklonis proveru rp imena samo kopiraj tu liniju i izmeni .

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

Stavi provjeru na registraciji, ne na onplayerconnect.


bilo je lijepo dok je trajalo.


evo ti moje nesto izvorno pretvori ga
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;
}
www.Game-State.com" style="border-style: none;

www.Game-State.com" style="border-style: none;