Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   WWW (http://mangos.ytdb.ru/forumdisplay.php?f=23)
-   -   Zero honor script (http://mangos.ytdb.ru/showthread.php?t=3931)

BloodWarrior 20.03.2011 14:58

Zero honor script
 
Вот немного модернезировал под свои нужды,
Но возникла пара вопросов.

Есть желание прикрутить к рангам циферным - обозначение картинкой, классической той самой. Там на всех этих рядовых и сержантов.

Хотел узнать у старожил как привязать бы ид определенного ранга к картинке.

Проверка по номеру там или как?

Заранее извиняюсь за нубофермский вопрос но надеюсь кто сможет объяснить, банального примера или ссылки на место с документацией по вопросу достаточно.


------

Обновлен в рабочем варианте, всем спасибо за помощь.

Код:

<?php

$mysql_link = mysql_connect("localhost", "логин", "пароль") or die ("Could not connect.");
mysql_query("SET NAMES 'utf8'");
mysql_select_db("characters", $mysql_link) or die ("Unknown DB.");
define('honor_highest_rank', 1517); // for 2.4.3 use 1517, for 3.0.3 use 1602
?>

<html http-equiv="content-type" content="text/html;charset=utf-8">
<table align='center' border='0'>
<font face="Scurri">
<tr>
<td  width='125' align='center'> <b>Имя </b></td>
<td  width='125' align='center'> <b>Звание </b></td>
<td  width='125' align='center'> <b>Почетные<br>убийства</b></td>
</tr>
<?php

$pvpquery = mysql_query("SELECT `name`, `race`, `class`, `honor_highest_rank`, `stored_honorable_kills` FROM `characters`
WHERE CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`honor_highest_rank`, ' ', ".(KILLS+1)."), ' ', -1) AS UNSIGNED) >0
ORDER BY CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`honor_highest_rank`, ' ', ".(KILLS+1)."), ' ', -1) AS UNSIGNED) DESC LIMIT 5");
while($chardata = mysql_fetch_assoc($pvpquery)){

    echo "<tr><td align='center'>".$chardata["name"]."</td>";

    echo "<td align='center'><img src='images/".(($chardata["race"]%2)?"a":"h")."rank_".$chardata["honor_highest_rank"]."'></td>";

    echo "<td align='center'>".$chardata["stored_honorable_kills"]."</td></tr>";
}
?>
</font>
</table>


Shadez 20.03.2011 19:48

Код:

echo "<img src='images/rank_" . $chardata['honor_hightest_rank'] . ".gif'>";
rank_1.gif
rank_2.gif
...

BloodWarrior 21.03.2011 03:48

Спс огромное)
Но с основными тегами оно конечно все ясно))
Другое дело как сделать проверку вот в этом вся загвоздка, все таки мы получаем из базы числовое значение, и именно к полученным данным надо привязать автовыбор картинки.

BloodWarrior 21.03.2011 05:06

Попробовал задать:

Код:

$i1 = "<img src='images/rank_1.gif'>";
$i2 = "<img src='images/rank_2.gif'>";
$i3 = "<img src='images/rank_3.gif'>";
$i4 = "<img src='images/rank_4.gif'>";
$i5 = "<img src='images/rank_5.gif'>";
$i6 = "<img src='images/rank_6.gif'>";
$i7 = "<img src='images/rank_7.gif'>";
$i8 = "<img src='images/rank_8.gif'>";
$i9 = "<img src='images/rank_9.gif'>";
$i10 = "<img src='images/rank_10.gif'>";
$i11 = "<img src='images/rank_11.gif'>";
$i12 = "<img src='images/rank_12.gif'>";
$i13 = "<img src='images/rank_13.gif'>";
$i14 = "<img src='images/bullet.gif'>";

и вывести через условие:

Код:

  if($chardata["honor_highest_rank"] > 13) {
    echo "<td align='center'>".$i14."</td>";
  }

Первоначально вывелось корректно, в тестовой базе только 14 ранг, теперь думаю как сделать постую проверку и вывод этих и






попробовал задать через:

Код:

if($chardata["honor_highest_rank"] = 1)($a=$i1);
 elseif($chardata["honor_highest_rank"] = 2)($a=$i1);
 elseif($chardata["honor_highest_rank"] = 3)($a=$i2);
 elseif($chardata["honor_highest_rank"] = 4)($a=$i3);
 elseif($chardata["honor_highest_rank"] = 5)($a=$i4);
 elseif($chardata["honor_highest_rank"] = 6)($a=$i5);
 elseif($chardata["honor_highest_rank"] = 7)($a=$i6);
 elseif($chardata["honor_highest_rank"] = 8)($a=$i7);
 elseif($chardata["honor_highest_rank"] = 9)($a=$i8);
 elseif($chardata["honor_highest_rank"] = 10)($a=$i9);
 elseif($chardata["honor_highest_rank"] = 11)($a=$i10);
 elseif($chardata["honor_highest_rank"] = 12)($a=$i11);
 elseif($chardata["honor_highest_rank"] = 13)($a=$i12);
 elseif($chardata["honor_highest_rank"] > 13)($a=$i13);

    echo "<td align='center'>".$a."</td>";

однако в таком случае берется только первое значение - первый рисунок и присваивается всем остальным вне зависимости от ранга.









Так понял, $chardata["honor_highest_rank"] = 1 идет не проверка по числовому значению а true false кажись

нет, хм

SergiK_KilleR 21.03.2011 07:34

"=" в пхп означает присвоение переменной слева значение справа.
"==" - сравнение 2 значений игнорируя их тип, например:
PHP код:

$a '1'// строковое значение, string 
if($a == 1){
 
// true
}else{
 
//false


обработается блок true

"===" - сравнение 2 значений c проверкой на тип, например:
PHP код:

$a '0'// строковое значение, string
if($a === 0){
 
// true
}else{
 
//false - обработает этот участок, т.к. string !== int



BloodWarrior 21.03.2011 09:35

Спасибо большое.
Помогло.

Теперь возник более сложный вопрос, но не менее интересующий.

ПВП ранги

На вовхеде очень удобная страничка, ну вернее возвращенные ранги достаточно удобно нарисованы, с фоном для альянса и орды, собственно можно задать проверку на фракцию еще, теперь когда стало ясно как это делать, огромное спасибо SergiK_KilleR

Но данные иконки очив защищены, через js или еще как не суть важно.
Пробовал качать с помощью HTTrack и вебкопира, да и вообще по разному извращаться, не помогло.

Может кто подскажет какой хороший вариант на скачку?
Тулзу какую?

Или проще скринить и фотошопить на основе скрина?

Sid 21.03.2011 10:45

А чем тебя оригинальные не устраивают допустим с воввики?
http://www.wowwiki.com/Honor_system_(pre-2.0)

BloodWarrior 21.03.2011 11:04

Так они конечно крутые и съедобные, на первую пору их прикрутил пока не сделаю то, что хотел.

Те ранги что на вовхеде в виде иконок сделаны на заднем фоне подкрашены согласно цвету фракции.
Если добавить проверку на орда - альянс то можно и выводить разноцветный вариант рангов явно указывающий на фракцию.


Т-е чтобы ранги можно было по фракции с первого взгляда.
скрин
ПЫСЫ не радикалит чтот)

kBaTT 21.03.2011 14:28

рисуешь функцию,
определенное количество хонора или килов распределяешь по званиям, только не в виде текста, а картинку вставляешь.

если это то, что тебе нужно.

Unid 21.03.2011 17:32

Вложений: 1
не знаю, чем там защищены эти иконки, тулза - Google Chrome :)

BloodWarrior 21.03.2011 19:17

Пасиб)) Уже достал))

ПЫСЫ:
Незнаю насколько правильный пхп скрипт в плане написания получился.
Но он в принципе работает, причем срабатывает как надо.

Код:

<?php

$mysql_link = mysql_connect("localhost", "root", "root") or die ("Could not connect.");
mysql_query("SET NAMES 'utf8'");
mysql_select_db("characters", $mysql_link) or die ("Unknown DB.");
define('honor_highest_rank', 1517); // for 2.4.3 use 1517, for 3.0.3 use 1602
?>

<html http-equiv="content-type" content="text/html;charset=utf-8">
<table align='center' border='0'>
<font face="Scurri">
<tr>
<td  width='125' align='center'> <b>Имя </b></td>
<td  width='125' align='center'> <b>Звание </b></td>
<td  width='125' align='center'> <b>Почетные<br>убийства</b></td>
</tr>
<?php

$pvpquery = mysql_query("SELECT `name`, `race`, `class`, `honor_highest_rank`, `stored_honorable_kills` FROM `characters`
WHERE CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`honor_highest_rank`, ' ', ".(KILLS+1)."), ' ', -1) AS UNSIGNED) >0
ORDER BY CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`honor_highest_rank`, ' ', ".(KILLS+1)."), ' ', -1) AS UNSIGNED) DESC LIMIT 5");
while($chardata = mysql_fetch_assoc($pvpquery)){

    echo "<tr><td align='center'>".$chardata["name"]."</td>";

echo "<td align='center'>";
if ($chardata["honor_highest_rank"] == 1 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_1'>";
if ($chardata["honor_highest_rank"] == 1 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_1'>";
if ($chardata["honor_highest_rank"] == 2 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_2'>";
if ($chardata["honor_highest_rank"] == 2 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_2'>";
if ($chardata["honor_highest_rank"] == 3 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_3'>";
if ($chardata["honor_highest_rank"] == 3 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_3'>";
if ($chardata["honor_highest_rank"] == 4 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_4'>";
if ($chardata["honor_highest_rank"] == 4 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_4'>";
if ($chardata["honor_highest_rank"] == 5 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_5'>";
if ($chardata["honor_highest_rank"] == 5 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_5'>";
if ($chardata["honor_highest_rank"] == 6 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_6'>";
if ($chardata["honor_highest_rank"] == 6 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_6'>";
if ($chardata["honor_highest_rank"] == 7 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_7'>";
if ($chardata["honor_highest_rank"] == 7 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_7'>";
if ($chardata["honor_highest_rank"] == 8 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_8'>";
if ($chardata["honor_highest_rank"] == 8 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_8'>";
if ($chardata["honor_highest_rank"] == 9 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_9'>";
if ($chardata["honor_highest_rank"] == 9 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_9'>";
if ($chardata["honor_highest_rank"] == 10 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_10'>";
if ($chardata["honor_highest_rank"] == 10 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_10'>";
if ($chardata["honor_highest_rank"] == 11 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_11'>";
if ($chardata["honor_highest_rank"] == 11 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_11'>";
if ($chardata["honor_highest_rank"] == 12 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_12'>";
if ($chardata["honor_highest_rank"] == 12 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_12'>";
if ($chardata["honor_highest_rank"] == 13 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_13'>";
if ($chardata["honor_highest_rank"] == 13 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_13'>";
if ($chardata["honor_highest_rank"] > 13 and $chardata["race"] == 1 || $chardata["race"] == 3 || $chardata["race"] == 5 || $chardata["race"] == 7) echo "<img src='images/arank_14'>";
if ($chardata["honor_highest_rank"] > 13 and $chardata["race"] == 2 || $chardata["race"] == 4 || $chardata["race"] == 6 || $chardata["race"] == 8) echo "<img src='images/hrank_14'>";
echo "</td>";



    echo "<td align='center'>".$chardata["stored_honorable_kills"]."</td></tr>";
}
?>
</font>
</table>


21.03.2011 19:39


индусы смотрят и завидуют тебе
Код:

echo "<img src='images/".(($chardata["race"]%2)?"h":"a")."rank_".$chardata["honor_highest_rank"]."'>";

BloodWarrior 21.03.2011 20:05

Спасибо))
Может пора заняться йогой?)

В прочем между киокушином и ицюанем ее уже не вклинить) если только на воскресенье))

С другой стороны всегда есть к чему стремиться)

tempura 21.03.2011 22:27

Цитата:

Сообщение от BloodWarrior (Сообщение 20181)
Но данные иконки очив защищены, через js или еще как не суть важно.
Пробовал качать с помощью HTTrack и вебкопира, да и вообще по разному извращаться, не помогло.

Может кто подскажет какой хороший вариант на скачку?
Тулзу какую?

Картинки просто стоят бекграундом. :) :) :)
Тулза - руки. :) По памяти:
Открыть код, посмотреть каким стилем задается иконка.
Открыть css, посмотреть откуда берется картинка.
Перекачать по очереди два десятка картинок. :)
Если этот алгоритм не прокатывает - изыскать свой, он окажется не сложнее. :)

Цитата:

Сообщение от BloodWarrior (Сообщение 20203)
Может пора заняться йогой?)

В прочем между киокушином и ицюанем ее уже не вклинить) если только на воскресенье))

А-а-а-а-а!!!!! Китаист-ипонист!!! Катаной разрубат большой железный шпал, головой гнет рельс! :) :)
Цитата:

Сообщение от BloodWarrior (Сообщение 20203)
С другой стороны всегда есть к чему стремиться)

Ага, например - забить на китаизм-ипонизм, и завести себе нормальный доспех 15-16 века. :) Два-три бугурта "очко" (21х21) или десяток 5х5 - и сразу такое просветление наступает!!! Особенно когда откачают, и сидишь рихтуешь бацинет после молодецкого удара идиотской алебардой. :) :) :) :)

BloodWarrior 22.03.2011 04:42



Текущее время: 15:05. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS