[POMOC] Jako cudan problem


Započeo Acke, Decembar 29, 2015, 15:00:44 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Optizone Gaming (od nule)
Opis problema: Pa ovako, pod OnPlayerConnect sam uradio ovakvu proveru...:

// Provera za ime

new name[24];
GetPlayerName(playerid, name, sizeof(name));

new ime = strfind(name, "_", true);
if(ime == -1)
{
    //SendClientMessage(playerid, -1, "Vase ime nije u validnom formatu !");
    //SendClientMessage(playerid, -1, "Primer dobrog imena: Test_Test");
    Kick(playerid);
}


Kada sam stavio ovu proveru, onda je samo imenima koji nisu u dobrom formatu, izbacivalo ovaj kod da ime nije u dobrom formatu itd, a onim imenima koja su u  dobrom formatu nije htelo da cita dalje, znaci samo je stojalo tu tj na OnPlayerConnectu na defaultnoj kameri pri konektu...

Znaci nece da mi cita dalje kod ako je ime u validnom formatu, a ako je nevalidnom formatu onda radi ova provera...

Problem je u tome sto ja i kada obrisem ovu proveru iz koda, i tada nece da mi cita ostatak koda ako je ime u validnom formatu...

Rescpect for:Gagi,Denis_Lapi,C++

new name[24];
GetPlayerName(playerid, name, 24);

if(strfind(name, "_", true) != -1) {
    //sve ok
} else {
    //kick, ime treba sadrzavati _
}
Software Developer

samo dodaj
else
showplayerdialog
public OnPlayerDisconnect(playerid, reason)
{
  Ban(playerid);
  return 1;
}


Trazim Pomocnog Skriptera za skriptu od Nule tko je voljan PM me

@Ino42O Opet isto, samo mi stoji kamera na konektu,




A ovako sam stavio:



new name[24];
	GetPlayerName(playerid, name, sizeof(name));
	
if(strfind(name, "_", true) != -1)
	{
		PostaviRandomCamere[playerid] = SetTimerEx("RandomCamere", 2000, false, "i", playerid);
		TogglePlayerSpectating(playerid, 1);
		ObrisiObjekte(playerid);
		SetPlayerColor(playerid, -1);
		KreirajPlayerTD(playerid);
//==============================================================================
 		IzabranaLozinka[playerid] = 0; IzabraneGodine[playerid] = 0; IzabranPol[playerid] = 0; IzabranaDrzava[playerid] = 0; IzabranSpawn[playerid] = 0;
		IgracevoRentVozilo[playerid] = -1; VehVozilo[playerid] = -1; KreiraPosao[playerid] = 0; UzeoOpremu[playerid] = -1;
	}
	else
	{
	    TogglePlayerSpectating(playerid, 1);
	    SCM(playerid, -1, "# Vase ime nije u validnom formatu.");
	    SCM(playerid, -1, "# Primer dobrog imena: Pera_Peric.");
	}
Rescpect for:Gagi,Denis_Lapi,C++

Problem nije u strfind taj je kod OK, pokusaj ovo uraditi
new name[24];
   GetPlayerName(playerid, name, sizeof(name));
   
if(strfind(name, "_", true) != -1)
   {
      SendClientMessage(playerid, -1, "Ime je ured");
   }
   else
   {
       SCM(playerid, -1, "# Primer dobrog imena: Pera_Peric.");
   }

samo za provjeru
Software Developer

Hmmm to radi, znaci nije problem tu, problem je u tajmeru, i to bas ovde:

Slika onplayerConnect-a:




Slika Timera "RandomCamere":



Prestaje da cita kod tu...


Evo u konzoli debug:




Znaci ne ucitava mi ovo: print("Ucitana pesma i SCM");
Rescpect for:Gagi,Denis_Lapi,C++

Zato jer ti je predugacak string u SCMF
do like this
new str[256];
format(str, 256, "tekst", arg, arg.. etc..);
SendClientMessage(playerid, -1, str);
Software Developer