Výherní automat DAYTONA GAMBLER pro dosbox který stáhnete z domovské stránky dosboxu

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Kategória: KMP (Klub mladých programátorov)
gambler.jpgAutor: Martin Koleček
Program: Daytona.pasDefault.pasHisther.pasJackpot.pasLoading.pasMain.pasMaingame.pasMisc.pasMys.pasOvladani.pas
Súbor exe: Gambler.zip
Potrebné: Plus1000.pasPlus500.pasProdat.pasRiskscr.pasRoll.pasRollpre.pasRollproc.pasRolsetup.pasRskdolni.pasRskhorni.pas
Príklady: Saveload.pasScore.pasScreen.pasServis.pasSetbet.pasTestwin.pasUpdate5.pasWaitbtn.pasWinblink.pasWrivalce.pasZisky.pas

Výherní automat podle skutečného stroje Daytona 750. Podporuje Sound Blaster.
Rychlost hry je konfigurovatelná. Experimentálně podporuje ovládání dotykovým displayem pro Androidy.

POZOR:
  • než se objeví hra tak se to načítá poměrně velmi velmi dlouho takže buďte trpěliví
  • pokud nevíte co přesně děláte tak servisní nastavení raději nechte bez povšimnutí
  • reset v servisním nastavení resetuje pouze počítadlo výher a vkladů, ne nastavení hry
  • pokud už jste stačili popřehazovat servisní nastavení a hra je špatně hratelná, tak vymažte soubor GAMBLER.DAT, hra se uvede do "továrního nastavení"

O dosboxu:
  • pokud nevíte a neumíte tak se zeptejte někoho kdo ví a umí nebo si najděte informace o dosboxu na internetu
  • hodnota cycles pro GAMBLERA na PC je tak 10000 až 20000
  • hodnota cycles na mobilních zařízeních (tam používejte legální dosbox turbo) je tak 7000
  • nedávejte cycles max nebo cycles auto, párkrát to zkuste a najděte si správnou přesnou hodnotu
  • hra by neměla kazit zvuk nebo cukat obraz, pokud je cycles nastaveno optimálně v‘e jede hladce
  • DAYTONA GAMBLER je podomácku vyrobený freeware takže ho bezestrachu ‘iřte a ukazujte druhým jak se to hraje
  • totéž dosbox pro PC je freeware, dosbox turbo je komerční ale stojí jen 60 korun tak nebuďte piráti


Nastavení výhernosti:
V servisní obrazovce klávesou TAB měníte switch a nahoru dolů manipupuje s výherností rozsahy jsou 0 až 65000 v‘echny switche a číslo na něm vyrábí poměr mezi dvěma stavy, obvykle to bývá jestli je výhra nebo není výhra a číslo teda dělí na poměr mezi těmito stavy, vždy "0 až číslo" je jedna část, třeba jestli se riskovani povede nebo nepovede a "číslo až 65000" je druhá část možného výsledku. Nakonec rozhodne náhodné číslo z rozsahu "0 až 65535" , ale záleží na poměru na switchi co je pravděpodobněj‘í interval.


SWITCHE:
  • 2kč výhry = šance na výhru ve dvoukorunové hře {RollSetup bet 2, čím menší tím míň výher}
  • 4kč výhry = šance na výhru ve čtyřkorunové hře {RollSetup bet 4, čím menší tím míň výher}
  • 5kč výhry = šance na výhru v pětikorunové hře {RollSetup bet 5, čím menší tím míň výher}
  • 2kč Joker A = pravděpodobnost výsměchu Jokera na dvoukorunové hře {TestWin bet 2J, čím menší tím víc výher}
  • 2kč Joker B = pravděpodobnost zdvojnásobení Jokerem na dvoukorunové hře {TestWin bet 2J, čím menší tím míň výher}
  • 4kč Joker A = pravděpodobnost výsměchu Jokera na čtyřkorunové hře {TestWin bet 4J, čím menší tím víc výher}
  • 4kč Joker B = pravděpodobnost zdvojnásobení Jokerem na čtyřkorunové hře {TestWin bet 4J, čím menší tím míň výher}
  • 5kč Joker = pravděpodobnost zdvojnásobení Jokerem na pětikorunové hře {TestWin bet 5J, čím menší tím míň výher} (na 5kč hře se joker neposmívá)
  • riskovani = šance na zdvojnásobení riskem strany mince při náhodném risku {Risking vyhernost čím menší tím míň výher} (neplatí při risku postřehem; nebo při risku autostartem tam je poměr 1:1)
