Jump to content

Recommended Posts

Posted

Daca doresti ca un anume gen de nickname-uri sa nu intre pe serverul tau ( reclama..sau orice altceva ), acest tutorial este de ajutor.

Acest tutorial, se bazeaza pe introducerea unor nickname-uri in gamemode si interzicerea lor dandu-le kick ( dupa caz, ban ). De asemenea, o sa punem si un KickWithMessage pentru ca anumitul player sa stie de ce a fost dat afara.

Pasul 1:

Dupa liniile de include-uri, facem urmatorul forward

forward KickPublic(playerid);

Apoi o sa facem un public

public KickPublic(playerid) Kick(playerid);

Dupa aceste doua, vom pune un stock cu un timer si un SendClientMessage

stock KickWithMessage(playerid, color, message[])
{
    SendClientMessage(playerid, color, message);
    SetTimerEx("KickPublic", 1000, 0, "d", playerid);
}

 

Pasul 2:

Acum, vom Merge la

OnPlayerConnect

Si vom folosi un strfind, rolul lui fiind de a cauta si gasi cuvantul pus in parametrii lui.

if(strfind("cuvant", "cuvant", true) != -1)
{
	KickWithMessage(playerid, 0xFF0000FF, "Numele nu corespunde cu cerintele serverului. Pa !");
}

* N-am putut explica in detaliu de 100 %, nu stiu perfect. Insa am vrut s-o postez in speranta ca, cuiva ii va fi de folos.

* Pentru orice intrebare, puteti lasa reply.

Posted

Bun tutorial!Eu am sa inlocuiesc in loc de cuvant :7777 pentru reclama;)

 

 

  • 7 months later...
  • 2 years later...
Posted

Eu nu vad rostul la functia KickWithMessage cand puteai pune din prima asa:

if(strfind("cuvant", "cuvant", true) != -1)
{
	SendClientMessage(playerid, 0xFF0000FF, "Numele nu corespunde cu cerintele serverului. Pa !");
	Kick(playerid);
}

 

Retras

  • Administrator
Posted
2 hours ago, Tud0r. said:

Eu nu vad rostul la functia KickWithMessage cand puteai pune din prima asa:


if(strfind("cuvant", "cuvant", true) != -1)
{
	SendClientMessage(playerid, 0xFF0000FF, "Numele nu corespunde cu cerintele serverului. Pa !");
	Kick(playerid);
}

 

Pachetul pentru kick o sa ajunga inainte de cel pentru mesaj, asa ca jucatorul nu o sa mai primeasca mesajul.

Posted
Just now, WopsS said:

Pachetul pentru kick o sa ajunga inainte de cel pentru mesaj, asa ca jucatorul nu o sa mai primeasca mesajul.

Pai SendClientMessage nu e inainte de Kick(playerid)? Eu stiu ca se executa in functie de ordine.

Retras

  • Administrator
Posted
Just now, Tud0r. said:

Pai SendClientMessage nu e inainte de Kick(playerid)? Eu stiu ca se executa in functie de ordine.

Se executa, dar pachetul pentru Kick are prioritate mai mare decat cel de mesaje, dialog-uri, etc..

  • Upvote 1
Posted
Just now, WopsS said:

Se executa, dar pachetul pentru Kick are prioritate mai mare decat cel de mesaje, dialog-uri, etc..

Aham. Mersi de lamurire.

Retras

  • Administrator
Posted
24 minutes ago, Tud0r. said:

Aham. Mersi de lamurire.

N-ai pentru ce.

Daca vrei sa folosesti Kick poti sa faci acest truc:

forward @Kick(playerid);

public @Kick(playerid)
{
	Kick(playerid);
}

hook_Kick(playerid, color, message[])
{
	SendClientMessage(playerid, color, message);
	SetTimerEx("@Kick", 1000, 0, "i", playerid);
}

#if defined _ALS_Kick
	#undef Kick
#else
	#define _ALS_Kick
#endif

#define Kick hook_Kick

Nu e testat, dar daca-l testezi sa-mi spui daca merge.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.