Jump to content

Loterie


AvestX

Recommended Posts

Dobrý den.

TuT na loterii sem tu neviděl, a kdyby tu byla, tato tu určitě neni :)


V Prvé řadě nahoru do modu:

#define LOTO_DIALOG 50 // Nadefinujeme si Dialog do kterého budeme dávat číslo loterie.
new Loto_Cislo[MAX_PLAYERS]; // Nadefinujeme proměnu pro hráče aby mohl vyhrát (sazné číslo)
forward Loto(); // Forward který bude dávat vítěze.

Nyní dáme někam do modu (né do publicu !):

public Loto(){
new lotocislo1 = 1 + random(20), lotocislo2 = 1 + random(20), lotocislo3 = 1 + random(20), str[150]; // Nadefinujeme si proměny podle kterých budeme určovat výhru (nejméně vyjde 1 a nejvíce 20 náhodně) a string
for(new i=0; i< GetMaxPlayers(); i++){ // Projedeme hráče na serveru
if(IsPlayerConnected(i) && Loto_Cislo[i] > 0){ // Když je hráč připojen a má v loterii vsazené číslo větší jak 0
//-------------|
if(Loto_Cislo[i] == lotocislo1){ // Když vsadí náhodné číslo které je první
SendClientMessage(i, 0x0000FFFF, "Blahopřeji ! V loterii jsi zadal první nejšťastnější číslo a vyhrál jsi $1 000 000 !"); // Odešleme zprávu
Loto_Cislo[i] = 0; // Nastavíme mu sázku na 0
GivePlayerMoney(i, 1000000); // Dáme peníze
}
if(Loto_Cislo[i] == lotocislo2){ // Když vsadí náhodné číslo které je druhé
SendClientMessage(i, 0x0000FFFF, "Blahopřeji ! V loterii jsi druhé správné číslo a vyhrál jsi $10 000 !");// Odešleme zprávu
Hrac[Loterie][i] = 0;// Nastavíme mu sázku na 0
GivePlayerMoney(i, 10000);// Dáme peníze
}
if(Loto_Cislo[i] == lotocislo3){ // Když vsadí náhodné číslo které je třetí
SendClientMessage(i, 0x0000FFFF, "Blahopřeji ! V loterii jsi třetí správné číslo a vyhrál jsi $1000 !");// Odešleme zprávu
Loto_Cislo[i] = 0;// Nastavíme mu sázku na 0
GivePlayerMoney(i, 1000); // Dáme peníze
}else{// Když zadá jiné
SendClientMessage(i, 0x0000FFFF, "V loterii tvé číslo boužel nebylo taženo !");// Odešleme zprávu
Loto_Cislo[i] = 0;// Nastavíme mu sázku na 0
}
}
}
format(str, 150, "V loterii byla podána tato čísla: %d, %d, %d !", lotocislo1, lotocislo2, lotocislo3); // zformátujeme
SendClientMessageToAll(0xFFFFFFFF, str); // odešleme
}


Nyní si dáme třeba do příkazu:

if(Loto_Cislo[i] > 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Už jsi vsázel do loterie, počkej na další měsíc !"); // Když už vsadí některé číslo
ShowPlayerDialog(playerid,LOTO_DIALOG,DIALOG_STYLE_INPUT,"Sázková Kancelář","Napiš číslo které chceš vsadit do loterie\nPokud zadáš číslo které bude jako první, dostaneš výhru $1 000 000 !\nNa vsazení je zapotřebí $200\nRozmezí je [0/20] !","Vsadit","Nic"); // Když ne ukážeme dialog


A nyní do OnDialogResponse:

if(LOTO_DIALOG == LOTO_DIALOG && response) // Když dá první tlačítko a je dialog ID jak jsme nadefinovali
{
new castka = strval(inputtext), str[150]; // Nadefinujeme string a castku jako strval(inputtext).
if(GetPlayerMoney(playerid) < 200) return SendClientMessage(playerid, 0xFFFFFFFF, "Potřebuješ $200 !"); // Když nemá na sázku 200
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,LOTO_DIALOG,DIALOG_STYLE_INPUT,"Loterie","Chybná částka !","Ok","Nic"); // Když zadá špatnou částku
if(castka < 1 || castka > 20) return ShowPlayerDialog(playerid,LOTO_DIALOG,DIALOG_STYLE_INPUT,"Loterie","Rozmezí je [1/20] !","Ok","Nic"); // Když nedá rozmezí mezi 1/20.
//--------------------|
Loto_Cislo[playerid] = castka;
GivePlayerMoney(playerid, -200);
format(str, 150, "Vsadil jsi do loterie číslo %d, byl ti ubrán poplatek -$200, hodně štěstí  !", castka);
SendClientMessage(playerid, 0xFFFFFFFF, str);
}


A pro funkčnost OnGameModeInit:

SetTimer("Loto", 6000*5, 1); // Každou 5 minutu to bude hlasit loterii

Link to comment
Share on other sites

Nechce se mi tomu věřit, že si to dělal ty... :d tys mě na ICQ psal, že nerad děláš definice pro dialogy a tady zrovna jednu vidim :d Ale dobrý :thumbup:

Link to comment
Share on other sites

Nechce se mi tomu věřit, že si to dělal ty... :d tys mě na ICQ psal, že nerad děláš definice pro dialogy a tady zrovna jednu vidim :d Ale dobrý :thumbup:

Tu definaci jsem dělal jen proto, aby lidi nemuseli měnit ID dialogu a neřikali že jim to ukazuje třeba banku :d

_____________________________

 

Machu, jj z modu :d jen trochu upraveny definace a td...

 

_____________________________

 

Je to moje dělal sem to sám

_____________________________

 

A ostatním dílky

Link to comment
Share on other sites

  • 3 months later...

sry kamo,ale neviem kde dat toto

 

 

 

D:\Users\Miso\Desktop\pawno\Rodinka xD.pwn(251) : error 017: undefined symbol "playerid"
D:\Users\Miso\Desktop\pawno\Rodinka xD.pwn(251) : error 017: undefined symbol "Loterie"

 

 

 

hrac[Loterie][i] = 0;

 

 

PLS poradte "help"

Link to comment
Share on other sites

sry kamo,ale neviem kde dat toto

 

 

 

D:\Users\Miso\Desktop\pawno\Rodinka xD.pwn(251) : error 017: undefined symbol "playerid"
D:\Users\Miso\Desktop\pawno\Rodinka xD.pwn(251) : error 017: undefined symbol "Loterie"

 

 

 

hrac[Loterie][i] = 0;

 

 

PLS poradte "help"

až si přečteš ptavidla, že se nepíšou příspěvky do starých topiků...pak ti někdo pomůže...

Link to comment
Share on other sites

  • 11 months later...
  • 2 weeks later...
  • 2 weeks later...
  • 7 months later...
Ako to funguje ? Cez prikaz alebo pickup ?

 

Stačí si to přečíst. Je tam napsané, že je na tobě, kam si vyvolání akce dáš.

Link to comment
Share on other sites

nechcem Vám kaziť náladu ale píšte do starej témy.. pozrite sa na rok :) ..

nie máš to na príkaz ;)

 

A myslíš si že jsme slepí?

 

Dik a ako mam spravit , aby to bolo cez pickup ? "confused"

Vytvoř si pickup WIKI: CreatePickup a pak tento zbytek dej do WIKI: OnPlayerPickUpPickup. Podrobnosti hledej v ostatních návodech.

Link to comment
Share on other sites

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