Jump to content
  • 0

pomoc Loterie


jAk3r

Dotaz

Zdravím, dělám si do módu loterii ale nějakého neznámého důvodu který si nemohu vysvětlit se mi při zadání příkazu /lotto neotevře dialog ve kterým si mám zadat číslo abych mohl být zařazen do slosování ale přitom public o losování se mi vykoná... proto se ptám vám zda nevíte čím by to mohlo být.A taky mám ho jako FS nechci mód zatím zatěžovat smile.png

 

Kód ---->

 

 

#include <a_samp>

#define LOTO_DIALOG 8554

new Loto_Cislo[MAX_PLAYERS];
forward Loto();

public OnFilterScriptInit()
{
    print("\n----------------------------------------");
    print(" LOTTO Successfully loaded");
    print("-----------------------------------------\n");
SetTimer("Loto", 60000*5, 1);

    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}


public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/lotto", cmdtext, true, 10) == 0)
    {
if(Loto_Cislo[playerid] > 0) return SendClientMessage(playerid, 0xFF0000AA, "[!]{FFFFFF} Už jsi podával loterii, počkej na slosování.");
ShowPlayerDialog(playerid,LOTO_DIALOG,DIALOG_STYLE_INPUT,"Fortuna","{FFFFFF}Napiš číslo které chceš vsadit do Loterie.\nPokud zadáš číslo které bude jako první, dostaneš výhru {33AA33}$1000000{FFFFFF}!\nNa vsázení je zapotřebí {33AA33}$200{FFFFFF}, rozmezí čísel je {FF0000}0{FFFFFF} až {FF0000}20{FFFFFF}.","Vsadit","Zavřít");
    return 1;
    }
    return 0;
}

public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == LOTO_DIALOG && response)
    {
    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);
    }

    return 1;
}

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 > 0){ // Když je hráč připojen a má v loterii vsazené číslo větší jak 0
//-------------|
if(Loto_Cislo == 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 = 0; // Nastavíme mu sázku na 0
GivePlayerMoney(i, 1000000); // Dáme peníze
}
if(Loto_Cislo == 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
Loto_Cislo = 0;// Nastavíme mu sázku na 0
GivePlayerMoney(i, 10000);// Dáme peníze
}
if(Loto_Cislo == 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 = 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 = 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

 

 

 

Předem díky smile.png

Link to comment
Share on other sites

5 odpovědí na tuto otázku

Recommended Posts

  • 0

Tak public o slosování se ti vykoná, protože to je v timeru a nemá to s příkazem co dělat.
 

Zkus třeba nějaký include na tvoření příkazů, např. zcmd.

 

To si nemyslím, spíš zkus změnit ID dialogu

Link to comment
Share on other sites

  • 0

Blbost to neni ale i to jsem z kousel ;) ale vcera jsem si skusil v tom fs vytvorit jen prikaz /lotto2 ve kterim se po napsani objevyla jen zprava a ten fungoval to mi potvrdilo ze fs je funkcni jen to nechce vzit podminky z dialogu :( to znamena ze problem bude nekde tam ;)

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