Skip to content

How it’s made: Bank

by matergames on Październik 17th, 2009

Tak, trywialne, ale może i się przyda :P

Sugestie mile widziane ^_^

A więc – pisanie banku w grze.

Dodajemy sobie pole bank oraz bank_time do tabeli z graczami.

bank będzie przechowywał gotówkę gracza a bank_time ostatni update odsetek (zakładamy, że gracz dostaje 3% swojej gotówki co 24h)

///Przy okazji – muszę przepisać od nowa system banku w TGO, bo jest tak stary, że pisany wręcz tragicznie :D

Zaczynamy! :)

if(empty($p['bank_time'])){
  //$p to tablica z pobranymi danymi gracza
  mysql_query("UPDATE `players` SET `bank_time` = UNIX_TIMESTAMP() WHERE `id`='$p[id]'");
}
if($p['bank']!=0){
  //Jeśli gracz ma coś w banku
  if(time()-$p['bank_time']=86400){
   //Jeśli ostatni update był ponad 24h temu
   $p['bank'] += floor((time()-$p['bank_time'])/86400)*0.03*$p['bank'];
   //Obliczamy ile kasy w banku ma teraz gracz
   mysql_query("UPDATE `players` SET `bank` = '$p[bank]', `bank_time` = UNIX_TIMESTAMP() WHERE `id`='$p[id]'");
   }
  }

Mam nadzieję, że się nigdzie nie pomyliłem, ja to z palca piszę :P
Czyli mamy już odsetki, teraz zajmiemy się wyjmowaniem i deponowaniem pieniędzy.

Przelewy są opcjonalne i nie będę ich teraz brał pod uwagę, warto zaznaczyć jednak, żeby zrobić limit lvl od którego można robić przelewy,jeśli gracz dostaje pieniądze na start.

Dlaczego?
Ano, bo pozakłada sobie 10 kont, z każdego po dajmy na to 150$ prześle i już ma 1500$ dodatkowo ;-)

Wstawiamy sobie dwa formularze – action=POST, sposób w jaki przekażecie typ operacji nie jest zbytnio ważny, może to być ukryte pole, a może to być tylko jeden formularz ale za to z radio buttonem do wyboru akcji – to już zostawiam wam.
Ja opiszę na przykładzie ukrytego pola w formularzu o nazwie op – 0 będzie oznaczało wypłatę o 1 wpłatę :)

if($_POST['op']==0 && $_POST['cash']){
//Jeśli formularz został wysłany
$cash = (int) $_POST['cash'];
//Filtrujcie wszystkie zmienne pochodzące od gracza, tyle to za mało.
//To jest tylko mini-poradnik, więc nie robię wszystkiego za was :D
if($cash0 && $p['bank']=$cash){ //Sprawdzamy, czy taką kwotę da się wypłacić
mysql_query("UPDATE `players` SET `bank`= `bank` - $cash,`kasa`=`kasa`+$cash WHERE `id`='$p[id]'");
}
}
if($_POST['op']==1 && $_POST['cash']){
//Jeśli formularz został wysłany
$cash = (int) $_POST['cash'];
//Filtrujcie wszystkie zmienne pochodzące od gracza, tyle to za mało.
//To jest tylko mini-poradnik, więc nie robię wszystkiego za was :D
if($cash0 && $p['kasa']=$cash){
//Sprawdzamy, czy taką kwotę da się wypłacić
mysql_query("UPDATE `players` SET `kasa`= `kasa` - $cash,`bank`=`bank`+$cash WHERE `id`='$p[id]'");
}
}

Wszelkie informacje o gracza o pomyślnym lub też nie wykonaniu operacji pozostawiam wam, gdyż to nie wymaga specjalnych umiejętności :P
To byłoby na tyle w dzisiejszym How It’s made, zapraszam do następnego odcinka który ukarze się nie wiadomo kiedy :P
Jeśli gdzieś zrobiłem błąd to napiszcie w komentarzach :)

Podziel się:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • MySpace
  • Twitter
  • Add to favorites
  • Blip
  • Flaker
  • Grono
  • Kciuk.pl
  • LinkedIn
  • Live
  • Slashdot
  • Śledzik
  • Wykop
2 Comments
  1. Anonymous permalink

    Nie dziala, wkleiłem do bank.php i nie ma żadnego pola do kasy ani nic -.-

  2. matergames permalink

    quot;Wstawiamy sobie dwa formularze – action=POST, sposób w jaki przekażecie typ operacji nie jest zbytnio ważny, może to być ukryte pole, a może to być tylko jeden formularz ale za to z radio buttonem do wyboru akcji – to już zostawiam wam.quot;br /Czyli formularz wstawiacie sami…

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS