Автор Тема: Модуль Лотерея  (Прочитано 915 раз)

0 Пользователей и 1 Гость просматривают эту тему.

SnaykАвтор темы

  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Топ 10 по созданным темам Более 100 сообщений Более 10 созданных тем
  • Дата регистрации: Сен. 2016
  • Возраст: 35
  • Сообщений: 143
  • Страна: ua
  • Поблагодарили: 7 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
  • Дата рождения:1986-04-17
    • Награды
Модуль Лотерея
« : 23 Июля 2017, 10:54:01 »
Всем доброго времени суток.

Подскажите, как настроить модуль Лотерея что бы можно было покупать только один билет в одном розыгрыше?
 

APTEMOH

  • *
  • *
  • Оффлайн
  • Награды Более 5 лет на форуме !!! Топ 10 по сообщениям За помощь пользователям Репутация более 15 Более 500 сообщений Более 10 созданных тем
  • Дата регистрации: Сен. 2015
  • Расположение: Расположение
  • Сообщений: 526
  • Страна: th
  • Поблагодарили: 64 раз(а)
  • Репутация +19/-2
  • Пол: Мужской
    • Награды
  • Социальные сети:
    ВКонтакте
Модуль Лотерея
« Ответ #1 : 23 Июля 2017, 18:47:05 »
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Лотерея";
$usid = $_SESSION["user_id"];
$uname = $_SESSION["user"];

# Настройки лотерея
$amount_lottery = 100; // Стоимость лотерейного билета
$num_bil = 10; // Количество билетов

?>
<div class="s-bk-lf">
   <div class="acc-title">Лотерея</div>
</div>
<div class="silver-bk">

<?PHP

# список предыдущих лотерей
if(isset($_GET["winners"])){ ?>

<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td colspan="6" align="center"><h4>Завершенные лотереи</h4></td>
    </tr>
  <tr>
    <td align="center" class="m-tb">№</td>
    <td align="center" class="m-tb">Пользователь<BR />[Билет]</td>
   <td align="center" class="m-tb">Пользователь<BR />[Билет]</td>
   <td align="center" class="m-tb">Пользователь<BR />[Билет]</td>
   <td align="center" class="m-tb">Банк</td>
   <td align="center" class="m-tb">Дата</td>
  </tr>
  <?PHP
 
  $db->Query("SELECT * FROM db_lottery_winners ORDER BY id DESC");
 
   if($db->NumRows() > 0){
 
        while($ref = $db->FetchArray()){
      
      ?>
      <tr class="htt">
          <td align="center"><?=$ref["id"]; ?></td>
         <td align="center"><?=$ref["user_a"]; ?><BR />Билет: <?=$ref["bil_a"]; ?></td>
         <td align="center"><?=$ref["user_b"]; ?><BR />Билет: <?=$ref["bil_b"]; ?></td>
         <td align="center"><?=$ref["user_c"]; ?><BR />Билет: <?=$ref["bil_c"]; ?></td>
         <td align="center"><?=$ref["bank"]; ?></td>
         <td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
        </tr>
      <?PHP
      
      }
 
   }else echo '<tr><td align="center" colspan="6">Нет записей</td></tr>'
  ?>

 
</table>

<div class="clr"></div></div>
<?PHP return; } ?>

<b>Лотерея</b> - это такая игры :) Всего имеется <?=$num_bil; ?> билетов. После того, как все билеты будут проданы состоится розыгрыш счастливых билетов. Система случайным образом выберет 3 номера счастливых билетов и зачислит им призы. <BR />
1 место - 50% от общего банка [<?=($amount_lottery * $num_bil) * 0.5; ?> серебра]. <BR />
2 место - 25% от общего банка [<?=($amount_lottery * $num_bil) * 0.25; ?> серебра]. <BR />
3 место - 20% от общего банка [<?=($amount_lottery * $num_bil) * 0.2; ?> серебра]. <BR />
Остальные 5% составляют комиссию системы.
<BR />
<u>Стоимость билета = <?=$amount_lottery; ?> серебра</u>.
<BR />
<a href="/account/lottery/winners">Список завершенных лотерей</a>
<BR /><BR />


<?PHP

    $db->Query("SELECT user FROM db_lottery WHERE user = '$uname'");
    $userRow = $db->FetchRow();

   if(isset($_POST["set_lottery"], $_POST["hash"]) AND $_SESSION["lot_hash"] == $_POST["hash"]){

        if ($userRow == $uname) {
            echo "<center><b><font color='red'>Эй, харе! Остановись...</font></b></center><BR />";
        }else{
            #echo "Покупаем!";
       
          $db->Query("SELECT money_b FROM db_users_b WHERE id = '{$usid}' LIMIT 1");
          if($db->FetchRow() >= $amount_lottery){
          
             $db->Query("UPDATE db_users_b SET money_b = money_b - '$amount_lottery' WHERE id = '{$usid}'");
             $db->Query("INSERT INTO db_lottery (user_id, user, date_add) VALUE ('$usid','$uname','".time()."')");
             $lid = $db->LastInsert();
             
             if( $lid >= $num_bil){
             
                # Розыгрываем призы
                while(true){
                
                   $winner_a = rand(1, $num_bil);
                   $winner_b = rand(1, $num_bil);
                   $winner_c = rand(1, $num_bil);
                   
                   if($winner_a != $winner_b AND $winner_b != $winner_c AND $winner_c != $winner_a) break;
                   
                }
                
                # Пользователь 1
                $db->Query("SELECT user FROM db_lottery WHERE id = '$winner_a'");
                $user_a = $db->FetchRow();
                
                # Пользователь 2
                $db->Query("SELECT user FROM db_lottery WHERE id = '$winner_b'");
                $user_b = $db->FetchRow();
                
                # Пользователь 3
                $db->Query("SELECT user FROM db_lottery WHERE id = '$winner_c'");
                $user_c = $db->FetchRow();
                
                # чистим таблицу
                $db->Query("TRUNCATE TABLE db_lottery");
                
                # Вставляем запись о победителях
                $all_bank = ($num_bil * $amount_lottery);
                $db->Query("INSERT INTO db_lottery_winners (user_a, bil_a, user_b, bil_b, user_c, bil_c, bank, date_add)
                VALUES ('$user_a','$winner_a','$user_b','$winner_b','$user_c','$winner_c','$all_bank','".time()."')");
                
                # Обновляем средства пользователям
                # 1 место
                $money_a = $all_bank * 0.5;
                $db->Query("UPDATE db_users_b SET money_b = money_b + '$money_a' WHERE user = '$user_a'");
                
                # 2 место
                $money_b = $all_bank * 0.25;
                $db->Query("UPDATE db_users_b SET money_b = money_b + '$money_b' WHERE user = '$user_b'");
                
                # 3 место
                $money_c = $all_bank * 0.20;
                $db->Query("UPDATE db_users_b SET money_b = money_b + '$money_c' WHERE user = '$user_c'");
                
                echo "<center><b><font color='green'>Лотерея окончена</font></b></center><BR />";
                
             }else echo "<center><b><font color='green'>Билет успешно куплен</font></b></center><BR />";
             
          }else echo "<center><b><font color='red'>Недостаточно средств для покупки билета</font></b></center><BR />";

        }
      
   }

?>


<center>
<?PHP
$_SESSION["lot_hash"] = rand(1, 9999999);

if ($userRow == $uname) {
    echo "<center><b><font color='red'>Эй, харе! Остановись...</font></b></center><BR />";
}else{
?>
<form action="" method="post">
<input type="submit" name="set_lottery" value="Купить билет" style="padding:7px;" />
<input type="hidden" name="hash" value="<?=$_SESSION["lot_hash"]; ?>" />
</form>
</center>
<?php
}
?>


<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td colspan="5" align="center"><h4>Пользователи купившие билеты</h4></td>
    </tr>
  <tr>
    <td align="center" class="m-tb">№ билета</td>
    <td align="center" class="m-tb">Пользователь</td>
   <td align="center" class="m-tb">Дата</td>
  </tr>
  <?PHP
 
  $db->Query("SELECT * FROM db_lottery ORDER BY id DESC");
 
   if($db->NumRows() > 0){
 
        while($ref = $db->FetchArray()){
      
      ?>
      <tr class="htt">
          <td align="center"><?=$ref["id"]; ?></td>
         <td align="center"><?=$ref["user"]; ?></td>
         <td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
        </tr>
      <?PHP
      
      }
 
   }else echo '<tr><td align="center" colspan="3">Нет записей</td></tr>'
  ?>

 
</table><div class="clr"></div>   


</div>
 
Пользователи, которые поблагодарили этот пост: Snayk, Somnambula, kot001

SnaykАвтор темы

  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Топ 10 по созданным темам Более 100 сообщений Более 10 созданных тем
  • Дата регистрации: Сен. 2016
  • Возраст: 35
  • Сообщений: 143
  • Страна: ua
  • Поблагодарили: 7 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
  • Дата рождения:1986-04-17
    • Награды
Модуль Лотерея
« Ответ #2 : 23 Июля 2017, 19:25:17 »
))=(.
 

Somnambula

  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Более 10 созданных тем
  • Дата регистрации: Июнь 2017
  • Сообщений: 41
  • Страна: ru
  • Поблагодарили: 5 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
    • Награды
Модуль Лотерея
« Ответ #3 : 09 Сентября 2017, 18:13:58 »
Спасибо! Давно хотел такое исправление!
 

Sogan

  • *
  • Оффлайн
  • Награды Более 5 лет на форуме !!! Более 200 сообщений
  • Дата регистрации: Фев. 2016
  • Сообщений: 209
  • Страна: at
  • Поблагодарили: 27 раз(а)
  • Репутация +4/-0
  • Пол: Мужской
    • Награды
Модуль Лотерея
« Ответ #4 : 26 Декабря 2018, 17:16:53 »
а участников 6-7, туда же можно добавить?, чтоб выигрыш 60-70% был, а не 30%. в базе наверно тоже чет менять придется.
a:0:{}
 

Sogan

  • *
  • Оффлайн
  • Награды Более 5 лет на форуме !!! Более 200 сообщений
  • Дата регистрации: Фев. 2016
  • Сообщений: 209
  • Страна: at
  • Поблагодарили: 27 раз(а)
  • Репутация +4/-0
  • Пол: Мужской
    • Награды
Модуль Лотерея
« Ответ #5 : 30 Декабря 2018, 18:10:48 »
Кто знает от какого это модуля лотерея, кусок скрипта?
Лотерея - это такая игры :) Всего имеется 5 билетов, 4 из которых не имеют выигрыша, а 4-й приносит своему владельцу сумму всех билетов за вычетом комиссии системы 10% Никто не знает, какой по счету билет он покупает.
После покупки билета вам сразу будет известен результат.
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Лотерея";
$usid = $_SESSION["user_id"];
$uname = $_SESSION["user"];

# Настройки лотерея
$amount_lottery = 100; // Стоимость лотерейного билета
$num_bil = 5; // Количество билетов
$com_sys = 10; // Комиссия системы

?>
<div class="s-bk-lf">
   <div class="acc-title">Лотерея</div>
</div>
<div class="silver-bk">

<b>Лотерея</b> - это такая игры :) Всего имеется <?=$num_bil; ?> билетов, <?=$num_bil-1;?> из которых не имеют выигрыша, а <?=$num_bil-1;?>-й приносит своему владельцу
сумму всех билетов за вычетом комиссии системы <?=$com_sys; ?>%
Никто не знает, какой по счету билет он покупает.
<BR />
После покупки белета вам сразу будет известен результат.
<BR />
<u>Стоимость билета = <?=$amount_lottery; ?> серебра</u>.
<BR /><BR />


<?PHP


   if(isset($_POST["set_lottery"])){
   
      $db->Query("SELECT money_b FROM db_users_b WHERE id = '{$usid}' LIMIT 1");
      if($db->FetchRow() >= $amount_lottery){
      
         $db->Query("UPDATE db_users_b SET money_b = money_b - '$amount_lottery' WHERE id = '{$usid}'");
         $db->Query("INSERT INTO db_lottery (user_id, user, all_bil, win_bil, date_add) VALUE ('$usid','$uname','$num_bil','$num_bil','".time()."')");
         $lid = $db->LastInsert();
         
         if( ($lid % $num_bil) == 0){
         
            $add_m = round( ($amount_lottery * $num_bil) - ( ($amount_lottery * $num_bil) * ($com_sys / 100) ),2);
            
            $db->Query("UPDATE db_users_b SET money_b = money_b + '{$add_m}' WHERE id = '{$usid}'");
            $db->Query("UPDATE db_lottery SET win = '1', sum = '$add_m' WHERE id = '$lid'");
            
            echo "<center><b><font color='green'>Ваш билет выигрышный. Вам зачислено {$add_m} серебра.</font></b></center><BR />";
            
         }else echo "<center><b><font color='red'>В этот раз Вам не повезло :(</font></b></center><BR />";
         
      }else echo "<center><b><font color='red'>Недостаточно средств для покупки билета</font></b></center><BR />";
      
   }

?>


<center>
<form action="" method="post">
<input type="submit" name="set_lottery" value="Купить билет" style="padding:7px;" />
</form>
</center>


<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
  <tr>
    <td colspan="5" align="center"><h4>Последние 10 победителей</h4></td>
    </tr>
  <tr>
    <td align="center" class="m-tb">Пользователь</td>
    <td align="center" class="m-tb">Сумма выигрыша</td>
   <td align="center" class="m-tb">Дата</td>
  </tr>
  <?PHP
 
  $db->Query("SELECT * FROM db_lottery WHERE win = '1' ORDER BY id DESC");
 
   if($db->NumRows() > 0){
 
        while($ref = $db->FetchArray()){
      
      ?>
      <tr class="htt">
          <td align="center"><?=$ref["user"]; ?></td>
          <td align="center"><?=sprintf("%.2f",$ref["sum"]); ?></td>
         <td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
        </tr>
      <?PHP
      
      }
 
   }else echo '<tr><td align="center" colspan="3">Нет записей</td></tr>'
  ?>

 
</table><div class="clr"></div>   


</div>
 
Теги:
 

Модуль PKinoPoisk, PKinoPoisk Person, Person Movie для DLE

Автор shans5Раздел Модули DLE

Ответов: 0
Просмотров: 2803
Последний ответ 25 Октября 2015, 16:05:27
от shans5
Модуль для FF "Статистика"

Автор shans5Раздел Модули для фруктовых ферм

Ответов: 1
Просмотров: 3607
Последний ответ 24 Октября 2015, 21:24:41
от shans5
Модуль "Клондайк"

Автор SomnambulaРаздел Вопросы по модулям фруктовых ферм

Ответов: 4
Просмотров: 1194
Последний ответ 18 Июня 2017, 08:19:48
от Somnambula
Модуль "бонус лидерам"

Автор shans5Раздел Модули для фруктовых ферм

Ответов: 0
Просмотров: 2037
Последний ответ 14 Сентября 2015, 00:07:27
от shans5
Модуль "Орел или Решка"

Автор shans5Раздел Модули для фруктовых ферм

Ответов: 0
Просмотров: 1927
Последний ответ 20 Сентября 2015, 07:47:15
от shans5