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
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 }
Dotaz
jAk3r 47
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
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
Link to comment
Share on other sites
5 odpovědí na tuto otázku
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now