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






[Tutorial] Cum sa iti faci propriul sistem de Loterie ZCMD & SSCANF
Author : SaTaNa99, Category : Tutoriale, 0 Replyes, 1129 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:24 AM
#1
In acest tutorial am sa va arat cum sa faceti un simplu sistem de Loterie in joc. Am sa ma ajut de procesorul de comenzi ZCMD si de SSCANF ca sa fac acest mic tutorial. Tot ce va trebuie este sa aveti cunostinte in scripting.

Inainte sa incepeti sa urmariti tutorialul aveti nevoie de ZCMD,SSCANF si foreach.


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


Step 1



Ca sa incepem desigur trebuie sa definim anumite variabile


new LottoNum; // Numarul pe care til vei alege la loterie
new LottoPrize; // Premiul loteriei
new LottoNumber[MAX_PLAYERS]; // Variabila ce va stoca numerele playerilor



Step 2



Acum vom creea comanda cu ajutorul procesorului de comenzi ZCMD & SSCANF. Comanda este pentru administrator, el va da drumul loteriei.


CMD:setlotto(playerid, params[])
{
new string[256], lottopr;
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[{FF0606}ERROR{FFFFFF}]: You have no authorization to use this command.");
if(sscanf(params, "d", lottopr)) return SendClientMessage(playerid, -1, "Syntax: {FF9900}/setlotto <prize>");
if(lottopr < 10000 || lottopr > 5000000) return SendClientMessage(playerid, -1, "Invalid premiul loteriei. Premiul loteriei poate fi de la 10000 pana la 5000000 ");
if(LottoNum != 0) return SendClientMessage(playerid, -1, "Nu poti da drumul la 2 loterii simultan.");
else
{
SendClientMessageToAll(-1, "A lottery has started and will end in 30 seconds! Type /lotto($100) to pick your number.");
format(string, sizeof(string), "Prize: $%d", lottopr);
SendClientMessageToAll(-1, string);
LottoNum = 1 + random(80);
LottoPrize = lottopr;
SetTimer("Lottery", 30000, false);
}
return 1;
}

Comanda ce o vor utiliza playerii pentru a isi alege un numar la lotto


CMD:lotto(playerid, params[])
{
new string[256], number;
if(sscanf(params, "d", number)) return SendClientMessage(playerid, -1, "Syntax: {FF9900}/lotto <number>");
if(LottoNumber[playerid] > 0) return SendClientMessage(playerid, -1, "Ti-ai ales deja un numar la lotto!");
if(number < 1 || number > 80) return SendClientMessage(playerid, -1, "Numar invalid ! Numarul lotto trebuie sa fie intre 1 si 80.");
if(LottoNum == 0) return SendClientMessage(playerid, -1, "Ne pare rau dar loteria nu a fost inceputa de vreun administrator.");
else
{
format(string, sizeof(string), "Ai ales numarul %d pentru loterie.", number);
SendClientMessage(playerid, -1, string);
LottoNumber[playerid] = number;
GivePlayerMoney(playerid, -100);
}
return 1;
}



Step 3



Acum vom creea timerul


forward Lottery(playerid);
public Lottery(playerid)
{
new name[MAX_PLAYER_NAME], string[256];
format(string, sizeof(string), "Numarul castigor al loteriei este %d!",LottoNum);
SendClientMessageToAll(COLOR_ORANGE, string); // Trimite mesaj tuturor jucatorilor online pe server
foreach(Player, i) // aceasta functie verifica playerii online de pe server, cei ce sunt online vor primii mesajul predestinat
{
GetPlayerName(i, name, sizeof(name)); // Le afla numele jucatorilor
if(LottoNumber[i] == LottoNum) // Verifica daca numarul loteriei este egal cu cel al jucatorului ce a castigat loteria
{
format(string, sizeof(string), "Felicitari! Ai castigat loteria {FFFFFF}$%d.", LottoPrize);
SendClientMessage(i, -1, string); // Ii trimite mesaj castigatorului pt a il contacta ca a castigat loteria
format(string, sizeof(string), "Felicitari lui %s! A castigat loteria, suma in valoare de $%d!", RPN(i), LottoPrize);
SendClientMessageToAll(-1, string); // Anunta ceilalti playeri despre castigator
GivePlayerMoney(i, LottoPrize); // Castigatorul va primii o anumita suma
break; // Inchide definitiv bucla (loop)
}
else SendClientMessage(i, -1, "Ne pare rau dar nu ai castigat! Sper ca vei avea succes data viitoare."); // acest mesaj va fii trimis jucatorului ce nu a castigat loteria
}
foreach(Player, i) LottoNumber[i] = 0; // Seteaza tuturor playerilor numarul loteriei la 0
LottoNum = 0; // Seteaza numarul castigator 0
LottoPrize = 0; // Seteaza premiul 0
return 1;
}
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: