do not save Quest status ?entered? repetitive
This commit is contained in:
parent
6ae130459f
commit
879364d8e2
1 changed files with 21 additions and 2 deletions
|
|
@ -179,7 +179,7 @@
|
||||||
*/
|
*/
|
||||||
public function setQuestEntered($questId, $characterId)
|
public function setQuestEntered($questId, $characterId)
|
||||||
{
|
{
|
||||||
$this->setQuestStatus($questId, $characterId, static::QUEST_STATUS_ENTERED);
|
$this->setQuestStatus($questId, $characterId, static::QUEST_STATUS_ENTERED, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -329,9 +329,28 @@
|
||||||
* @param int $questId ID of Quest to mark
|
* @param int $questId ID of Quest to mark
|
||||||
* @param int $characterId ID of Character to mark the Quest for
|
* @param int $characterId ID of Character to mark the Quest for
|
||||||
* @param int $status Quest status to mark
|
* @param int $status Quest status to mark
|
||||||
|
* @param boolean $repeated Insert although status is already set for this Quest and Character
|
||||||
*/
|
*/
|
||||||
private function setQuestStatus($questId, $characterId, $status)
|
private function setQuestStatus($questId, $characterId, $status, $repeated=true)
|
||||||
{
|
{
|
||||||
|
// Check if status is already set
|
||||||
|
if(!$repeated)
|
||||||
|
{
|
||||||
|
$count = $this->db->query(
|
||||||
|
'SELECT count(*) AS c '.
|
||||||
|
'FROM quests_characters '.
|
||||||
|
'WHERE quest_id = ? AND character_id = ? AND status = ?',
|
||||||
|
'iii',
|
||||||
|
$questId,
|
||||||
|
$characterId,
|
||||||
|
$status
|
||||||
|
);
|
||||||
|
if(!empty($count) && intval($count[0]['c']) > 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set status
|
||||||
$this->db->query(
|
$this->db->query(
|
||||||
'INSERT INTO quests_characters '.
|
'INSERT INTO quests_characters '.
|
||||||
'(quest_id, character_id, status) '.
|
'(quest_id, character_id, status) '.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue