Тема: CSWOWD (форк)
Показать сообщение отдельно
Старый 08.05.2010, 16:00   #59
Space77
Гость
 
Сообщений: n/a
По умолчанию

Для отображения активных квестов у персонажа
Код:
Index: show_char_quest.php
===================================================================
--- show_char_quest.php	(revision 26)
+++ show_char_quest.php	(working copy)
@@ -1,27 +1,38 @@
-<?php
-//==============================================================================
-// Скрипт предназначен для вывода квестов игрока
-//==============================================================================
-include_once("include/report_generator.php");
-
-function showPlayerQuests($guid, $char_data)
-{
-  global $lang;
-  // Показ активных квестов
-  echo "<TABLE class=report width=500><TBODY>";
-  echo "<TR><TD colspan=3 class=head>".$lang['player_active_quest']."</TD></TR>";
-  for ($i=0;$i<25;$i++)
-  {
-   $questId = $char_data[PLAYER_QUEST_LOG_1_1 + $i*4];
-   if ($questId AND $quest=getQuest($questId))
-   {
-    echo '<tr>';
-    echo '<td>';r_questLvl($quest); echo '</td>';
-    echo '<td class=left>';r_questName($quest); echo '</td>';
-    echo '<td class=left>';r_questReward($quest);echo '</td>';
-    echo '</tr>';
-   }
-  }
-  echo "</TBODY></TABLE>";
-}
-?>
\ No newline at end of file
+<?php
+//==============================================================================
+// Скрипт предназначен для вывода квестов игрока
+//==============================================================================
+include_once("include/report_generator.php");
+
+function getCharacterQueststatus($character_id)
+{
+  global $cDB;
+  return $cDB->select("-- CACHE: 1h
+  SELECT * FROM `character_queststatus` WHERE `guid` = ?d ORDER BY `quest`", $character_id);
+}
+
+function showPlayerQuests($guid, $char_data)
+{
+  global $lang;
+  $quests = getCharacterQueststatus($guid);
+  // Показ активных квестов
+  echo "<TABLE class=report width=500><TBODY>";
+  echo "<TR><TD colspan=3 class=head>".$lang['player_active_quest']."</TD></TR>";
+  
+  if ($quests)
+  foreach ($quests as $quest)
+  {
+   $questId = $quest['quest'];
+   if ($questId AND $questinfo=getQuest($questId) AND 
+	(($quest['status'] == 1 OR $quest['status'] == 3 OR $quest['status'] == 5) AND $quest['rewarded'] != 1))
+   {
+    echo '<tr>';
+    echo '<td>';r_questLvl($questinfo); echo '</td>';
+    echo '<td class=left>';r_questName($questinfo); echo '</td>';
+    echo '<td class=left>';r_questReward($questinfo);echo '</td>';
+    echo '</tr>';
+   }
+  }
+  echo "</TBODY></TABLE>";
+}
+?>
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
KiriX (08.05.2010), sven (09.05.2010)