van ez a lotto script:
#include <a_samp>
#include <zcmd>
#include< sscanf>
#define yellow 0xFFFF00AA
#define green 0x33FF33AA
#define white 0xFFFFFFAA
#define red 0xFF0000AA
#define grgreen 0x33AA33AA
#define SORSOLASTIMER 120000 // 2 perc
new bool:SorsJegy[MAX_PLAYERS];
new NyeroSzamok[5][MAX_PLAYERS];
new KisorsoltSzamok[5];
new TimerKill[2];
forward Sorsolas();
public OnFilterScriptInit()
{
TimerKill[0] = SetTimer(\"Sorsolas\", SORSOLASTIMER, 1);
TimerKill[1] = SetTimer(\"LottoHirdetes\", 180000, 1);
return 1;
}
public OnPlayerConnect(playerid)
{
SorsJegy[playerid] = false;
}
CMD:gepilotto(playerid,params[])
{
#pragma unused params
new string[128];
if(SorsJegy[playerid] == true) return SendClientMessage(playerid, red, \"Már vettél lottót!\");
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, red, \"Lottó ára $100, neked nincs annyi pénzed.\");
GivePlayerMoney(playerid, -100);
SorsJegy[playerid] = true;
GepiLottoSzamok(playerid);
format(string, sizeof(string), \"A lottó számaid a következõk: %d, %d, %d, %d, %d\", NyeroSzamok[0][playerid], NyeroSzamok[1][playerid], NyeroSzamok[2][playerid], NyeroSzamok[3][playerid], NyeroSzamok[4][playerid]);
SendClientMessage(playerid, yellow, string);
return 1;
}
CMD:lotto(playerid,params[])
{
if(SorsJegy[playerid] == true) return SendClientMessage(playerid, red, \"Már vettél lottót! /mylotto\");
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, red, \"Lottó ára $100, neked nincs annyi pénzed.\");
new num[5],string[128];
if(sscanf(params, \"iiiii\",num[0], num[1], num[2], num[3], num[4])) return SendClientMessage(playerid, white, \"HASZNÁLAT: /lotto 5 db[szám] [1-90]\");
for(new p; p < 5; p++) if(num[p] > 90 || num[p] < 1) return SendClientMessage(playerid, white,\"Lottószámokat [1-90] lehet megadni.\");
// Ellenõrzés a megadott számok 1 tõl 45 ig terjednek-e ha nem akkor üzenet kiírása
// A megadott lottószámok összehasonlítása van-e két azonos szám:
/* Ilyen volt:
for(new n = 1; n < 5; n++) if(num[0] == num[n]) return SendClientMessage(playerid, white,\"Nem adhatsz meg egyforma számokat.\");
for(new n = 2; n < 5; n++) if(num[1] == num[n]) return SendClientMessage(playerid, white,\"Nem adhatsz meg egyforma számokat.\");
for(new n = 3; n < 5; n++) if(num[2] == num[n]) return SendClientMessage(playerid, white,\"Nem adhatsz meg egyforma számokat.\");
if(num[3] == num[4]) return SendClientMessage(playerid, white,\"Nem adhatsz meg egyforma számokat.\");*/
// ilyen lett:
for(new f = 0; f < 4; f++) for(new c = f+1; c < 5; c++) { if(num[f] == num[c]) return SendClientMessage(playerid, white,\"Nem adhatsz meg azonos számokat.\");}
NyeroSzamok[0][playerid] = num[0];
NyeroSzamok[1][playerid] = num[1];
NyeroSzamok[2][playerid] = num[2];
NyeroSzamok[3][playerid] = num[3];
NyeroSzamok[4][playerid] = num[4];
GivePlayerMoney(playerid, -100);
SorsJegy[playerid] = true;
format(string, sizeof(string), \"A te lottó számaid a következõk: %d, %d, %d, %d, %d\", NyeroSzamok[0][playerid], NyeroSzamok[1][playerid], NyeroSzamok[2][playerid], NyeroSzamok[3][playerid], NyeroSzamok[4][playerid]);
SendClientMessage(playerid, yellow, string);
return 1;
}
CMD:mylotto(playerid,params[])
{
#pragma unused params
new string[128];
if(SorsJegy[playerid] == false) return SendClientMessage(playerid, red, \"Nem vettél még lottó-t. Vegyél egyet írd be /gepilotto vagy /lotto [$100]\");
format(string, sizeof(string), \"A lottó számaid a következõk: %d, %d, %d, %d, %d\", NyeroSzamok[0][playerid], NyeroSzamok[1][playerid], NyeroSzamok[2][playerid], NyeroSzamok[3][playerid], NyeroSzamok[4][playerid]);
SendClientMessage(playerid, yellow, string);
return 1;
}
CMD:lottotest(playerid,params[])
{
#pragma unused params
if(IsPlayerAdmin(playerid))
{
Sorsolas();
} else SendClientMessage(playerid,red,\"NEM rcon admin vagy.\");
return 1;
}
forward Sorsolas();
public Sorsolas()
{ // lottószám sorsolás:
for(new f = 0; f < 5; f++) KisorsoltSzamok[f] = random(91); // azért 91 mert csak így kapunk 90-es lottószámot mivel a random az 0-tól kezdõdik és akkor pl.:10-es szám már a 11-dik!!!
for(new f = 0; f < 4; f++) for(new c = f+1; c < 5; c++) { if(KisorsoltSzamok[f] == KisorsoltSzamok[c] || KisorsoltSzamok[f] < 1 || KisorsoltSzamok[4] < 1) return Sorsolas(); }
// A kisorsolt számok ellenõrzése egyezés vagy 0 értéknél újra sorsolás.
for(new f = 0; f < 4; f++) for(new c = f+1; c < 5; c++) { if(KisorsoltSzamok[f] == KisorsoltSzamok[c]) return SendClientMessageToAll(red,\"Figyelmeztetés azonos kihúzott lottószámok a sorsolás letiltva.\"); }
// Biztonsági ellenõrzés ha netalán mégis lenne egyezés akkor egy üzenettel letiltás. Újra sorsolni fog ahogy a timeridõzítése megvan adva. Elhanyagolható ez az ellenõrzés.
new Talalat[MAX_PLAYERS], string[128], Name[24];
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
{
if(SorsJegy == true)
{
for(new f = 0; f < 5; f++) for(new c = 0; c < 5; c++) { if(NyeroSzamok[f] == KisorsoltSzamok[c]) Talalat++;} // Egyezés keresés dupla ciklus segítségével, Egyezésnél: Talalat[playerid] változó értékének növelése.
SendClientMessage(i, red, \" ========= Ötös Lottó 5/90 =========\");
format(string, sizeof(string), \" A saját lottó számaid: %d, %d, %d, %d, %d\", NyeroSzamok[0], NyeroSzamok[1], NyeroSzamok[2], NyeroSzamok[3], NyeroSzamok[4]);
SendClientMessage(i, yellow, string);
format(string, sizeof(string), \" A nyertes lottó számok: %d, %d, %d, %d, %d\", KisorsoltSzamok[0], KisorsoltSzamok[1], KisorsoltSzamok[2], KisorsoltSzamok[3], KisorsoltSzamok[4]);
SendClientMessage(i, grgreen, string);
if(Talalat == 0) SendClientMessage(i, grgreen, \" Nem találtál el egy számot se.\");
if(Talalat == 1) { SendClientMessage(i, grgreen, \" Találatok száma: 1 Nyereményed: $5500\"); GivePlayerMoney(i, 5500); }
if(Talalat == 2) { SendClientMessage(i, grgreen, \" Találatok száma: 2 Nyereményed: $28000\"); GivePlayerMoney(i, 28000); }
if(Talalat == 3) { SendClientMessage(i, grgreen, \" Találatok száma: 3 Nyereményed: $173000\"); GivePlayerMoney(i, 173000); }
if(Talalat == 4) { SendClientMessage(i, grgreen, \" Találatok száma: 4 Nyereményed: $673,000\"); GivePlayerMoney(i, 673000); }
if(Talalat == 5) {
SendClientMessage(i, green, \"Teli Találat\");
SendClientMessage(i, green, \"Nyereményed: $132,000,000\");
GetPlayerName(i,Name,sizeof Name);
format(string, sizeof(string),\"%s megnyerte a fõnyereményt $132.000.000.\",Name);
SendClientMessageToAll(red, string);
GivePlayerMoney(i, 132000000);
BanEx(i,\"Ha most igaziból Ötös lottót játszanál akkor full gazdag lehetnél, de ez csak játék.\"); // Kérem a játékos unbannolását. Erre az esély \"1\" az \"5.273.912.160-hoz\"
}
SendClientMessage(i, red, \" ================================\");
SorsJegy = false;
}
}
return 1;
}
GepiLottoSzamok(playerid) // véletlenszerüen megad lottószámokat
{
for(new p = 0; p < 5; p++) NyeroSzamok[p][playerid] = random(91);
for(new f = 0; f < 4; f++) for(new c = f+1; c < 5; c++) { if(NyeroSzamok[f][playerid] == NyeroSzamok[c][playerid] || NyeroSzamok[f][playerid] < 1 || NyeroSzamok[4][playerid] < 1) return GepiLottoSzamok(playerid); }
// Azonosság keresés egyezés és 0 esetén ismétlés.
for(new f = 0; f < 4; f++) for(new c = f+1; c < 5; c++) { if(NyeroSzamok[f][playerid] == NyeroSzamok[c][playerid]) return SendClientMessageToAll(red,\"Figyelmeztetés azonos gépilottószámok kérlek írd be újra /gepilotto.\"); }
// Biztonsági ellenõrzés ha netalán mégis lenne egyezés akkor egy üzenettel letiltás. Elhanyagolható ez az ellenõrzés.
return 1;
}
forward LottoHirdetes();
public LottoHirdetes()
{
SendClientMessageToAll(yellow,\"Vásárolj lottót a /lotto vagy a /gepilotto parancsal a szerencse bármikor bekopoghat, sorsolás 2 percenként.\");
}
public OnFilterScriptExit()
{
for (new p = 0; p < 2; p++) KillTimer(TimerKill[p]);
return 1;
}
és az érdekelne hogy valahogy meglehet-e nézni hogy milyen számokat fog kisorsolni