[CAMPANIE STAFF]Cautam moderatori si designeri activi!
Welcome to WTFCS Community Forums!
Servere gaming la super-preturi! [HOSTING SERVICE]
-->






[Tutorial] Procesor de comenzi (ZCMD + SSCANF)
Author : SaTaNa99, Category : Tutoriale, 0 Replyes, 1180 Views
EVALUATE THIS TOPIC
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
1 Guest(s)
fondator rsp.wtfcs.com
 
421
POSTS
150
THREADS
0
REPUTATION
Male
Sex

WtfCs Coins: -0.01[w]
01-09-2014, 11:16 AM
#1
Pentru inceput titlul acestei lectii este "Introducerea unui nou procesor de comenzi (ZCMD + SSCANF). Vom lucra pe un gamemode facut special pentru 0.3x de catre Drebin. Gamemode-ul este luat de pe forumul oficial sa-mp.com. Am ales sa fac acest tutorial ca in speranta sa invatati si voi ceva.

Link catre download gamemode este acesta: You are not allowed to view links. Register or Login to view.

Pasul 1

Este important sa folositi pawno.exe din gamemode-ul pe care vi l-am pus mai sus. V-am pus eu fisierele in plugins respectiv pawno includes. Mai intai
trebuie sa "activati" include-uri pe care vi l-am pus eu in fisiere si in gamemode.

Le puneti imediat dupa #include <a_samp> cele de mai jos.

#include <sscanf2>
#include <zcmd>

Mai departe pentru a putea folosi comenzile clasice strcmp si zcmd combinate trebuie modificat:

public OnPlayerCommandText(playerid, cmdtext[])




in


public OnPlayerCommandPerformed(playerid, cmdtext[], success)




Apoi, bineinteles comenzile native zcmd, care pot fi pozitionate oriunde in script.


Pasul 2

Pasul 1 a fost zic eu foarte usor si nu trebuie sa primiti nicio eroare & warning in caz contrar inseamna ca ati gresit voi ceva, asa ca reluati din nou.

In pasul al 2-lea vom invata cum sa creeam o comanda ZCMD.


CMD:numelecomenzii(playerid, params []) // comanda mea
{
// aici va aparea ceea ce vrem noi sa faca comanda
return 1;
}




Combinarea ideala intre sscanf si zcmd.

Folosirea sscanf-ului arata cam asa


if (sscanf(params, "ui", giveplayerid, amount))
{
return SendClientMessage(playerid, 0xFF0000AA, "Usage: /givecash <playerid/name> <amount>");
}


giveplayerid - reprezinta playerul caruiva vrei sa ii trimiti bani
amount - reprezinta suma
"ui" - sunt niste specificatori ( Vezi lista cu specificatori You are not allowed to view links. Register or Login to view. ). Mai pe limba voastra literele din paranteza "ui" se iau in ordine cu giveplayerid, amount. Lui giveplayerid i se atribuie specificatorul "U" iar lui amount specificatorul "I" care de asemenea este pentru cifre.

O comanda zcmd combinata cu sscanf ar trebui sa arate astfel

CMD:a(playerid, params [])
{
new string[128];
if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, COLOR_ORANGE, "{F97804}USAGE:{B4B5B7}{FFFFFF} (/a)dmin [message]");
if(strlen(params) > 60) return SendClientMessage(playerid, COLOR_WHITE, "Line too long");
format(string, sizeof(string), "<< %s: {98F5EB}%s >>", playerid, params);
return 1;


}


Observatie:

In comanda aceasta params are rolul de a arata ceea ce scrii tu iar specificatorul lui este "s[128]". Numarul din paranteza indica cat spatiu sa ocupe.


Pasul 3

Ca sa fiu sigur ca ati inteles in acest pas va trebui sa creati voi singuri o comanda cu numele "chat" si sa aiba ca continut un simplu chat intre membrii.

Aici se sfarseste Lectia 2 a acestei Scoli de Scripting. Pentru o siguranta mai puternica va sfatuiesc sa puneti parola la gamemode-ul arhivat iar parola mi-o veti trimite doar mie prin PM pe forum. De ce ? Pentru ca in loc sa faci tu de unu singur ii copiezi lucrarea colegului. Daca cineva va fi prins ca impartaseste sau "fura" lucrarea colegului va fi exclus din scoala de scripting fara nicio exceptie.
Regulament forum: You are not allowed to view links. Register or Login to view.

You are not allowed to view links. Register or Login to view.

You are not allowed to view links. Register or Login to view.


Forum Jump: