Добавление своего SQL'a в БД wow
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Добавление своего SQL'a в БД wow - 2008-12-19 23:39:25.593333
|
|
|
MuTaToR
Сообщений: 55
Оценки: 0
Присоединился: 2008-05-26 11:48:42.893333
|
Вообщем в Локальной сети есть сервер вова, я знаю 1 код который работает с базой,<?php
$CacheQ=array();$CurQ=array();
$CacheQCom=array();$CurQCom=array();
$CacheC=array();$CurC=array();
$CacheGO=array();$CurGO=array();
$CacheI=array();$CurI=array();
$CacheS=array();$CurS=array();
$CacheRel=array();$CurRel=array();
$CacheInv=array();$CurInv=array();
$CacheL=array();$CurL=array();
$CacheEx=array();$CurEx=array();
function Error($s){
global $mess,$buffer;
if(!$buffer){echo("<tr><td class=error>Ошибка: ".$s."</td></tr>");}
else {$mess.="<tr><td class=error>Ошибка: ".$s."</td></tr>";}
}
function Debug($s){
global $debug,$mess,$buffer;
if(!$buffer){if($debug){echo("<tr><td class=debug>DEBUG: ".$s."</td></tr>");}}
else {if($debug){$mess.="<tr><td class=debug>DEBUG: ".$s."</td></tr>";}}
}
function Warning($s){
global $mess,$showWarning,$buffer;
if(!$buffer){if ($showWarning){echo("<tr><td class=warning>Замечание: ".$s."</td></tr>");}}
else {if ($showWarning){$mess.="<tr><td class=warning>Замечание: ".$s."</td></tr>";}}
}
function Info($s){
global $mess,$buffer;
if(!$buffer){echo("<tr><td class=info>".$s."</td></tr>");}
else {$mess.="<tr><td class=info>".$s."</td></tr>";}
}
//***********************************
//Проверка квеста
//***********************************
function CheckQuest($entry){
global $CacheQ,$CurQ;
$Ok=true;
Info("Проверка квеста ".$entry.":");
//Если уже проверли, то пропуск
if (isset($CacheQ[$entry])){
if ($CacheQ[$entry]) {Info("Проверен ранее, статус - ОК");}
else {Error("Проверен ранее, статус - Обнаружена ошибка");}
return $CacheQ[$entry];
}
Info("<table>");
//Защита от зацикливания
if (isset($CurQ[$entry])){
Info("</table>");
Warning("Возможно зацикливание, отмена повторной проверки");
return true;
}
else {$CurQ[$entry]=1;}
//Проверка возможности взятия квеста
if (!CheckRelation($entry)){$Ok=false;}
//Проверка возможности завершения квеста
if (!CanCompleteQuest($entry)){$Ok=false;}
//Проверка возможности сдачи квеста
if (!CheckInvolved($entry)){$Ok=false;}
unset($CurQ[$entry]);
Info("</table>");
if ($Ok){Info("Квест работает");}
else {Error("Квест не работает");}
$CacheQ[$entry]=$Ok;
return $Ok;
}
//**********************************
//Проверка возможности взятия квеста
//**********************************
function CheckRelation($entry){
global $CacheRel,$CurRel;
Info("Проверка возможности взятия квеста (ID: ".$entry."):");
//Если ранее проверяли то пропускаем проверку
if (isset($CacheRel[$entry])){
if ($CacheRel[$entry]) {Info("Проверена ранее, статус - ОК");}
else {Error("Проверено ранее, статус - Обнаружена ошибка");}
return $CacheRel[$entry];
}
Info("<table>");
//Защита от зацикливания
if (isset($CurRel[$entry])){
Warning("Возможно зацикливание, отмена повторной проверки");
Info("</table>");
return true;
}
else {$CurRel[$entry]=1;}
$Ok=true;$notId=true;
//Проверка существования квеста
$result = mysql_query("SELECT * FROM quest_template WHERE entry=".$entry) or die("Не верный запрос: " . mysql_error());
$row=mysql_fetch_array($result);
mysql_free_result($result);
if ($row){
//Поиск в creature_questrelation
Debug("Поиск в creature_questrelation");
$result = mysql_query("SELECT * FROM creature_questrelation WHERE quest=".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
$notID=false;
Info("Квест (ID: ".$entry.") берется у моба (ID: ".$row['id'].")");
//Проверка моба
if (!CanFindCreature($row['id'],1)){$Ok=false;}
$result2 = mysql_query("SELECT * FROM creature_template WHERE entry=".$row['id']) or die("Не верный запрос: " . mysql_error());
if ($row2=mysql_fetch_array($result2)){
Debug("creature_template.npcflag = ".$row2['npcflag']);
//Проверка флага
if (!($row2['npcflag']&2)){$Ok=false;Error("У моба (ID: ".$row['id'].") не стоит флаг квестгивера(2)");}
}
else {$Ok=false;Error("Моб (ID: ".$row['id'].") отсутствует в таблице creature_template");}
mysql_free_result($result2);
}
mysql_free_result($result);
//------------------------------------------------
//Поиск в gameobject_questrelation
Debug("Поиск в gameobject_questrelation");
$result = mysql_query("SELECT * FROM gameobject_questrelation WHERE quest=".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
$notID=false;
Info("Квест (ID: ".$entry.") начинает ГО (ID: ".$row['id'].")");
//Проверка ГО
if (!CanFindGO($row['id'],1)){$Ok=false;}
$result2 = mysql_query("SELECT * FROM gameobject_template WHERE entry=".$row['id']) or die("Не верный запрос: " . mysql_error());
if ($row2=mysql_fetch_array($result2)){
Debug("Type = ".$row2['type']." Data1 = ".$row2['data1']);
//Проверка типа ГО и sound1
if ($row2['type']!=2){$Ok=false;Error("ГО (ID ".$row2['entry'].") имеет тип, отличный от квестгивера(2)");}
}
else {$Ok=false;Error("ГО (ID: ".$row['id'].") отсутствует в таблице gameobject_template");}
mysql_free_result($result2);
}
mysql_free_result($result);
//--------------------------------------------------
//Поиск в item_template
Debug("Поиск в item_template");
$result = mysql_query("SELECT * FROM item_template WHERE startquest=".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
$notID=false;
Info("Квест (ID: ".$entry.") начинает предмет ".$row['name']." (ID: ".$row['entry'].")");
Debug("Entry=".$row['entry']."; Flags=".$row['Flags']."; class=".$row['class'].")");
//Проверка класса и флагов
if (($row['class']!=12) and (!($row['Flags']&2048))){
Warning("Предмет ".$row['entry']." имеет класс отличный от Quest(12) или не установлен флаг Quests and keys(2048)");
}
//Проверка предмета
if (!CanTakeItem($row['entry'],1)){$Ok=false;}
}
mysql_free_result($result);
if ($notID){$Ok=false;Error("Не найдены данные о дающих квест");}
//----------------------------------------------------
//Проверка требований наличия или прохождения предыдущего квеста
if ($row['PrevQuestId']!=0){
Debug("PrevQuestID=".$row['PrevQuestId']);
if ($row['PrevQuestId']>0){
//Предыдущий квест должен быть завершен
Info("Чтобы взять квест (ID: ".$entry.") необходимо завершить квест (ID:".$row['PrevQuestId'].")");
if (!CheckQuest($row['PrevQuestId'])){$Ok=false;}
//Проверка эксклюзивной группы квеста
$result = mysql_query("SELECT ExclusiveGroup FROM quest_template WHERE entry=".$row['PrevQuestId']) or die("Не верный запрос: " . mysql_error());
$row2=mysql_fetch_array($result);
mysql_free_result($result);
//Если эксклюзивная группа меньше нуля, то необходимо пройти все квесты
if ($row2[0] && $row2[0]<0){
Debug("Проверка эксклюзивной группы квеста (ID:".$row['PrevQuestId']."); ExclusiveGroup=".$row2[0]);
Info("Чтобы взять квест (ID: ".$entry.") необходимо завершить все квесты из группы (ID:".-$row2[0].")");
$result = mysql_query("SELECT entry FROM quest_template WHERE ExclusiveGroup=".$row2[0]." and entry!=".$row['PrevQuestId']) or die("Не верный запрос: " . mysql_error());
while ($row3=mysql_fetch_array($result)){
Info("Чтобы взять квест (ID: ".$entry.") необходимо завершить квест (ID:".$row3[0]."), ExclusiveGroup = ".-$row2[0]);
if (!CheckQuest($row3[0])){$Ok=false;}
}
mysql_free_result($result);
}
}
else {
//Предыдущий квест должен быть активен
Info("Чтобы взять квест (ID: ".$entry.") необходимо начать квест (ID:".-$row['PrevQuestId'].")");
if (!CheckRelation(-$row['PrevQuestId'])){$Ok=false;}
//Проверка эксклюзивной группы квеста
$result = mysql_query("SELECT ExclusiveGroup FROM quest_template WHERE entry=".-$row['PrevQuestId']) or die("Не верный запрос: " . mysql_error());
$row2=mysql_fetch_array($result);
mysql_free_result($result);
//Если эксклюзивная группа меньше нуля, то необходимо взять все квесты
if ($row2[0] && $row2[0]<0){
Debug("Проверка эксклюзивной группы квеста (ID:".-$row['PrevQuestId']."), ExclusiveGroup=".$row2[0]);
$result = mysql_query("SELECT entry FROM quest_template WHERE ExclusiveGroup=".$row2[0]." and entry!=".-$row['PrevQuestId']) or die("Не верный запрос: " . mysql_error());
while ($row3=mysql_fetch_array($result)){
Info("Чтобы взять квест (ID: ".$entry.") необходимо начать квест (ID:".$row3[0]."), ExclusiveGroup = ".-$row2[0]);
if (!CheckRelation($row3[0])){$Ok=false;}
}
mysql_free_result($result);
}
}
}
//------------------------------------------------
//Проверка предыдущих квестов
$result = mysql_query("SELECT * FROM quest_template WHERE NextQuestId=".$entry." or NextQuestId=-".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
Debug("Проверка предыдущего квеста (ID:".$row['entry'].") c NextQuestId=".$entry);
if ($row['NextQuestId']>0){
//Предыдущий квест должен быть завершен
Info("Чтобы взять квест (ID: ".$entry.") необходимо завершить квест (ID:".$row['entry'].")");
if (!CheckQuest($row['entry'])){$Ok=false;}
//Проверка эксклюзивной группы квеста
//Если эксклюзивная группа меньше нуля, то необходимо пройти все квесты
if ($row['ExclusiveGroup']<0){
Debug("Проверка эксклюзивной группы квеста (ID:".$row['entry']."), ExclusiveGroup=".$row['ExclusiveGroup']);
$result2 = mysql_query("SELECT entry FROM quest_template WHERE ExclusiveGroup=".$row['ExclusiveGroup']." and entry!=".$row['entry']) or die("Не верный запрос: " . mysql_error());
while ($row2=mysql_fetch_array($result2)){
Info("Чтобы взять квест (ID: ".$entry.") необходимо завершить квест (ID:".$row2[0]."), ExclusiveGroup = ".-$row['ExclusiveGroup']);
if (!CheckQuest($row2[0])){$Ok=false;}
}
mysql_free_result($result2);
}
}
else {
//Предыдущий квест должен быть активен
Info("Чтобы взять квест (ID: ".$entry.") необходимо начать квест (ID:".$row['entry'].")");
if (!CheckRelation($row['entry'])){$Ok=false;}
//Проверка эксклюзивной группы квеста
//Если эксклюзивная группа меньше нуля, то необходимо пройти все квесты
if ($row['ExclusiveGroup']<0){
Debug("Проверка эксклюзивной группы квеста (ID:".$row['entry']."), ExclusiveGroup=".$row['ExclusiveGroup']);
$result2 = mysql_query("SELECT entry FROM quest_template WHERE ExclusiveGroup=".$row['ExclusiveGroup']." and entry!=".$row['entry']) or die("Не верный запрос: " . mysql_error());
while ($row2=mysql_fetch_array($result2)){
Info("Чтобы взять квест (ID: ".$entry.") необходимо начать квест (ID:".$row2[0]."), ExclusiveGroup = ".-$row['ExclusiveGroup']);
if (!CheckRelation($row2[0])){$Ok=false;}
}
mysql_free_result($result2);
}
}
}
mysql_free_result($result);
//------------------------------------------------
}
else {$Ok=false;Error("Квест (ID: ".$entry.") отсутствует в таблице quest_template");}
unset($CurRel[$entry]);
Info("</table>");
if ($Ok){Info("OK");}
$CacheRel[$entry]=$Ok;
return $Ok;
}
//**********************************
//Проверка возможности завершения квеста
//**********************************
function CanCompleteQuest($entry){
global $CacheQCom,$CurQCom;
Info("Проверка возможности завершения квеста (ID: ".$entry."):");
//Если ранее проверяли то пропускаем проверку
if (isset($CacheQCom[$entry])){
if ($CacheQCom[$entry]) {Info("Проверена ранее, статус - ОК");}
else {Error("Проверено ранее, статус - Обнаружена ошибка");}
return $CacheQCom[$entry];
}
Info("<table>");
//Защита от зацикливания
if (isset($CurQCom[$entry])){
Warning("Возможно зацикливание, отмена повторной проверки");
Info("</table>");
return true;
}
else {$CurQCom[$entry]=1;}
$Ok=true;$ToTalk=true;
$result = mysql_query("SELECT * FROM quest_template WHERE entry=".$entry) or die("Не верный запрос: " . mysql_error());
$row=mysql_fetch_array($result);
mysql_free_result($result);
if ($row){
//================================
//Автозавершенные квесты
if (!$row["Objectives"]) {
Info("Квест (ID: ".$entry.") - автозавершающийся квест");
unset($CurQCom[$entry]);
Info("</table>");
$CacheQCom[$entry]=true;
return true;
}
//================================
//Квест на доставку
//--------------------------------
for ($i=1;$i<5;$i++){
//Проверка требуемых предметов
if ($row["ReqItemId".$i]!=0){
$ToTalk=false;
Info("Для завершения квеста (ID: ".$entry.") необходимо добыть и принести предмет (ID: ".$row["ReqItemId".$i].") в количестве ".$row["ReqItemCount".$i]." шт.");
Debug("ReqItemID".$i." = ".$row["ReqItemId".$i]." ; ReqItemCount".$i." = ".$row["ReqItemCount".$i]);
//Rоличество требуемого предмета равно нулю
if ($row["ReqItemCount".$i]<=0){$Ok=false;Error("Количество требуемого предмета ".$row["ReqItemId".$i]." должно быть больше нуля, поле ReqItemCount".$i." ");}
//Проверка возможности добычи предмета
if (!CanTakeItem($row["ReqItemId".$i],$row["ReqItemCount".$i])){$Ok=false;}
}
}
//=================================
//Квест на убийство/использование или разговор
//---------------------------------
for ($i=1;$i<5;$i++){
//квест на использование ГО
if ($row["ReqCreatureOrGOId".$i]<0){
$ToTalk=false;
Info("Для завершения квеста (ID: ".$entry.") необходимо использовать ГО (ID: ".-$row["ReqCreatureOrGOId".$i].") ".$row["ReqCreatureOrGOCount".$i]." раз.");
Debug("ReqCreatureOrGOId".$i." = ".$row["ReqCreatureOrGOId".$i]." ; ReqCreatureOrGOCount".$i." = ".$row["ReqCreatureOrGOCount".$i]);
//количество кастов/разговоров должно быть больше нуля
if ($row["ReqCreatureOrGOCount".$i]<=0){$Ok=false;Error("Количество кастов/ипользования должно быть больше нуля, поле ReqCreatureOrGOCount".$i." ");}
//проверка наличия ГО
if (!CanFindGO(0-$row["ReqCreatureOrGOId".$i],$row["ReqCreatureOrGOCount".$i])){$Ok=false;}
//проверка типа ГО
if ($row["ReqSpellCast".$i]==0){
$result2 = mysql_query("SELECT * FROM gameobject_template WHERE entry=".-$row["ReqCreatureOrGOId".$i]) or die("Не верный запрос: " . mysql_error());
if ($row2=mysql_fetch_array($result2)){
Debug("type = ".$row2['type']." ; data1 = ".$row2['data1']);
if ($row2['type']!=10){$Ok=false;Error("ГО ".$row2['name']." (ID: ".-$row["ReqCreatureOrGOId".$i].") имеет не верный тип (отличный от GOOBER(10)), или отсутствует требование каста спелла у квеста (ID: ".$entry.")");}
else
if ($row2['data1']!=$entry){$Ok=false;Error("ГО ".$row2['name']." (ID: ".-$row["ReqCreatureOrGOId".$i].") имеет не верный номер квеста в поле data1; data1 = ".$row2['data1'].", а должно = ".$entry);}
}
mysql_free_result($result2);
}
}
else
//квест на убийство/разговор
if ($row["ReqCreatureOrGOId".$i]>0){
$ToTalk=false;
Info("Для завершения квеста (ID: ".$entry.") необходимо поговорить/убить моба (ID: ".$row["ReqCreatureOrGOId".$i].") ".$row["ReqCreatureOrGOCount".$i]." раз.");
Debug("ReqCreatureOrGOId".$i." = ".$row["ReqCreatureOrGOId".$i]." ; ReqCreatureOrGOCount".$i." = ".$row["ReqCreatureOrGOCount".$i]);
//количество кастов/разговоров должно быть больше нуля
if ($row["ReqCreatureOrGOCount".$i]<=0){$Ok=false;Error("Количество кастов должно быть больше нуля, поле ReqCreatureOrGOCount".$i." ");}
//проверка наличия моба
if (!CanFindCreature($row["ReqCreatureOrGOId".$i],$row["ReqCreatureOrGOCount".$i])){$Ok=false;}
}
}
//=================================
//Квест на каст спелла
//---------------------------------
for ($i=1;$i<5;$i++){
if ($row["ReqSpellCast".$i]>0){
$ToTalk=false;
Info("Для завершения квеста (ID: ".$entry.") необходимо скастовать спелл (ID: ".$row["ReqSpellCast".$i].") ".$row["ReqCreatureOrGOCount".$i]." раз.");
Debug("ReqSpellCast".$i." = ".$row["ReqSpellCast".$i]);
//проверка возможности каста
if (!CanCastSpell($row["ReqSpellCast".$i],$row["ReqCreatureOrGOCount".$i],$row["ReqCreatureOrGOId".$i])){$Ok=false;}
}
}
//=================================
//Квест на разведку
//---------------------------------
if ($row["SpecialFlags"]&2){
$ToTalk=false;
Info("Для завершения квеста (ID: ".$entry.") необходимо разведать территорию");
Debug("SpecialFlags = ".$row["SpecialFlags"]);
if (!CheckExplored($entry)){$Ok=false;};
}
if ($ToTalk){
Info("Для завершения квеста (ID: ".$entry.") необходимо просто сдать его");
}
//=================================
}
else {$Ok=false;Error("Квест (ID: ".$entry.") отсутствует в таблице quest_template");}
unset($CurQCom[$entry]);
Info("</table>");
if ($Ok){Info("OK");}
$CacheQCom[$entry]=$Ok;
return $Ok;
}
//***********************************
//Поиск мобов в мире
//***********************************
function CanFindCreature($entry,$count){
global $CacheC,$CurC;
Info("Поиск моба (ID: ".$entry."):");
//Если ранее проверяли то пропускаем проверку
if (isset($CacheC[$entry])){
if ($CacheC[$entry]){
if ($CacheC[$entry]>=$count){Info("Проверен ранее, статус - ОК");}
else {Warning("Проверен ранее, мобов (ID: ".$entry.") не достаточно для выполнения, необходимо ".$count.", а в мире ".$CacheC[$entry]);}
return $CacheC[$entry];
}
else {
Error("Проверен ранее, статус - Обнаружена ошибка");
return false;
}
}
Info("<table>");
//Защита от зацикливания
if (isset($CurC[$entry])){
Warning("Возможно зацикливание, отмена повторной проверки");
Info("</table>");
return true;
}
else {$CurC[$entry]=1;}
$Ok=true;
//Определение кол-ва расставленных мобов
$result = mysql_query("SELECT count(*) FROM creature WHERE id=".$entry) or die("Не верный запрос: " . mysql_error());
if ($row=mysql_fetch_array($result)){$c=$row[0];}
else {$c=0;}
Info("Количество мобов (ID: ".$entry.") в мире = ".$c);
mysql_free_result($result);
//Определение кол-ва заскриптованных в spell_scripts мобов
$result = mysql_query("SELECT Id FROM spell_scripts WHERE command=10 and datalong=".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
Info("Моб (ID: ".$entry.") спаунится скриптом при касте спелла (ID: ".$row[0].")");
$c+=CanCastSpell($row[0],$count,0);
}
mysql_free_result($result);
//Определение кол-ва заскриптованных в quest_start_scripts мобов
$result = mysql_query("SELECT id FROM quest_start_scripts WHERE command=10 and datalong=".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
Info("Моб (ID: ".$entry.") спаунится скриптом при взятии квеста (ID: ".$row[0].")");
$result2 = mysql_query("SELECT entry FROM quest_template WHERE StartScript=".$row[0]) or die("Не верный запрос: " . mysql_error());
// Проверка закрепления скрипта за квестом
if ($row2=mysql_fetch_array($result2)){
if (CheckQuest($row2[0])){$c++;}
}
else {Warning("Скприпт (ID: ".$row[0].") из quest_start_script не привязан ни к одному квесту.");}
while ($row2=mysql_fetch_array($result2)){
if (CheckRelation($row2[0])){$c++;}
}
mysql_free_result($result2);
}
mysql_free_result($result);
//Определение кол-ва заскриптованных в quest_end_scripts мобов
$result = mysql_query("SELECT id FROM quest_end_scripts WHERE command=10 and datalong=".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
Info("Моб (ID: ".$entry.") спаунится скриптом при окончании квеста (ID: ".$row[0].")");
$result2 = mysql_query("SELECT entry FROM quest_template WHERE CompleteScript=".$row[0]) or die("Не верный запрос: " . mysql_error());
// Проверка закрепления скрипта за квестом
if ($row2=mysql_fetch_array($result2)){
if (CheckQuest($row2[0])){$c++;}
}
else {Warning("Скприпт (ID: ".$row[0].") из quest_end_script не привязан ни к одному квесту.");}
while ($row2=mysql_fetch_array($result2)){
if (CheckQuest($row2[0])){$c++;}
}
mysql_free_result($result2);
}
mysql_free_result($result);
//Определение кол-ва заскриптованных в gameobject_scripts мобов
$result = mysql_query("SELECT id FROM gameobject_scripts WHERE command=10 and datalong=".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
Info("Моб (ID: ".$entry.") спаунится скриптом при использовании ГО кнопки (ID: ".$row[0].")");
$c+=CanFindGO($row[0],$count);
}
mysql_free_result($result);
//Определение кол-ва заскриптованных в event_scripts мобов
$result = mysql_query("SELECT id FROM event_scripts WHERE command=10 and datalong=".$entry) or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
Info("Моб (ID: ".$entry.") спаунится скриптом при запуске эвента (ID: ".$row[0].")");
//Определение типа эвента
$result2 = mysql_query("SELECT entry FROM gameobject_template WHERE (type=10 and data2=".$row[0].")or(type=3 and data6=".$row[0].")") or die("Не верный запрос: " . mysql_error());
while ($row2=mysql_fetch_array($result2)){
Info("Эвент (ID: ".$row[0].") запускается при использовании ГО ".$row2['name']." (ID: ".$row2[0].")");
$c+=CanFindGO($row2[0],$count);
}
mysql_free_result($result2);
$result2 = mysql_query("SELECT SpellName1, Id FROM spell_dbc WHERE (Effect1 in (61) and EffectMiscVal1=".$row[0].") or (Effect2 in (61) and EffectMiscVal2=".$row[0].") or (Effect3 in (61) and EffectMiscVal3=".$row[0].")") or die("Не верный запрос: " . mysql_error());
while ($row2=mysql_fetch_array($result2)){
Info("Эвент (ID: ".$row[0].") запускается при касте спелла ".$row2[0]." (ID: ".$row2[1].")");
$c+=CanCastSpell($row2[1],$count,0);
}
mysql_free_result($result2);
}
mysql_free_result($result);
//Поиск суммонищихся мобов в спеллах
// Спелл с эффектом 28 SPELL_EFFECT_SUMMON, 41 SPELL_EFFECT_SUMMON_WILD, 42 SPELL_EFFECT_SUMMON_GUARDIAN, 56 SPELL_EFFECT_SUMMON_PET, 73 SPELL_EFFECT_SUMMON_POSSESSED
// 87 SPELL_EFFECT_SUMMON_TOTEM_SLOT1, 88 SPELL_EFFECT_SUMMON_TOTEM_SLOT2, 89 SPELL_EFFECT_SUMMON_TOTEM_SLOT3, 90 SPELL_EFFECT_SUMMON_TOTEM_SLOT4, 97 SPELL_EFFECT_SUMMON_CRITTER
// 112 SPELL_EFFECT_SUMMON_DEMON
$result = mysql_query("SELECT SpellName1,Id FROM spell_dbc WHERE (Effect1 in (28,41,42,56,73,87,88,89,90,97,112) and EffectMiscVal1=".$entry.") or (Effect2 in (28,41,42,56,73,87,88,89,90,97,112) and EffectMiscVal2=".$entry.") or (Effect3 in (28,41,42,56,73,87,88,89,90,97,112) and EffectMiscVal3=".$entry.")") or die("Не верный запрос: " . mysql_error());
while ($row=mysql_fetch_array($result)){
Info("Моб (ID: ".$entry.") спаунится спеллом ".$row[0]." (ID: ".$row[1].")");
$c+=CanCastSpell($row[1],$count,0);
}
mysql_free_result($result);
//Оценка результатов
if ($c<$count){
if ($c==0){$Ok=false;Error("Мобов (ID: ".$entry.") не возможно найти ");}
else {Warning("Мобов (ID: ".$entry.") не достаточно для выполнения, необходимо ".$count.", а можно найти ".$c);}
}
unset($CurC[$entry]);
Info("</table>");
if ($Ok){Info("OK");};
$CacheC[$entry]=$c;
return $c;
}
//***********************************
//Поиск ГО в мире
//***********************************
function CanFindGO($entry,$count){
global $CacheGO,$CurGO;
Info("Проверка ГО (ID: ".$entry."):");
//Если ранее проверяли то пропускаем проверку
if (isset($CacheGO[$entry])){
if ($CacheGO[$entry]){
if ($CacheGO[$entry]>=$count){Info("Проверен ранее, статус - ОК");}
else {Warning("Проверен ранее, ГО (ID: ".$entry.") не достаточно для выполнения, необходимо ".$count.", а в мире ".$CacheGO[$entry]);}
return $CacheGO[$entry];
&n
|
|
|
RE: Добавление своего SQL'a в БД wow - 2008-12-20 02:36:41.373333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Сканируй сайт на уязвимости и ищи SQL-inj
|
|
|
RE: Добавление своего SQL'a в БД wow - 2008-12-20 02:52:48.780000
|
|
|
MuTaToR
Сообщений: 55
Оценки: 0
Присоединился: 2008-05-26 11:48:42.893333
|
А чем можно просканировать?Я очень сильно туплю. простите заранее….
|
|
|
RE: Добавление своего SQL'a в БД wow - 2008-12-20 03:02:51.280000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Xspider например
|
|
|
RE: Добавление своего SQL'a в БД wow - 2008-12-20 03:07:56
|
|
|
MuTaToR
Сообщений: 55
Оценки: 0
Присоединился: 2008-05-26 11:48:42.893333
|
Спс, вот какраз его нашол в гугле. а онлайн сканеров нету? это так для информации чтоб знать…
|
|
|
RE: Добавление своего SQL'a в БД wow - 2008-12-20 03:52:36.126666
|
|
|
MuTaToR
Сообщений: 55
Оценки: 0
Присоединился: 2008-05-26 11:48:42.893333
|
хэ, и что я в логе должен увидеть? чёт я не понимаю(((
|
|
|
RE: Добавление своего SQL'a в БД wow - 2008-12-20 12:32:57.926666
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
RTFM
|
|
|
RE: Добавление своего SQL'a в БД wow - 2008-12-30 19:38:18.390000
|
|
|
Angellock
Сообщений: 272
Оценки: 0
Присоединился: 2008-11-20 13:55:50.670000
|
quote:
хэ, и что я в логе должен увидеть? чёт я не понимаю((( А что по - твоему ты ожидаешь там увидеть?! Подарок в мешке от деда мороза? :D Ищи там найденные SQL-inj
|
|
|
|
|