1
This commit is contained in:
parent
788aa477f7
commit
0474867187
@ -146,10 +146,6 @@ DROP TABLE IF EXISTS `quest`;
|
|||||||
CREATE TABLE `quest` (
|
CREATE TABLE `quest` (
|
||||||
`idx` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
`idx` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
`accountid` varchar(60) DEFAULT '' COMMENT '账号id',
|
`accountid` varchar(60) DEFAULT '' COMMENT '账号id',
|
||||||
`active_num` int(11) NOT NULL COMMENT '日活跃度',
|
|
||||||
`num_time` varchar(50) NOT NULL DEFAULT '日活跃度时间',
|
|
||||||
`active_sum` int(11) NOT NULL COMMENT '周活跃度',
|
|
||||||
`sum_time` varchar(50) NOT NULL DEFAULT '周活跃度时间',
|
|
||||||
`quest_id` int(11) NOT NULL COMMENT '任务id',
|
`quest_id` int(11) NOT NULL COMMENT '任务id',
|
||||||
`quest_num` int(11) NOT NULL COMMENT '任务进度',
|
`quest_num` int(11) NOT NULL COMMENT '任务进度',
|
||||||
`quest_type` int(11) NOT NULL COMMENT '任务类型',
|
`quest_type` int(11) NOT NULL COMMENT '任务类型',
|
||||||
@ -158,6 +154,23 @@ CREATE TABLE `quest` (
|
|||||||
KEY `accountid` (`accountid`)
|
KEY `accountid` (`accountid`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structrure for table `active`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `active`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client*/;
|
||||||
|
/*!40101 SET character_set_client = utf8*/;
|
||||||
|
CREATE TABLE `active` (
|
||||||
|
`idx` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
|
`accountid` varchar(60) DEFAULT '' COMMENT '账号id',
|
||||||
|
`active_num` int(11) NOT NULL COMMENT '日活跃度',
|
||||||
|
`num_time` varchar(50) NOT NULL DEFAULT '日活跃度时间',
|
||||||
|
`active_sum` int(11) NOT NULL COMMENT '周活跃度',
|
||||||
|
`sum_time` varchar(50) NOT NULL DEFAULT '周活跃度时间',
|
||||||
|
PRIMARY KEY (`idx`),
|
||||||
|
KEY `accountid` (`accountid`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
@ -82,7 +82,7 @@ function getQuestConfig($quest_table, $quest_id)
|
|||||||
return array_key_exists($quest_id, $quest_table) ? $quest_table[$quest_id] : null;
|
return array_key_exists($quest_id, $quest_table) ? $quest_table[$quest_id] : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTaskRewardConfig()
|
function getTaskRewardConfig($taskReward_table, $taskReward_id)
|
||||||
{
|
{
|
||||||
return array_key_exists($taskReward_id, $taskReward_table) ? $taskReward_table[$taskReward_id] : null;
|
return array_key_exists($taskReward_id, $taskReward_table) ? $taskReward_table[$taskReward_id] : null;
|
||||||
}
|
}
|
||||||
|
112
webapp/classes/Quest.php
Normal file
112
webapp/classes/Quest.php
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace classes;
|
||||||
|
|
||||||
|
use phpcommon;
|
||||||
|
|
||||||
|
class Quest{
|
||||||
|
|
||||||
|
protected function getMysql($account_id)
|
||||||
|
{
|
||||||
|
$mysql_conf = getMysqlConfig(crc32($account_id));
|
||||||
|
$conn = new phpcommon\Mysql(array(
|
||||||
|
'host' => $mysql_conf['host'],
|
||||||
|
'port' => $mysql_conf['port'],
|
||||||
|
'user' => $mysql_conf['user'],
|
||||||
|
'passwd' => $mysql_conf['passwd'],
|
||||||
|
'dbname' => 'gamedb2001_' . $mysql_conf['instance_id']
|
||||||
|
));
|
||||||
|
return $conn;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getQuest($quest_id)
|
||||||
|
{
|
||||||
|
$g_conf_quest_cluster = require('../config/game2001api.quest.cluster.php');
|
||||||
|
$quest_conf = getQuestConfig($g_conf_quest_cluster, $quest_id);
|
||||||
|
$q = array(
|
||||||
|
'id' => $quest_conf['id'],
|
||||||
|
'type' => $quest_conf['type'],
|
||||||
|
'condition' => $quest_conf['condition'],
|
||||||
|
'value' => $quest_conf['value'],
|
||||||
|
'active_value' => $quest_conf['active_value'],
|
||||||
|
'gold' => $quest_conf['gold'],
|
||||||
|
);
|
||||||
|
return $q;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function triggerQuest($quest_id, $quest_type, $quest_num, $account_id)
|
||||||
|
{
|
||||||
|
$conn = $this->getMysql($account_id);
|
||||||
|
if (!$conn) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$q = $this->getQuest($quest_id);
|
||||||
|
if (!$q) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 2, '没有这个任务');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$row = $conn->execQueryOne('SELECT * FROM quest WHERE accountid=:accountid AND quest_id =:quest_id AND quest_type=:quest_type;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
':quest_id' => $quest_id,
|
||||||
|
':quest_type' => $quest_type,
|
||||||
|
));
|
||||||
|
if ($row) {
|
||||||
|
if ($q['condition'] == 7 && $quest_type == 1) {
|
||||||
|
if($quest_num <= $q['value']) {
|
||||||
|
$quest_state = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ($row['quest_num'] + $quest_num >= $q['value']) {
|
||||||
|
$quest_num = $q['value'];
|
||||||
|
$quest_state = 1;
|
||||||
|
} else {
|
||||||
|
$quest_num = $row['quest_num'] + $quest_num;
|
||||||
|
$quest_state = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$ret = $conn->execScript('UPDATE quest SET quest_num=:quest_num, quest_state=:quest_state ' .
|
||||||
|
' WHERE accountid=:accountid AND quest_id =:quest_id AND quest_type=:quest_type;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
':quest_id' => $quest_id,
|
||||||
|
':quest_type' => $quest_type,
|
||||||
|
':quest_num' => $quest_num,
|
||||||
|
':quest_state' => $quest_state
|
||||||
|
));
|
||||||
|
if (!$ret) {
|
||||||
|
die();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$quest_state = 0;
|
||||||
|
if ($q['condition'] == 7 && $quest_type == 1) {
|
||||||
|
if($quest_num <= $q['value']) {
|
||||||
|
$quest_state = 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($quest_num >= $q['value']) {
|
||||||
|
$quest_num = $q['value'];
|
||||||
|
$quest_state = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$ret = $conn->execScript('INSERT INTO quest(accountid, quest_id, quest_num, quest_type, quest_state) ' .
|
||||||
|
' VALUES(:accountid, :quest_id, :quest_num, :quest_type, :quest_state);',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
':quest_id' => $quest_id,
|
||||||
|
':quest_num' => $quest_num,
|
||||||
|
':quest_type' => $quest_type,
|
||||||
|
':quest_state'=> $quest_state
|
||||||
|
));
|
||||||
|
if (!$ret) {
|
||||||
|
die();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require 'classes/Quest.php';
|
||||||
|
|
||||||
class EquipController{
|
class EquipController{
|
||||||
|
|
||||||
protected function getMysql($account_id)
|
protected function getMysql($account_id)
|
||||||
@ -144,6 +146,8 @@ class EquipController{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$quest = new classes\Quest();
|
||||||
|
$quest->triggerQuest(71005, 1, 1, $account_id);
|
||||||
echo json_encode(array(
|
echo json_encode(array(
|
||||||
'errcode' => 0,
|
'errcode' => 0,
|
||||||
'errmsg' => '',
|
'errmsg' => '',
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require 'classes/Quest.php';
|
||||||
|
|
||||||
class QuestController{
|
class QuestController{
|
||||||
|
|
||||||
protected function getMysql($account_id)
|
protected function getMysql($account_id)
|
||||||
@ -45,6 +47,8 @@ class QuestController{
|
|||||||
|
|
||||||
protected function insertActive($account_id)
|
protected function insertActive($account_id)
|
||||||
{
|
{
|
||||||
|
$conn = $this->getMysql($account_id);
|
||||||
|
|
||||||
for ($i = 73001; $i < 73006; $i++) {
|
for ($i = 73001; $i < 73006; $i++) {
|
||||||
$ret = $conn->execScript('INSERT INTO quest(accountid, quest_id, quest_type, quest_state) ' .
|
$ret = $conn->execScript('INSERT INTO quest(accountid, quest_id, quest_type, quest_state) ' .
|
||||||
' VALUES(:accountid, :quest_id, :quest_type, :quest_state);',
|
' VALUES(:accountid, :quest_id, :quest_type, :quest_state);',
|
||||||
@ -55,36 +59,38 @@ class QuestController{
|
|||||||
':quest_state'=> 0
|
':quest_state'=> 0
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
for ($j = 74001; $j < 73004; $j++) {
|
for ($j = 74001; $j < 74004; $j++) {
|
||||||
$ret = $conn->execScript('INSERT INTO quest(accountid, quest_id, quest_type, quest_state) ' .
|
$ret = $conn->execScript('INSERT INTO quest(accountid, quest_id, quest_type, quest_state) ' .
|
||||||
' VALUES(:accountid, :quest_id, :quest_type, :quest_state);',
|
' VALUES(:accountid, :quest_id, :quest_type, :quest_state);',
|
||||||
array(
|
array(
|
||||||
':accountid' => $account_id,
|
':accountid' => $account_id,
|
||||||
':quest_id' => 73001,
|
':quest_id' => $j,
|
||||||
':quest_type' => 0,
|
':quest_type' => 0,
|
||||||
':quest_state'=> 0
|
':quest_state'=> 0
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function updateActive($account_id, $active_num, $active_sum)
|
public function updateActive($account_id, $active_num, $active_sum)
|
||||||
{
|
{
|
||||||
|
$conn = $this->getMysql($account_id);
|
||||||
for ($i = 73001; $i < 73006; $i++) {
|
for ($i = 73001; $i < 73006; $i++) {
|
||||||
$row = execQueryOne('SELECT * FROM quest WHERE accountid=:accoutnid AND quest_id=:quest_id;',
|
$quest_id = $i;
|
||||||
|
$row = $conn->execQueryOne('SELECT * FROM quest WHERE accountid=:accountid AND quest_id=:quest_id;',
|
||||||
array(
|
array(
|
||||||
':accountid' => $account_id,
|
':accountid' => $account_id,
|
||||||
':quest_id' => $i
|
':quest_id' => $quest_id
|
||||||
));
|
));
|
||||||
$t = $this->getTaskReward[$i];
|
$t = $this->getTaskReward($quest_id);
|
||||||
if ($row['quest_state'] != 0 || $active_num < $t['value']) {
|
if ($row['quest_state'] != 0 || $active_num < $t['value']) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$ret = $conn->execScript('UPDATE quest SET quest_state=:quest_state, ' .
|
$ret = $conn->execScript('UPDATE quest SET quest_state=:quest_state ' .
|
||||||
' WHERE accountid=:accountid AND quest_id =:quest_id;',
|
' WHERE accountid=:accountid AND quest_id =:quest_id;',
|
||||||
array(
|
array(
|
||||||
':account_id' => $account_id,
|
':accountid' => $account_id,
|
||||||
':quest_id' => $quest_id,
|
':quest_id' => $quest_id,
|
||||||
':quest_state' => $quest_state
|
':quest_state' => 1
|
||||||
));
|
));
|
||||||
if (!$ret) {
|
if (!$ret) {
|
||||||
die();
|
die();
|
||||||
@ -93,21 +99,22 @@ class QuestController{
|
|||||||
}
|
}
|
||||||
|
|
||||||
for ($j = 74001; $j < 74003; $j++) {
|
for ($j = 74001; $j < 74003; $j++) {
|
||||||
$row = execQueryOne('SELECT * FROM quest WHERE accountid=:accoutnid AND quest_id=:quest_id;',
|
$quest_id = $j;
|
||||||
|
$row = $conn->execQueryOne('SELECT * FROM quest WHERE accountid=:accountid AND quest_id=:quest_id;',
|
||||||
array(
|
array(
|
||||||
':accountid' => $account_id,
|
':accountid' => $account_id,
|
||||||
':quest_id' => $j
|
':quest_id' => $quest_id
|
||||||
));
|
));
|
||||||
$t = $this->getTaskReward[$j];
|
$t = $this->getTaskReward($j);
|
||||||
if ($row['quest_state'] != 0 || $active_sum < $t['value']) {
|
if ($row['quest_state'] != 0 || $active_sum < $t['value']) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$ret = $conn->execScript('UPDATE quest SET quest_state=:quest_state, ' .
|
$ret = $conn->execScript('UPDATE quest SET quest_state=:quest_state ' .
|
||||||
' WHERE accountid=:accountid AND quest_id =:quest_id;',
|
' WHERE accountid=:accountid AND quest_id =:quest_id;',
|
||||||
array(
|
array(
|
||||||
':account_id' => $account_id,
|
':accountid' => $account_id,
|
||||||
':quest_id' => $quest_id,
|
':quest_id' => $quest_id,
|
||||||
':quest_state' => $quest_state
|
':quest_state' => 1
|
||||||
));
|
));
|
||||||
if (!$ret) {
|
if (!$ret) {
|
||||||
die();
|
die();
|
||||||
@ -116,16 +123,27 @@ class QuestController{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function updateActiveTime($accountid, $quest_id)
|
protected function updateActiveTime($account_id, $quest_id, $flag)
|
||||||
{
|
{
|
||||||
$ret = $conn->execScript('UPDATE SET sum_time=:sum_time, active_sum=:active_sum ' .
|
$conn = $this->getMysql($account_id);
|
||||||
' WHERE accountid=:accountid;',
|
if ($flag == 2) {
|
||||||
array(
|
$ret = $conn->execScript('UPDATE active SET sum_time=:sum_time, active_sum=:active_sum ' .
|
||||||
':accountid' => $account_id,
|
' WHERE accountid=:accountid;',
|
||||||
':time' => time(),
|
array(
|
||||||
':active_sum' => 0
|
':accountid' => $account_id,
|
||||||
));
|
':sum_time' => time(),
|
||||||
$ret1 = $conn->execScript('DELETE FROM quest ' .
|
':active_sum' => 0
|
||||||
|
));
|
||||||
|
} else if ($flag == 1) {
|
||||||
|
$ret = $conn->execScript('UPDATE active SET num_time=:num_time, active_num=:active_num ' .
|
||||||
|
' WHERE accountid=:accountid;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
':num_time' => time(),
|
||||||
|
':active_num' => 0
|
||||||
|
));
|
||||||
|
}
|
||||||
|
$ret = $conn->execScript('DELETE FROM quest ' .
|
||||||
' WHERE accountid=:accountid AND quest_type=:quest_type AND quest_id<:quest_id;',
|
' WHERE accountid=:accountid AND quest_type=:quest_type AND quest_id<:quest_id;',
|
||||||
array(
|
array(
|
||||||
':accountid' => $account_id,
|
':accountid' => $account_id,
|
||||||
@ -134,7 +152,7 @@ class QuestController{
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getQuestInfo()
|
public function QuestInfo()
|
||||||
{
|
{
|
||||||
$account_id = $_REQUEST['account_id'];
|
$account_id = $_REQUEST['account_id'];
|
||||||
$conn = $this->getMysql($account_id);
|
$conn = $this->getMysql($account_id);
|
||||||
@ -147,35 +165,35 @@ class QuestController{
|
|||||||
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
$row = $conn->execQueryOne('SELECT active_sum, sum_time FROM active WHERE accountid=:accountid;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
));
|
||||||
|
if ($row) {
|
||||||
|
//每周更新活跃度
|
||||||
|
if (phpcommon\getMondayseconds(time()) - phpcommon\getMondayseconds($row['sum_time']) > 0) {
|
||||||
|
$this->updateActiveTime($account_id, 75000, 2);
|
||||||
|
} else {
|
||||||
|
$active_sum = $row['active_sum'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$row = $conn->execQueryOne('SELECT active_num, num_time FROM active WHERE accountid=:accountid;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
));
|
||||||
|
if ($row) {
|
||||||
|
//每日更新活跃度
|
||||||
|
if (phpcommon\getdayseconds(time()) - phpcommon\getdayseconds($row['num_time']) > 0) {
|
||||||
|
$this->updateActiveTime($account_id, 74000, 1);
|
||||||
|
} else {
|
||||||
|
$active_num = $row['active_num'];
|
||||||
|
}
|
||||||
|
}
|
||||||
$rowCount = $conn->execQueryRowCount('SELECT * FROM quest WHERE accountid=:accountid;',
|
$rowCount = $conn->execQueryRowCount('SELECT * FROM quest WHERE accountid=:accountid;',
|
||||||
array(
|
array(
|
||||||
':accountid' => $account_id,
|
':accountid' => $account_id,
|
||||||
));
|
));
|
||||||
if ($rowCount != 0) {
|
if ($rowCount != 0) {
|
||||||
$row = $conn->execQuery('SELECT active_sum, sum_time FROM quest WHERE accountid=:accountid;',
|
|
||||||
array(
|
|
||||||
':accountid' => $account_id,
|
|
||||||
));
|
|
||||||
if ($row) {
|
|
||||||
//每周更新活跃度
|
|
||||||
if (phpcommon\getMondayseconds(time()) - phpcommon\getMondayseconds($row['sum_time']) > 0) {
|
|
||||||
updateActiveTime($accountid, 75000);
|
|
||||||
} else {
|
|
||||||
$active_sum = $row['active_sum'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$row = $conn->execQuery('SELECT active_num, num_time FROM quest WHERE accountid=:accountid;',
|
|
||||||
array(
|
|
||||||
':accountid' => $account_id,
|
|
||||||
));
|
|
||||||
if ($row) {
|
|
||||||
//每日更新活跃度
|
|
||||||
if (phpcommon\getdayseconds(time()) - phpcommon\getdayseconds($row['num_time']) > 0) {
|
|
||||||
updateActiveTime($accountid, 74000);
|
|
||||||
} else {
|
|
||||||
$active_num = $row['active_num'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$rows = $conn->execQuery('SELECT * FROM quest WHERE accountid=:accountid AND quest_type=:quest_type;',
|
$rows = $conn->execQuery('SELECT * FROM quest WHERE accountid=:accountid AND quest_type=:quest_type;',
|
||||||
array(
|
array(
|
||||||
':accountid' => $account_id,
|
':accountid' => $account_id,
|
||||||
@ -232,82 +250,12 @@ class QuestController{
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function triggerQuest($quest_id, $quest_type, $quest_num, $account_id)
|
|
||||||
{
|
|
||||||
$q = $this->getQuest($quest_id);
|
|
||||||
if (!$q) {
|
|
||||||
phpcommon\sendError(ERR_USER_BASE + 2, '没有这个任务');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$row = $conn->execQueryOne('SELECT * FROM quest WHERE accountid=:accountid AND quest_id =:quest_id AND quest_type=:quest_type;',
|
|
||||||
array(
|
|
||||||
':accountid' => $account_id,
|
|
||||||
':quest_type' => $quest_type,
|
|
||||||
':quest_id' => $quest_id
|
|
||||||
));
|
|
||||||
if ($row) {
|
|
||||||
if ($q['condition'] == 7 && $quest_type == 1) {
|
|
||||||
if($quest_num <= $q['value']) {
|
|
||||||
$quest_state = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ($row['quest_num'] + $quest_num >= $q['value']) {
|
|
||||||
$quest_num = $q['value'];
|
|
||||||
$quest_state = 1;
|
|
||||||
} else {
|
|
||||||
$quest_num = $row['quest_num'] + $quest_num;
|
|
||||||
$quest_state = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$ret = $conn->execScript('UPDATE quest SET quest_num=:quest_num, quest_state=:quest_state ' .
|
|
||||||
' WHERE accountid=:accountid AND quest_id =:quest_id AND quest_type=:quest_type;',
|
|
||||||
array(
|
|
||||||
':account_id' => $account_id,
|
|
||||||
':quest_id' => $quest_id,
|
|
||||||
':quest_type' => $quest_type,
|
|
||||||
':quest_num' => $quest_num,
|
|
||||||
':quest_state' => $quest_state
|
|
||||||
));
|
|
||||||
if (!$ret) {
|
|
||||||
die();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$quest_state = 0;
|
|
||||||
if ($q['condition'] == 7 && $quest_type == 1) {
|
|
||||||
if($quest_num <= $q['value']) {
|
|
||||||
$quest_state = 1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ($quest_num >= $q['value']) {
|
|
||||||
$quest_num = $q['value'];
|
|
||||||
$quest_state = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$ret = $conn->execScript('INSERT INTO quest(accountid, quest_id, quest_num, quest_type, quest_state) ' .
|
|
||||||
' VALUES(:accountid, :quest_id, :quest_num, :quest_type, :quest_state);',
|
|
||||||
array(
|
|
||||||
':accountid' => $account_id,
|
|
||||||
':quest_id' => $quest_id,
|
|
||||||
':quest_num' => $quest_num,
|
|
||||||
':quest_type' => $quest_type,
|
|
||||||
':quest_state'=> $quest_state
|
|
||||||
));
|
|
||||||
if (!$ret) {
|
|
||||||
die();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function SubmitQuest()
|
public function SubmitQuest()
|
||||||
{
|
{
|
||||||
$accountid = $_REQUEST['accountid'];
|
$account_id = $_REQUEST['account_id'];
|
||||||
$quset_id = $_REQUEST['quest_id'];
|
$quest_id = $_REQUEST['quest_id'];
|
||||||
$quest_type = $_REQUEST['type'];
|
$quest_type = $_REQUEST['type'];
|
||||||
$conn = $this->getMysql($accountid);
|
$conn = $this->getMysql($account_id);
|
||||||
if (!$conn) {
|
if (!$conn) {
|
||||||
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
||||||
return;
|
return;
|
||||||
@ -317,9 +265,9 @@ class QuestController{
|
|||||||
phpcommon\sendError(ERR_USER_BASE + 2, '没有这个任务');
|
phpcommon\sendError(ERR_USER_BASE + 2, '没有这个任务');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$row = execQueryOne('SELECT * FROM quest WHERE accountid=:accountid AND quest_id=:quest_id AND quest_type=:quest_type;',
|
$row = $conn->execQueryOne('SELECT * FROM quest WHERE accountid=:accountid AND quest_id=:quest_id AND quest_type=:quest_type;',
|
||||||
array(
|
array(
|
||||||
':accountid' => $accountid,
|
':accountid' => $account_id,
|
||||||
':quest_id' => $quest_id,
|
':quest_id' => $quest_id,
|
||||||
':quest_type' => $quest_type
|
':quest_type' => $quest_type
|
||||||
));
|
));
|
||||||
@ -331,7 +279,7 @@ class QuestController{
|
|||||||
$ret = $conn->execScript('UPDATE quest SET quest_state=:quest_state ' .
|
$ret = $conn->execScript('UPDATE quest SET quest_state=:quest_state ' .
|
||||||
' WHERE accountid=:accountid AND quest_id =:quest_id AND quest_type=:quest_type;',
|
' WHERE accountid=:accountid AND quest_id =:quest_id AND quest_type=:quest_type;',
|
||||||
array(
|
array(
|
||||||
':account_id' => $account_id,
|
':accountid' => $account_id,
|
||||||
':quest_id' => $quest_id,
|
':quest_id' => $quest_id,
|
||||||
':quest_type' => $quest_type,
|
':quest_type' => $quest_type,
|
||||||
':quest_state' => 2
|
':quest_state' => 2
|
||||||
@ -341,49 +289,39 @@ class QuestController{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ($q['condition'] == 13) {
|
if ($q['condition'] == 13) {
|
||||||
$this->triggerQuest($quest_id, $quest_type, 1, $accountid);
|
$this->triggerQuest($quest_id, $quest_type, 1, $account_id);
|
||||||
}
|
}
|
||||||
//发奖励
|
//发奖励
|
||||||
|
|
||||||
|
if ($row['quest_type'] == 1) {
|
||||||
if ($row['type'] == 1) {
|
$active = $conn->execQueryOne('SELECT active_num, active_sum FROM active WHERE accountid=:accountid;',
|
||||||
$rows = execQuery('SELECT * FROM quest WHERE accountid=:accoutnid AND quest_type=:quest_type;',
|
|
||||||
array(
|
|
||||||
':accountid' => $account_id,
|
|
||||||
':quest_type' => 0
|
|
||||||
));
|
|
||||||
$active_num = execQuery('SELECT * FROM quest WHERE accountid=:accoutnid;',
|
|
||||||
array(
|
|
||||||
':accountid' => $account_id
|
|
||||||
));
|
|
||||||
$active_sum = execQuery('SELECT * FROM quest WHERE accountid=:accoutnid;',
|
|
||||||
array(
|
array(
|
||||||
':accountid' => $account_id
|
':accountid' => $account_id
|
||||||
));
|
));
|
||||||
//增加活跃度
|
//增加活跃度
|
||||||
if (!$rows) {
|
if (!$active) {
|
||||||
$this->insertActive($account_id);
|
$this->insertActive($account_id);
|
||||||
$ret = $conn->execScript('INSERT INTO quest(accountid, active_num, num_time) ' .
|
$ret = $conn->execScript('INSERT INTO active(accountid, active_num, num_time, active_sum, sum_time) ' .
|
||||||
' VALUES(:accountid, :active_num, :num_time);',
|
' VALUES(:accountid, :active_num, :num_time, :active_sum, :sum_time);',
|
||||||
array(
|
array(
|
||||||
':accountid' => $account_id,
|
':accountid' => $account_id,
|
||||||
':active_num' => $q['active_value'],
|
':active_num' => $q['active_value'],
|
||||||
':num_time' => time()
|
':num_time' => time(),
|
||||||
));
|
|
||||||
$ret = $conn->execScript('INSERT INTO quest(accountid, active_sum, sum_time) ' .
|
|
||||||
' VALUES(:accountid, :active_sum, :sum_time);',
|
|
||||||
array(
|
|
||||||
':accountid' => $account_id,
|
|
||||||
':active_sum' => $q['active_value'],
|
':active_sum' => $q['active_value'],
|
||||||
':sum_time' => time()
|
':sum_time' => time()
|
||||||
));
|
));
|
||||||
$active_num = $q['active_value'];
|
$this->updateActive($account_id, $q['active_value'], $q['active_value']);
|
||||||
$active_sum = $q['active_value'];
|
|
||||||
$this->updateActive($account_id, $active_num, $active_sum);
|
|
||||||
} else {
|
} else {
|
||||||
$active_num = $q['active_value'] + $active_num;
|
$active['active_num'] = $q['active_value'] + $active['active_num'];
|
||||||
$active_sum = $q['active_value'] + $active_sum;
|
$active['active_sum'] = $q['active_value'] + $active['active_sum'];
|
||||||
$this->updateActive($account_id, $active_num, $active_sum);
|
$ret = $conn->execScript('UPDATE active SET active_num=:active_num, active_sum=:active_sum ' .
|
||||||
|
' WHERE accountid=:accountid;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id,
|
||||||
|
':active_num' => $active['active_num'],
|
||||||
|
':active_sum' => $active['active_sum'],
|
||||||
|
));
|
||||||
|
$this->updateActive($account_id, $active['active_num'], $active['active_sum']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user