- Баллы
- 143
- Имя в Minecraft
- Kelatyh
Привет, скрипт реферальной системы с поощрением после 3 часов игры на сервере!
Работаем с плагином PlayTime(подключенным к Базе данным)
Для её установки надо отредактировать 2 файла:
Открываем main.php, находим:
Ниже вставляем:
Сохраняем, выходим!
Далее открываем register.php и ищем примерно такую строчку:
Изменяем ее на
Чуть ниже находим:
Ниже добавляем:
Создаем файл cronref.php в engine/modules/ , и cron поставить интервал запроса.(Время на усмотрение), если игроков мало то лучше 1-2 раза в день. не более!
Содержимое:
Thanks for @Kimato
С PHP частью закончили, переходим к MySQL
Работаем с плагином PlayTime(подключенным к Базе данным)
Для её установки надо отредактировать 2 файла:
- main.php - в /engine/modules/
- register.php - в /engine/modules/
Открываем main.php, находим:
PHP:
$tpl->load_template ( 'main.tpl' );
PHP:
if(strstr($_SERVER['REQUEST_URI'],'/follow/')){
if(!isset($_COOKIE['ref_name'])){
$name_ref = str_replace("/follow/","",$_SERVER['REQUEST_URI']);
if(!empty($name_ref)) setcookie("ref_name",$name_ref,time()+2592000,'/');
}
header("Location: /");
exit;
}
Далее открываем register.php и ищем примерно такую строчку:
PHP:
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
PHP:
if(isset($_COOKIE['ref_name'])){
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip, byurl, confirm) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "', '".$db->safesql($_COOKIE['ref_name'])."', 'FALSE')" );
}else{
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
}
PHP:
set_cookie( "dle_password", $user_arr[2], 365 );
PHP:
setcookie("ref_name","",time()-1,'/');
Содержимое:
PHP:
#Получаем всех не подтвержденных игроков
$qr_result = mysql_query("select * from `dle_users` WHERE `confirm` = 'FALSE'")
or die(mysql_error());
#С каждым из них делаем...
while($data = mysql_fetch_array($qr_result)){
#Проверяем, регистрировался он по ссылке игрока, если нет, выдаем подтверждение что бы не болтался каждый раз
if($data['byurl'] <> ''){
#Получаем время игрока на сервере
$resulttime = mysql_query("SELECT * FROM `playTime` WHERE `username` = '".$data['name']."'");
$row1 = mysql_fetch_array($resulttime);
$playedTime = $row1['playtime'];
#Если время больше трех часов, выдаем подтверждение и награду пригласившему
if($playedTime >= 180){
mysql_query("UPDATE `dle_users` SET `confirm` = 'TRUE' WHERE `name` = '".$data['name']."'");
mysql_query("UPDATE `dle_users` SET `money` = `money`+20 WHERE `name` = '".$data['byurl']."'");
}
}else{
mysql_query("UPDATE `dle_users` SET `confirm` = 'TRUE' WHERE `name` = '".$data['name']."'");
}
}
mysql_close($connect_to_db);
?>
PHP:
<?php
define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname (__DIR__));
define('ENGINE_DIR', ROOT_DIR . '/engine');
require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
$qr_result = $db->super_query("SELECT u.name, u.byurl FROM dle_users as u, playTime as p WHERE p.username = u.name AND u.confirm = 'FALSE' AND u.byurl IS NOT NULL AND p.playtime >= 180", true);
foreach ( $qr_result as $row ) {
$db->query("UPDATE dle_users SET confirm = 'TRUE' WHERE name = '" . $db->safesql($row['name']) . "'");
$db->query("UPDATE dle_users SET money = money + '20' WHERE name = '" . $db->safesql($row['byurl']) . "'");
}
$db->close();
Код:
ALTER TABLE `dle_users` ADD byurl` varchar(255) NOT NULL, `confirm` varchar(255) NOT NULL DEFAULT 'FALSE';
Последнее редактирование:

