Jump to content

Cum sa blochezi comenzile intr-o zona


IstuntmanI

Recommended Posts

Cum sa blochezi comenzile intr-o zona

Tutorial creat de [sRC]stuntman (eu)

Cerut de Roach: http://www.sa-mp.ro/forum/index.php/topic,13121.msg80048.html#msg80048


Sa incepem:

1. Ca sa creezi variabila care va retine daca esti in acea zona, pui in varful scriptului:

new IsPlayerInZone[ MAX_PLAYERS ];
MAX_PLAYERS - aceasta se va inlocui in functii cu 'playerid' . 2. Ca sa setezi variabila la 1, asta insemnand ca a intrat in acea zona, punem undeva, intr-o comanda ( de exemplu ), asta:
IsPlayerInZone[ playerid ] = 1;
playerid - acesta este ID-ul jucatorului caruia ii va seta respawnarea. 1 - arata ca jucatorul a intrat in acea zona si ca nu mai poate folosi nici o comanda. 3. Ca sa faceti sa nu mai poata folosi decat cateva comenzi in acea zona, sau deloc, adaugati acestea la OnPlayerCommandText ( explicatiile sunt trecute la sfarsitul linie cu // ):
if( IsPlayerInZone[ playerid ] == 1 && strcmp(cmdtext, "/exitzone", true) != 0 ) //aici verifica daca jucatorul este in acea zona si daca nu scrie '/exitzone', daca vreti mai multe comenzi care sa mearga scrise, adaugati dupa && asta: strcmp(cmdtext, "/exitzone", true), adaugati dupa , true) un &&, iar apoi schimbati comanda '/exitzone' cu cea pe care o vreti, daca vreti fara comenzi permise, scoateti de la && ( inclusiv && )pana la )
	return SendClientMessage( playerid, 0xFF0000FF, "EROARE: {FFFFFF}Nu poti iesi din aceasta zona, foloseste /exitzone !" ); //aici trimite mesajul ca nu poate iesi din acea zona si ca trebuie sa foloseasca /exitzone ca sa iasa din ea
4. Ca sa punem ca la /exitzone ( de exemplu ) sa iasa din acea zona, adaugam asta in comanda /exitzone:
IsPlayerInZone[ playerid ] = 0; //nu modificati, 1 = este in acea zona si nu poate folosi nici o comanda, 0 = nu este in acea zona si poate folosi orice comanda
5. Ca sa nu avem buguri cand se spawneaza un jucator nou conectat, pune la OnPlayerConnect asta:
IsPlayerInZone[ playerid ] = 0; //daca un jucator cu acelasi ID de dinainte iesise de pe server cand era in acea zona, pe noul jucator cu acelasi ID nu-l va fi lasat sa scrie vreo comanda, decat /exitzone pentru ca "era" in acea zona

PS: Se poate face si daca este intr-o zona ( fara comanda ) ca jucatorul sa nu poata folosi comenzile, decat cele specificate, in loc de IsPlayerInZone de la o comanda ( punctul 2 ), se pune la OnPlayerUpdate, folosit impreuna cu IsPlayerInRangeOfPoint si alte functii pentru zona.

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...
  • 3 months later...

Scuze de bump , dar , daca folosesc zcmd , unde pun :) ?

[pawn]

if( IsPlayerInZone[ playerid ] == 1 && strcmp(cmdtext, "/exitzone", true) != 0 ) //aici verifica daca jucatorul este in acea zona si daca nu scrie '/exitzone', daca vreti mai multe comenzi care sa mearga scrise, adaugati dupa && asta: strcmp(cmdtext, "/exitzone", true), adaugati dupa , true) un &&, iar apoi schimbati comanda '/exitzone' cu cea pe care o vreti, daca vreti fara comenzi permise, scoateti de la && ( inclusiv && )pana la )

return SendClientMessage( playerid, 0xFF0000FF, "EROARE: {FFFFFF}Nu poti iesi din aceasta zona, foloseste /exitzone !" ); //aici trimite mesajul ca nu poate iesi din acea zona si ca trebuie sa foloseasca /exitzone ca sa iasa din ea

[/pawn]

Scuze inca odata de bump ?

communitylogosml.png

94.23.120.101:7778

Link to comment
Share on other sites

Scuze de bump , dar , daca folosesc zcmd , unde pun :) ?

[pawn]

if( IsPlayerInZone[ playerid ] == 1 && strcmp(cmdtext, "/exitzone", true) != 0 ) //aici verifica daca jucatorul este in acea zona si daca nu scrie '/exitzone', daca vreti mai multe comenzi care sa mearga scrise, adaugati dupa && asta: strcmp(cmdtext, "/exitzone", true), adaugati dupa , true) un &&, iar apoi schimbati comanda '/exitzone' cu cea pe care o vreti, daca vreti fara comenzi permise, scoateti de la && ( inclusiv && )pana la )

return SendClientMessage( playerid, 0xFF0000FF, "EROARE: {FFFFFF}Nu poti iesi din aceasta zona, foloseste /exitzone !" ); //aici trimite mesajul ca nu poate iesi din acea zona si ca trebuie sa foloseasca /exitzone ca sa iasa din ea

[/pawn]

Scuze inca odata de bump ?

mi-am dat seama ca trebuie pus la:

[pawn]

public OnPlayerCommandPerformed(playerid, cmdtext[], success)

[/pawn]

Am asa:

[pawn]

public OnPlayerCommandPerformed(playerid, cmdtext[], success)

{

if( IsPlayerInFC[ playerid ] == 1 && strcmp(cmdtext, "/exitfc", true) && strcmp(cmdtext, "/refill", true) && strcmp(cmdtext, "/me", true) && strcmp(cmdtext, "/leavefc", true)&& strcmp(cmdtext, "/sync", true) != 0 )

return SendClientMessage( playerid, COLOR_RED, "ERROR:You can't use this command because you are in a DM Zone. Use first /exit or /leave." );

return 0;

}

[/pawn]

De exemplu daca scriu /help , imi arata "ERROR:you can't .. " dar imi arata dialogul , sau de exemplu /countdown , imi arata eroarea , dar Countdown-ul porneste , cum pot rezolva?.

communitylogosml.png

94.23.120.101:7778

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.