Procedure RiskScreen;
Begin
  WaitRetrace;
 
  {DISPLAY WIN + CREDIT}
  Blok(109,141,210,149,ColorBlack,Buffer[4]);
  Ramecek(108,138,211,150,ColorRedBright,Buffer[4]);
  Blok(118,136,138,140,ColorBlack,Buffer[4]);
  WriteText(Buffer[1],160,40,5,5,1,120,136,'win',Buffer[4]);
  Blok(168,136,206,140,ColorBlack,Buffer[4]);
  WriteText(Buffer[1],160,40,5,5,1,170,136,'credit',Buffer[4]);
 
  If VyhraShow=True then
  Begin
    If Vyhra.Castka<10 then WriteNumber(Buffer[1],160,96,5,7,1,130,142,Vyhra.Castka,Buffer[4]);
    If Vyhra.Castka>=100 then WriteNumber(Buffer[1],160,96,5,7,1,120,142,Vyhra.Castka,Buffer[4]);
    If ((Vyhra.Castka>=10) and (Vyhra.Castka<100)) then WriteNumber(Buffer[1],160,96,5,7,1,125,142,Vyhra.Castka,Buffer[4]);
  End;
 
  If CreditShow=True then
  Begin
    If Credit<10 then WriteNumber(Buffer[1],160,96,5,7,1,200,142,Credit,Buffer[4]);
    If ((Credit>=10) and (Credit<100)) then WriteNumber(Buffer[1],160,96,5,7,1,194,142,Credit,Buffer[4]);
    If ((Credit>=100) and (Credit<1000)) then WriteNumber(Buffer[1],160,96,5,7,1,188,142,Credit,Buffer[4]);
    If ((Credit>=1000) and (Credit<10000)) then WriteNumber(Buffer[1],160,96,5,7,1,182,142,Credit,Buffer[4]);
    If ((Credit>=10000) and (Credit<100000)) then WriteNumber(Buffer[1],160,96,5,7,1,176,142,Credit,Buffer[4]);
    If ((Credit>=100000) and (Credit<1000000)) then WriteNumber(Buffer[1],160,96,5,7,1,170,142,Credit,Buffer[4]);
    If ((Credit>=1000000) and (Credit<9999999)) then WriteNumber(Buffer[1],160,96,5,7,1,164,142,Credit,Buffer[4]);
  End;
 
  {HLAVA OREL BLINKING}
  If Risk.Blinking=True then
  Begin
    If Risk.Counter<RiskSpeed
                      then Inc(Risk.Counter)
                      else Begin
                             Risk.Counter:=0;
                             If RiskSpeedCounter>0 then Dec(RiskSpeedCounter)
                                                   else Begin
                                                          RiskSpeedCounter:=3;
                                                          If RiskSPDCounter>0
                                                          then Dec(RiskSPDCounter)
                                                          else RiskSPDCounter:=1;
                                                        End;
                             If RiskSpeedCounter=0 then
                             Case RiskSPDCounter of
                               0: RiskSpeed:=1;
                               1: RiskSpeed:=2;
                             End; {Case End}
                             If Risk.Phase=0 then Begin
                                                    Risk.Phase:=1;
                                                    Hlava.Enable:=False;
                                                    Orel.Enable:=True;
                                                    Btn[4].Phase:=0;
                                                    Btn[5].Phase:=1;
                                                    Btn[0].Phase:=1;
                                                  End
                                             else Begin
                                                    Risk.Phase:=0;
                                                    Hlava.Enable:=True;
                                                    Orel.Enable:=False;
                                                    Btn[4].Phase:=1;
                                                    Btn[5].Phase:=0;
                                                    Btn[0].Phase:=1;
                                                  End;
                           End;
 
  End;
 
  {HLAVA OREL}
  Begin
    WriteSprite(252,82,100,116,131,131,Buffer[1],Buffer[4]); {RISK}
    If Hlava.Enable=True then WriteSprite(220,104,0,140,47,179,Buffer[1],Buffer[4])
                         else WriteSprite(220,104,0,100,47,139,Buffer[1],Buffer[4]);
    If Orel.Enable=True then WriteSprite(268,104,48,140,95,179,Buffer[1],Buffer[4])
                        else WriteSprite(268,104,48,100,95,139,Buffer[1],Buffer[4]);
  End;
 
  {Button DO MULTIWINU}
  If Btn[0].Phase=0 then Blok(187,185,237,199,ColorRedDark,Buffer[4])
                    else Blok(187,185,237,199,ColorYellow,Buffer[4]);
  Ramecek(187,185,237,199,ColorGreenDark,Buffer[4]);
  WriteText(Buffer[1],160,20,5,5,1,231,187,'m',Buffer[4]);
  WriteText(Buffer[1],160,20,5,5,1,189,193,'multiwin',Buffer[4]);
 
  {Button HLAVA}
  If Btn[4].Phase=0 then Blok(239,185,278,199,ColorRedDark,Buffer[4])
                    else Blok(239,185,278,199,ColorYellow,Buffer[4]);
  Ramecek(239,185,278,199,ColorGreenDark,Buffer[4]);
  WriteText(Buffer[1],160,20,5,5,1,272,187,'h',Buffer[4]);
  WriteText(Buffer[1],160,20,5,5,1,241,193,'hlava',Buffer[4]);
 
  {Button OREL}
  If Btn[5].Phase=0 then Blok(280,185,319,199,ColorRedDark,Buffer[4])
                    else Blok(280,185,319,199,ColorYellow,Buffer[4]);
  Ramecek(280,185,319,199,ColorGreenDark,Buffer[4]);
  WriteText(Buffer[1],160,20,5,5,1,313,187,'o',Buffer[4]);
  WriteText(Buffer[1],160,20,5,5,1,282,193,'orel',Buffer[4]);
End;