Назад

База Знаний

Автор: vixa2012: Дата: 03.22.2011

Много людишек мечтает о своей базе данных но украсть или сделать её ума не всем хватит я скачать не нашол не где для базы набор картинок мобов петов и итемов поэтому сидел и дёргал все картинки с сайта
Люди дайте скрипт чтобы прикрепить эти все картинки к сайту чтобы все было как тут а то я по 1 сылке создавать всю жизнь буду))) а я выложу все картинки которые скачал
Голова ваще не варит весь день картинки итемов петов и мобов по 1 скачивал)))

Автор: vixa2012: Дата: 03.22.2011

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

Автор: Renegade: Дата: 03.23.2011

посмотри как база организована в flux.cp

там можно отдельно и кратинки кчнуть одним паком.

Автор: vixa2012: Дата: 03.23.2011

ок я посмотрю а у кого есть скрипт то скиньте серавно

Автор: Kill Spirit: Дата: 03.23.2011

Ах тыж наш "умелец" по еа, делаешь всё быстро и качественно?

www.google.ru

Автор: vixa2012: Дата: 03.23.2011

Я в еа нормально разбираюсь а на сайтах ток учусь и вот что ужэ сделал
мой сайт
http://s56.radikal.ru/i154/1103/24/4a8866b005b5.jpg

Автор: Kill Spirit: Дата: 03.23.2011

Спасибо, поржал :lol:

Автор: Cole McCormick: Дата: 03.23.2011

Цитата Kill Spirit;36419:
Спасибо, поржал :lol:


Над чем? мне лично нравица, ахренеть как нравиться.

vixa2012 - сделай фон у менюшки белый, литым блоком, с неровной окантовкой, ну чтоб из блока чтонибуть выперало, ну ты понял? типа трафки или деревца, ну ченить такое необычное. и кнопки вход и регистрация, перерисуй ато стремненькие ;) У новостей голубой фон не курит совсем. Белый с границей больше подойдет, и тоже с бока чтонибуть такое необычное, ну то меня понимаешь^_^ Ну и эффектную надпись в шапке.

Добро пожаловать! Добро пожаловать на игровой сервер Ragnarok Online!
Сами Вы его выбрали или его выбрали за Вас - это лучший сервер из оставшихся.
Я горжусь тем, что называю этот сервер своим домом. Итак, собираетесь ли вы остаться здесь, или же вас ждут неизвестные дали, добро пожаловать в "ваше название сервера".

Автор: [OneLife]: Дата: 03.23.2011

Цитата vixa2012;36416]Я в еа нормально разбираюсь а на сайтах ток учусь и вот что ужэ сделал
мой сайт
[url]http://s56.radikal.ru/i154/1103/24/4a8866b005b5.jpg[/url:


Видел этот сайт на одном из проектов, не уверен что ты сам его сделал. Возможно только модули и фон твое, а в остальном сомневаюсь что сделал сам.

Автор: vixa2012: Дата: 03.23.2011

Картинки сайта и фон я копирнул у сайта другого а скрипты все мои сижу сам по тихоньку разбираюсь и пишу я хедер другой поставил как у сайта с которого я взял все это а вот собственно и тот сайт http://irronline.ru/ и мой http://s006.radikal.ru/i215/1103/33/8bc9be938fff.jpg
Я можно сказать копирнул сайт но я не скрываю этого и по началу надо научиться сразу копировать сайты а потом ужэ можно учиться самому создавать
Я в Cerest CP посмотрю если получится то прикреплю базу от этой панельки но если у кого-то есть скрипт базы данных то киньте я картинки всех мобов петов и итемов выложу

Автор: [OneLife]: Дата: 03.23.2011

Что тут учиться то, ctrl+s и готово, докачал картинки которых не хватает и все

Автор: vixa2012: Дата: 03.23.2011

ну да скопируй 10000 сылочек я на тебя посотрю))) в базе данных я картинки качал чуть умом не тронулся а тут еще и сылки хахаха + направления свои менять надо будет убирать все что связано с сайтом irronline.ru и менять на все что связано с моим)) короч гиморой мне кажется что есть способ по проще базу зделать я его и ищу))

Автор: Tori: Дата: 03.23.2011

Сайт этот много где видел :) Нормал :)
KillSpirit, ты ошибка природы

Автор: vixa2012: Дата: 03.24.2011

Так а что в Cerest Control Panel брать, там только блокноты item_db, castles, jobs, а самого скрипта для сайта нету, чтобы база данных появилась, топ 100 зени не работает, топ 100 персонажей не работает, только регистрация работает, онлайн показует, можно слот чара поменять, сбросить шмотки, позицию, короч одна фигня, дайте нормальную базу, где есть пхп код для создания базы данных, где работают топ 100 гильдий персов зени и т.д. Заранее всем благодарен

Автор: vixa2012: Дата: 03.24.2011

Нашол набор скриптов от розы, там и база мобов итемов и т.д и топы,помогите сделать этот хлам рабочим, чтобы база топы все работали на 100%

Автор: Tori: Дата: 03.24.2011

ппц
Ты же создавал топик что можешь помочь во всем -_-

Автор: vixa2012: Дата: 03.25.2011

БЛИН ВЫ ДОСТАЛИ!!! У МЕНЯ ЧТО В ТОПИКЕ НАПИСАНО ПОМОГУ СОЗДАТЬ САЙТ?
Я РАЗБИРАЮСЬ ТОЛЬКО В ЕА И КЛИЕНТЕ!!! Я В ЖИЗНИ НЕ РАБОТАЛ С PHP И HTML СКРИПТАМИ

Автор: Kill Spirit: Дата: 03.25.2011

[FONT="Comic Sans MS"]Такой вот вопрос по еА.[/FONT] (раз ты всё знаешь в ней)
"Как задать цикл в еАthena?"

Автор: Renegade: Дата: 03.25.2011

if > then > else > until? )))))))))

Автор: Swizz: Дата: 03.25.2011

Дима - не умничай, ренегад за тебя уже вопрос переформулировал=)))

Автор: vixa2012: Дата: 03.25.2011

Мда ты типо хочеш что-то кому-то показать доказать, вместо того чтобы помоч с базой.
А цыклы это параметры которыме мы задаем set if else и еще много.
Я, вообще-то открыл тему не по ЕА, а по базе данных к сайту, КИЛ СПИРИТ Не хочеш помогать, не надо, другие помогут, я не обязан перед тобой отчитываться это 1, а во вторых люди, которые делают у меня заказы, не жалуются, я может по времени скрипты как ты или номн пишу медленее, но не боюсь переделывать если чтото не устраюет людей, может где-то, что-то не помню0 но со временем вспоминаю или додупляю

Автор: vixa2012: Дата: 03.28.2011

Вот скрипты взятые с розы не доделанные естественно
Может найдеться Пхп умелец который утрет нам носы и сделает эти скрипты рабочими

create_arrow.php


$config['db_server']="localhost"; // IP или DNS адрес сервера с mysql сервером
$config['db_user']="root"; // Логин пользователя БД
$config['db_password']="vertrigo"; // Пароль пользователя БД

$config['ro_db']="ragnarok"; // База РО сервера
$config['log_db']="ragnarok"; // База логов
$config['ros_db']="rose";

include('./const.php');

// Отображает таблицу - из чего, какие стрелы получаются
$create_arrows=GetAll("SELECT * FROM ".$config['ro_db'].".create_arrow_db ORDER BY `SourceID`");

$items=array();
$arrays=array();
$creation=array();
foreach($create_arrows as $value){
$items[]=$value['SourceID'];
$arr=array();
if($value['MakeID1']!=0){$arrows[$value['MakeID1']]=true;$arr[]=array('arrow'=>$value['MakeID1'],'num'=>$value['MakeNum1']);}
if($value['MakeID2']!=0){$arrows[$value['MakeID2']]=true;$arr[]=array('arrow'=>$value['MakeID2'],'num'=>$value['MakeNum2']);}
if($value['MakeID3']!=0){$arrows[$value['MakeID3']]=true;$arr[]=array('arrow'=>$value['MakeID3'],'num'=>$value['MakeNum3']);}
if($value['MakeID4']!=0){$arrows[$value['MakeID4']]=true;$arr[]=array('arrow'=>$value['MakeID4'],'num'=>$value['MakeNum4']);}
if($value['MakeID5']!=0){$arrows[$value['MakeID5']]=true;$arr[]=array('arrow'=>$value['MakeID5'],'num'=>$value['MakeNum5']);}
$creation[$value['SourceID']]=$arr;
}


// Получим все предметы....
$add_where="";
for($n=0;$n if($add_where!=''){
$add_where.=" OR ";
}
$add_where.="`id`='".$items[$n]."'";
}
// и все стрелы
foreach($arrows as $key=>$value){
$add_where.=" OR `id`='".$key."'";
}
$query="SELECT id, name_japanese, type, slots FROM ".$config['ro_db'].".item_db WHERE ".$add_where;

$tmp=GetAll($query);

$item=array();
foreach($tmp as $value){
$item[$value['id']]=$value;
if(is_file($config['document_root'].'/img/item/small/'.$value['id'].'.gif')){
$item[$value['id']]['image']=true;
}else{
$item[$value['id']]['image']=false;
}
}

$smarty->assign('item',$item);
$smarty->assign('creation',$creation);
$smarty->assign('_ITEMS_TYPE',$_ITEMS_TYPE);

// Для подсветки верхнего меню и отрисовки левого
$smarty->assign('_TITLE','Изготовление стрел');
$smarty->assign("page_content","base/create_arrow.html");
$smarty->assign('_SUBMENU','menu_base.html');

?>


item_search.php

$config['db_server']="localhost"; // IP или DNS адрес сервера с mysql сервером
$config['db_user']="root"; // Логин пользователя БД
$config['db_password']="vertrigo"; // Пароль пользователя БД

$config['ro_db']="ragnarok"; // База РО сервера
$config['log_db']="ragnarok"; // База логов
$config['ros_db']="rose";

require_once('./const.php');

// для пагинации
$mobs_in_page=30;
$_page_shown=7;

require_once('./pager.php');

s_start();


// битмапы для профессий
$smarty->assign("_ITEMS_JOB_BITMAP",$_ITEMS_JOB_BITMAP);

if(isset($_POST['filter'])){
$_SESSION['filter']=$_POST['filter'];
}
if(isset($_SESSION['filter']) && $_SESSION['filter']['mod_name']!='item_search'){
unset($_SESSION['filter']);
echo('неверный фильтр');
}elseif(isset($_SESSION['filter'])){
$_F=$_SESSION['filter'];
}else{
echo('условия не сработали');
}



// построим sql запрос и проверим на ошибки ввода
$where="1";

if($_F['name']!='') $where.=" AND `iName` LIKE '%".$_F['name']."%'";
// if($_F['bexp1']!=''){$_F['bexp1']=(int)$_F['bexp1']; $where.=" AND `EXP` >= '".$_F['bexp1']."'";}
// if($_F['bexp2']!=''){$_F['bexp2']=(int)$_F['bexp2']; $where.=" AND `EXP` <= '".$_F['bexp2']."'";}
// if($_F['jexp1']!=''){$_F['jexp1']=(int)$_F['jexp1']; $where.=" AND `JEXP` >= '".$_F['jexp1']."'";}
// if($_F['jexp2']!=''){$_F['jexp2']=(int)$_F['jexp2']; $where.=" AND `JEXP` <= '".$_F['jexp2']."'";}
// if($_F['lvl1']!=''){$_F['lvl1']=(int)$_F['lvl1']; $where.=" AND `LV` >= '".$_F['lvl1']."'";}
// if($_F['lvl2']!=''){$_F['lvl2']=(int)$_F['lvl2']; $where.=" AND `LV` <= '".$_F['lvl2']."'";}
if($_F['class']!=''){
$where.="";
echo "обраьотать класс итема
\n";
}
if($_F['type']!=''){
$where.="";
}

if( $where!="1") { // чего то ваыбрали.

if($_F['order']!=''){
switch($_F['order']){
case "name": $where.=' ORDER BY `iName` ASC'; break;
case "bExp": $where.=' ORDER BY `EXP` ASC'; break;
case "jExp": $where.=' ORDER BY `JEXP` ASC'; break;
case "level": $where.=' ORDER BY `LV` ASC'; break;
default: break;
}
}

$_SESSION['filter']=$_F;
$smarty->assign('_F',$_F);

$query="SELECT count(*) as cnt FROM ".$config['ro_db'].".mob_db WHERE ".$where;
$tmp=GetAll($query);

if($tmp[0]['cnt']>0){ // найдено по запросу

$nav=pager($tmp[0]['cnt'],$mobs_in_page,$_CURRENT_PAGE,$_page_shown);
$query="SELECT * FROM ".$config['ro_db'].".mob_db WHERE ".$where." LIMIT ".$nav['begin_show'].",".$mobs_in_page;
$mobs=GetAll($query);
foreach($mobs as $key=>$mob){
$mobs[$key]['mode_list']=get_mob_mode($mob['Mode'],$_MOB_MODE);
}
$smarty->assign("mobs",$mobs);
$smarty->assign('nav',$nav);


}else{ // ничего не нашли
$smarty->assign('_NO_SEARCHED',true);
}

}


// $smarty->assign('_RACES',$_RACES);
$smarty->assign('_ELEMENTS',$_ELEMENTS);
$smarty->assign('_TITLE','Поиск предметов');
$smarty->assign('page_content','base/item_search.html');
$smarty->assign('_SUBMENU','menu_base.html');
?>


items.php

// показывает информацию о предметах.

$config['db_server']="localhost"; // IP или DNS адрес сервера с mysql сервером
$config['db_user']="root"; // Логин пользователя БД
$config['db_password']="vertrigo"; // Пароль пользователя БД

$config['ro_db']="ragnarok"; // База РО сервера
$config['log_db']="ragnarok"; // База логов
$config['ros_db']="rose";

require_once('./const.php');

// возьмем параметр строки (если есть) и определим, что за предметы
// будет отображать...
$add_where="";
if(isset($_PARAMS[1])){ // Поищем тип предмета

foreach($_ITEMS_TYPE as $key=>$value){

if($value==$_PARAMS[1]){
if($add_where==""){
$add_where="WHERE `type`='".$key."' ";
}else{
$add_where.="OR `type`='".$key."' ";
}
$smarty->assign('subsection',$value);
}
}

}

// получим список предметов
$items=GetAll("SELECT id, name_english, name_japanese as name, type, slots FROM ".$config['ro_db'].".item_db ".$add_where."ORDER BY `name_japanese`");
$smarty->assign("items",$items);

// проверим на отображение конкретного элемента

if(isset($_PARAMS[1]) && $_PARAMS[1]=='detail'){
$detail_item=(int)$_PARAMS[2];
}
if(isset($_PARAMS[2]) && $_PARAMS[2]=='detail'){
$detail_item=(int)$_PARAMS[3];
}

if(isset($detail_item)){
// получим предмет
$item=GetAll("SELECT item_db.id, item_db.name_japanese, item_db.type, item_db.equip_genders, item_db.attack, item_db.defence, item_db.price_buy, item_db.price_sell, item_db.weight, item_db.weapon_level, item_db.equip_level, ros_item_desc.desc FROM ".$config['ro_db'].".item_db LEFT JOIN ".$config['ros_db'].".ros_item_desc ON item_db.id=ros_item_desc.id WHERE item_db.id='".$detail_item."'");

if(count($item)){ // если нет ошибки, значит получили предмет

$item=$item[0];
if(is_file($config['document_root'].'/img/item/big/'.$item['id'].'.gif')){
$item['image']=true;
}else{
$item['image']=false;
}
// получим магазины
$shops=GetAll("SELECT ros_npc.map_name, ros_npc.name, ros_npc.x, ros_npc.y FROM ".$config['ros_db'].".ros_npc LEFT JOIN ".$config['ros_db'].".ros_shop_item ON ros_shop_item.shopnpc_id=ros_npc.id WHERE ros_shop_item.item_id='".$detail_item."'");
$smarty->assign('shops',$shops);

if($config['debug']) var_dump($item);

$item['desc']=preg_replace("/\^([0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f])/i","",$item['desc']);
$smarty->assign("item",$item);
$smarty->assign('current_item',$detail_item);
// если это стрелы, то получи - из чего их можно сделать
if($item['type']==10){
// получим все записи из таблицы изготовления стрел в которых присутствуют данные стрелы...
$tmp=GetAll("SELECT * FROM ".$config['ro_db'].".create_arrow_db WHERE `MakeID1`='".$item['id']."' OR `MakeID2`='".$item['id']."' OR `MakeID3`='".$item['id']."' OR `MakeID4`='".$item['id']."' OR `MakeID5`='".$item['id']."'");
$craft_count=array(); // тут будут данные о изготовлении стрел
$where='';
foreach($tmp as $value){
$count=0; // кол-во стрел.
if($value['MakeID1']==$item['id'])$count=$value['MakeNum1'];
if($value['MakeID2']==$item['id'])$count=$value['MakeNum2'];
if($value['MakeID3']==$item['id'])$count=$value['MakeNum3'];
if($value['MakeID4']==$item['id'])$count=$value['MakeNum4'];
if($value['MakeID5']==$item['id'])$count=$value['MakeNum5'];
if($count!=0){ // если стрелы делаются (теоретически всегда должно срабатывать)
$craft_count[$value['SourceID']]=$count;
}
if($where!=''){
$where.=" OR `id`='".$value['SourceID']."'";
}else{
$where.=" `id`='".$value['SourceID']."'";
}
}
// нужно получить имена и тип предметов из которых делаются стрелы
$craft_items=array();
if($where!=''){ // есть предметы из которых делать стрелы можно.
$craft_items=GetAll("SELECT id, type, name_japanese as name FROM ".$config['ro_db'].".item_db WHERE".$where." ORDER BY name_japanese ASC");
}
foreach($craft_items as $key=>$value){
$craft_items[$key]['count']=$craft_count[$value['id']];
if(is_file($config['document_root'].'/img/item/small/'.$item['id'].'.gif')){
$craft_items[$key]['image']=true;
}else{
$craft_items[$key]['image']=false;
}
}

$smarty->assign('craft_items',$craft_items);
$smarty->assign('_ITEMS_TYPE',$_ITEMS_TYPE);
}

// получим всех монстров из которых выпадает и процент выпадения
$where='';
$select=' ID as id, iName as name';
$items=array();
for($n=1;$n<=9;$n++){
if($where!=''){
$where.=' OR';
}
$where.=' Drop'.$n.'id='.$item['id'];
$select.=', Drop'.$n.'id, Drop'.$n.'per';
}
$where.=' OR DropCardid='.$item['id'];
$select.=', DropCardid, DropCardper';

$mobs=GetAll("SELECT ".$select." FROM ".$config['ro_db'].".mob_db WHERE".$where.' ORDER BY iName');

$item_mob=array();

foreach($mobs as $key=>$value){
$dr_per=0;
for($n=1;$n<=9;$n++){ // переберем обычные предметы
if($value['Drop'.$n.'id']==$item['id']){ // нашли у моба наш предмет
if($value['Drop'.$n.'per']!=0 || $config['drop_rate0item']){ // проверим на 0 дроп
// установи процент от дропрейта из конфига
$dr_per=((int)$value['Drop'.$n.'per'])/100; // 100%
//$dr_per*=$config['roserver']['drop_rate'];
// var_dump($item);
if($item['type']==0) $dr_per*=$config['roserver']['drop_heal_rate'];
elseif($item['type']==2 || $item['type']==11) $dr_per*=$config['roserver']['drop_use_rate'];
elseif($item['type']==3 || $item['type']==10) $dr_per*=$config['roserver']['drop_ect_rate'];
elseif($item['type']==4 || $item['type']==5 || $item['type']==8) $dr_per*=$config['roserver']['drop_equip_rate'];
if($dr_per>100) $dr_per=100;

$item_mob[]=array('name'=>$value['name'],'id'=>$value['id'],'per'=>$dr_per);
break;
}
}
}
// проверим карты
if($value['DropCardid']==$item['id']){
if($value['DropCardper']!=0 || $config['drop_rate0item']){

// установи процент от дропрейта из конфига
$dr_per=((int)$value['DropCardper'])/100; // 100%
$dr_per*=$config['roserver']['drop_card_rate'];
if($dr_per>100) $dr_per=100;

$item_mob[]=array('name'=>$value['name'],'id'=>$value['id'],'per'=>$dr_per);
}
}
}

if(count($item_mob)){
$smarty->assign('item_mob',$item_mob);
}
}
}


$smarty->assign('_TITLE','База предметов');
$smarty->assign('page_content','base/items.html');
$smarty->assign('_SUBMENU','menu_base.html');
?>


mob_search.php

$config['db_server']="localhost"; // IP или DNS адрес сервера с mysql сервером
$config['db_user']="root"; // Логин пользователя БД
$config['db_password']="vertrigo"; // Пароль пользователя БД

$config['ro_db']="ragnarok"; // База РО сервера
$config['log_db']="ragnarok"; // База логов
$config['ros_db']="rose";

require_once('./const.php');

// для пагинации
$mobs_in_page=30;
$_page_shown=7;

require_once('./pager.php');

s_start();

// Функция для получения статистик монстра (лутер/агрессиыняй и т.д.)

function get_mob_mode($mode,$mob_params){

$num=count($mob_params);
$mode_list=array();

foreach($mob_params as $shift=>$value){
$mode_list[$mob_params[$shift]]=$mode>>$shift&1;
}
return $mode_list;
}

// установим рейты на опыт мобов...
$smarty->assign('bexp_rate',$config['roserver']['base_exp_rate']);
$smarty->assign('jexp_rate',$config['roserver']['job_exp_rate']);



if(isset($_POST['filter'])){
$_SESSION['filter']=$_POST['filter'];
}
if(isset($_SESSION['filter']) && $_SESSION['filter']['mod_name']!='mob_search'){
unset($_SESSION['filter']);
echo('неверный фильтр');
}elseif(isset($_SESSION['filter'])){
$_F=$_SESSION['filter'];
}else{
echo('условия не сработали');
}



// построим sql запрос и проверим на ошибки ввода
$where="1";

if($_F['name']!='') $where.=" AND `iName` LIKE '%".$_F['name']."%'";
if($_F['bexp1']!=''){$_F['bexp1']=(int)$_F['bexp1']; $where.=" AND `EXP` >= '".$_F['bexp1']."'";}
if($_F['bexp2']!=''){$_F['bexp2']=(int)$_F['bexp2']; $where.=" AND `EXP` <= '".$_F['bexp2']."'";}
if($_F['jexp1']!=''){$_F['jexp1']=(int)$_F['jexp1']; $where.=" AND `JEXP` >= '".$_F['jexp1']."'";}
if($_F['jexp2']!=''){$_F['jexp2']=(int)$_F['jexp2']; $where.=" AND `JEXP` <= '".$_F['jexp2']."'";}
if($_F['lvl1']!=''){$_F['lvl1']=(int)$_F['lvl1']; $where.=" AND `LV` >= '".$_F['lvl1']."'";}
if($_F['lvl2']!=''){$_F['lvl2']=(int)$_F['lvl2']; $where.=" AND `LV` <= '".$_F['lvl2']."'";}
if($_F['race']!=''){$_F['race']=(int)$_F['race']; $where.=" AND `Race` = '".$_F['race']."'";}
if($_F['el']!=''){ // елемент
$_F['el']=(int)$_F['el'];
if($_F['ellvl']!=''){
$_F['ellvl']=(int)$_F['ellvl'];
if($_F['ellvl']<1 || $_F['ellvl']>4 ) $_F['ellvl']=1;
$where.=" AND `Element` = '".($_F[el]+20*($_F['ellvl']-1))."'";
}else{
$where.=" AND (`Element` = '".$_F['el']."' OR `Element` = '".($_F['el']+20)."' OR `Element` = '".($_F['el']+40)."' OR `Element` = '".($_F['el']+60)."')";
}
}
if($_F['size']!=''){$_F['size']=(int)$_F['size']; $where.=" AND `Scale` = '".$_F['size']."'";}
if(isset($_F['mvp']) && $_F['mvp']=='on'){
$where.=" AND ( `MVP1id` != '0' OR `MVP2id` != '0' OR `MVP3id` != '0' )";
}
if( $where!="1") { // чего то ваыбрали.

if($_F['order']!=''){
switch($_F['order']){
case "name": $where.=' ORDER BY `iName` ASC'; break;
case "bExp": $where.=' ORDER BY `EXP` ASC'; break;
case "jExp": $where.=' ORDER BY `JEXP` ASC'; break;
case "level": $where.=' ORDER BY `LV` ASC'; break;
default: break;
}
}

$_SESSION['filter']=$_F;
$smarty->assign('_F',$_F);

$query="SELECT count(*) as cnt FROM ".$config['ro_db'].".mob_db WHERE ".$where;
$tmp=GetAll($query);

if($tmp[0]['cnt']>0){ // найдено по запросу

$nav=pager($tmp[0]['cnt'],$mobs_in_page,$_CURRENT_PAGE,$_page_shown);
$query="SELECT * FROM ".$config['ro_db'].".mob_db WHERE ".$where." LIMIT ".$nav['begin_show'].",".$mobs_in_page;
$mobs=GetAll($query);
foreach($mobs as $key=>$mob){
$mobs[$key]['mode_list']=get_mob_mode($mob['Mode'],$_MOB_MODE);
}
$smarty->assign("mobs",$mobs);
$smarty->assign('nav',$nav);


}else{ // ничего не нашли
$smarty->assign('_NO_SEARCHED',true);
}

}


$smarty->assign('_RACES',$_RACES);
$smarty->assign('_ELEMENTS',$_ELEMENTS);
$smarty->assign('_TITLE','Поиск монстров');
$smarty->assign('page_content','base/mob_search.html');
$smarty->assign('_SUBMENU','menu_base.html');
?>


mobs.php

$config['db_server']="localhost"; // IP или DNS адрес сервера с mysql сервером
$config['db_user']="root"; // Логин пользователя БД
$config['db_password']="vertrigo"; // Пароль пользователя БД

$config['ro_db']="ragnarok"; // База РО сервера
$config['log_db']="ragnarok"; // База логов
$config['ros_db']="rose";

require_once('./const.php');


// Функция для получения статистик монстра (лутер/агрессиыняй и т.д.)



function get_mob_mode($mode,$mob_params){

$num=count($mob_params);
$mode_list=array();

foreach($mob_params as $shift=>$value){
$mode_list[$mob_params[$shift]]=$mode>>$shift&1;
}
return $mode_list;
}

// установим рейты на опыт мобов...
$smarty->assign('bexp_rate',$config['roserver']['base_exp_rate']);
$smarty->assign('jexp_rate',$config['roserver']['job_exp_rate']);

// получим список всех мобов - для выпадающего меню

$mobs=GetAll("SELECT ID as id, iName as name FROM ".$config['ro_db'].".mob_db ORDER BY `iName`");
$smarty->assign("mobs",$mobs);

// проверим на отображение конкретного элемента
if(isset($_PARAMS[1]) && $_PARAMS[1]=='detail'){
$_PARAMS[2]=(int)$_PARAMS[2]; // id монстра

// получим моба
$mob=GetAll("SELECT * FROM ".$config['ro_db'].".mob_db WHERE `ID`='".$_PARAMS[2]."'");

if(count($mob)){ // если получили моба

$mob=$mob[0];

if(is_file($config['document_root'].'/img/mob/'.$mob['ID'].'.gif')){
$mob['image']=true;
}else{
$mob['image']=false;
}
$smarty->assign("mob",$mob);
$smarty->assign('_ELEMENT_FIX',$_ELEMENTS_FIX[$mob['Element']]);
$smarty->assign('mode_list',get_mob_mode($mob['Mode'],$_MOB_MODE));
$smarty->assign('current_mob',$mob['ID']);
// получим места респавна

$mob_maps=GetAll("SELECT * FROM ".$config['ros_db'].".ros_mob_respawn WHERE `mob_id`='".$mob['ID']."'");
foreach($mob_maps as $key=>$value){
// переведем в секунды
if($value['res_time1']!=0)$value['res_time1']=((int)($value['res_time1']))/1000;
if($value['res_time2']!=0)$value['res_time2']=((int)($value['res_time2']))/1000;

$mob_maps[$key]=$value;

}

$smarty->assign('mob_maps',$mob_maps);
// получим названия предметов, которые вываливаются из монстра
$where="";
$items=array();
for($n=1;$n<=9;$n++){
if(isset($mob['Drop'.$n.'id']) && $mob['Drop'.$n.'id']!=0){
// есть предмет
// проверим на шанс выпадения (вдруг 0)
if((isset($mob['Drop'.$n.'per']) && $mob['Drop'.$n.'per']!=0) || $config['drop_rate0item']){
if($where!=''){
$where.=" OR";
}
$where.="`id`='".$mob['Drop'.$n.'id']."'";
// если дроп рейт изменен...
$dr_per=(((int)$mob['Drop'.$n.'per'])/100); // drop=100%
$items[$mob['Drop'.$n.'id']]=array('id'=>$mob['Drop'.$n.'id'],'per'=>$dr_per);
}
}
}
// [Qwadrat]
$mvpwhere="";
$mvpitems=array();
for($n=1;$n<=3;$n++){
if(isset($mob['MVP'.$n.'id']) && $mob['MVP'.$n.'id']!=0){
if((isset($mob['MVP'.$n.'per']) && $mob['MVP'.$n.'per']!=0) || $config['drop_rate0item']){
if($mvpwhere!=''){
$mvpwhere.=" OR";
}
$mvpwhere.="`id`='".$mob['MVP1id']."' OR `id`='".$mob['MVP2id']."' OR `id`='".$mob['MVP3id']."'";
// если дроп рейт изменен...
$dr_per=(((int)$mob['MVP'.$n.'per'])/100); // drop=100%
$mvpitems[$mob['MVP'.$n.'id']]=array('id'=>$mob['MVP'.$n.'id'],'per'=>$dr_per);
}
}
}

if(isset($mob['DropCardid']) && $mob['DropCardid']!=0){
if((isset($mob['DropCardper']) && $mob['DropCardper']!=0) || $config['drop_rate0item']){
$where.=" OR `id`='".$mob['DropCardid']."'";
// если дроп рейт изменен...
$dr_per=(((int)$mob['DropCardper'])/100); // drop=100%
$dr_per*=$config['roserver']['drop_card_rate'];
if($dr_per>100) $dr_per=100;
$items[$mob['DropCardid']]=array('id'=>$mob['DropCardid'],'per'=>$dr_per);
}
}


if($where!=''){ // есть предметы...

$g_items=GetAll("SELECT `id`, `name_japanese` as name, `type`, `slots` FROM ".$config['ro_db'].".item_db WHERE ".$where);

foreach($g_items as $value){
$items[$value['id']]['name']=$value['name'];
$items[$value['id']]['type']=$value['type'];
$items[$value['id']]['slots']=$value['slots'];
if(is_file($config['document_root'].'/img/item/small/'.$value['id'].'.gif')){
$items[$value['id']]['image']=true;
}else{
$items[$value['id']]['image']=false;
}
// дроп рейт изменим если нужно
//$dr_per*=$config['roserver']['drop_rate'];
if($items[$value['id']]['type']==0) $items[$value['id']]['per']*=$config['roserver']['drop_heal_rate'];
elseif($items[$value['id']]['type']==2 || $items[$value['id']]['type']==11) $items[$value['id']]['per']*=$config['roserver']['drop_use_rate'];
elseif($items[$value['id']]['type']==3 || $items[$value['id']]['type']==10) $items[$value['id']]['per']*=$config['roserver']['drop_ect_rate'];
elseif($items[$value['id']]['type']==4 || $items[$value['id']]['type']==5 || $items[$value['id']]['type']==8) $items[$value['id']]['per']*=$config['roserver']['drop_equip_rate'];
if($items[$value['id']]['per']>100) $items[$value['id']]['per']=100;
}

}
// [Qwadrat]
if($mvpwhere!=''){ // есть предметы...

$g_items=GetAll("SELECT `id`, `name_japanese` as name, `type`, `slots` FROM ".$config['ro_db'].".item_db WHERE ".$mvpwhere);

foreach($g_items as $value){
$mvpitems[$value['id']]['name']=$value['name'];
$mvpitems[$value['id']]['type']=$value['type'];
$mvpitems[$value['id']]['slots']=$value['slots'];
if(is_file($config['document_root'].'/img/item/small/'.$value['id'].'.gif')){
$mvpitems[$value['id']]['image']=true;
}else{
$mvpitems[$value['id']]['image']=false;
}
// дроп рейт изменим если нужно
//$dr_per*=$config['roserver']['drop_rate'];
$mvpitems[$value['id']]['per']*=$config['roserver']['drop_mvp_rate'];
if($mvpitems[$value['id']]['per']>100) $mvpitems[$value['id']]['per']=100;
}

}

// Для того что бы установить ссылки на определенную секцию предметов
$smarty->assign('_ITEMS_TYPE',$_ITEMS_TYPE);
$smarty->assign('items',$items);
$smarty->assign('mvpitems',$mvpitems); // [Qwadrat]

$smarty->assign('_RACES',$_RACES);
$smarty->assign('_ELEMENTS',$_ELEMENTS);
}
}
$smarty->assign('_TITLE','База монстров');
$smarty->assign('page_content','base/mobs.html');
$smarty->assign('_SUBMENU','menu_base.html');
?>


pets.php

$config['db_server']="localhost"; // IP или DNS адрес сервера с mysql сервером
$config['db_user']="root"; // Логин пользователя БД
$config['db_password']="vertrigo"; // Пароль пользователя БД

$config['ro_db']="ragnarok"; // База РО сервера
$config['log_db']="ragnarok"; // База логов
$config['ros_db']="rose";

// $config['debug']=true;
include('./const.php');
// Отображает таблицу петов. чем захватить. шанс. что ест. какой ассесуар у него
$pets=GetAll("SELECT `MobID`, `JName`, `ItemID`, `AcceID`, `FoodID`, `Capture` FROM ".$config['ro_db'].".pet_db ORDER BY JName ASC");

$items=array();

foreach($pets as $key=>$value){

if($value['ItemID']) $items[$value['ItemID']]=true;
if($value['AcceID']) $items[$value['AcceID']]=true;
if($value['FoodID']) $items[$value['FoodID']]=true;

if(is_file($config['document_root'].'/img/pets/'.$value['MobID'].'.jpg')){
$pets[$key]['img']=true;
}else{
$pets[$key]['img']=false;
}

}

// в массиве $items ключи равны предметам. получим названия предметов
// получим строку where для получения имен предметов

$where="";
foreach($items as $key=>$value){
if($where!=""){
$where.=" or ";
}
if($key!=''){
$where.=" `id`='".$key."'";
}
}

$items=array();

$i_names=GetAll("SELECT `id`, `name_japanese` FROM ".$config['ro_db'].".item_db WHERE ".$where);
foreach($i_names as $value){

$items[$value['id']]['name']=$value['name_japanese'];
if(is_file($config['document_root'].'/img/item/small/'.$value['id'].'.gif')){
$items[$value['id']]['image']=true;
}else{
$items[$value['id']]['image']=false;
}
}

$smarty->assign('pets',$pets);
$smarty->assign('items',$items);

$smarty->assign('_TITLE','Питомцы');
$smarty->assign('page_content','base/pets.html');
$smarty->assign('_SUBMENU','menu_base.html');

?>


produce.php

$config['db_server']="localhost"; // IP или DNS адрес сервера с mysql сервером
$config['db_user']="root"; // Логин пользователя БД
$config['db_password']="vertrigo"; // Пароль пользователя БД

$config['ro_db']="ragnarok"; // База РО сервера
$config['log_db']="ragnarok"; // База логов
$config['ros_db']="rose";

include('./const.php');
// Отображает таблицу - из чего, какие стрелы получаются
$query="SELECT * FROM ".$config['ro_db'].".produce_db ORDER BY `RequireSkill`";
$produce=GetAll($query);

$items=array();
$arrays=array();
$creation=array();
foreach($produce as $value){
$items[]=$value['ID'];
$arr=array();
if($value['MaterialID1']!=0){$arrows[$value['MaterialID1']]=true;$arr[]=array('material'=>$value['MaterialID1'],'num'=>$value['MaterialAmount1']);}
if($value['MaterialID2']!=0){$arrows[$value['MaterialID2']]=true;$arr[]=array('material'=>$value['MaterialID2'],'num'=>$value['MaterialAmount2']);}
if($value['MaterialID3']!=0){$arrows[$value['MaterialID3']]=true;$arr[]=array('material'=>$value['MaterialID3'],'num'=>$value['MaterialAmount3']);}
if($value['MaterialID4']!=0){$arrows[$value['MaterialID4']]=true;$arr[]=array('material'=>$value['MaterialID4'],'num'=>$value['MaterialAmount4']);}
if($value['MaterialID5']!=0){$arrows[$value['MaterialID5']]=true;$arr[]=array('material'=>$value['MaterialID5'],'num'=>$value['MaterialAmount5']);}
$creation[$value['ID']]=$arr;
// $creation[$value['ID']]['skil']=$RequireSkill;
// $creation[$value['ID']]['itemlv']=$ItemLV;
}

// var_dump($creation);

// Получим все предметы которые изготовить можно....
$add_where="";
for($n=0;$n if($add_where!=''){
$add_where.=" OR ";
}
$add_where.="`id`='".$items[$n]."'";
}
// и все ингридиенты
foreach($arrows as $key=>$value){
$add_where.=" OR `id`='".$key."'";
}
$query="SELECT id, name_japanese, type, slots FROM ".$config['ro_db'].".item_db WHERE ".$add_where;
$tmp=GetAll($query);
$item=array();
foreach($tmp as $value){
$item[$value['id']]=$value;
if(is_file($config['document_root'].'/img/item/small/'.$value['id'].'.gif')){
$item[$value['id']]['image']=true;
}else{
$item[$value['id']]['image']=false;
}
}

$smarty->assign('item',$item); // ассоциативный массив всех предметов
$smarty->assign('creation',$creation); // ассоциативный массив ингридиентов
$smarty->assign('produce',$produce); // массив базы
$smarty->assign('_ITEMS_TYPE',$_ITEMS_TYPE);

// Для подсветки верхнего меню и отрисовки левого
$smarty->assign('_TITLE','Производство');
$smarty->assign("page_content","base/produce.html");
$smarty->assign('_SUBMENU','menu_base.html');

?>


const.php


// распределение по типам. N=>Link N-тип предмета Link - ссылка идущая после /items/
// для отображения только определенных типов предметов. например /items/use. для отображения
// предметов с типом 2 и 11

$_ITEMS_TYPE=array(
'0'=>'potions', // Лечилки
'2'=>'use', // Используемые
'3'=>'etc', // ETC
'4'=>'weapon', // Оружие
'5'=>'equip', // Броня/Накидки/Ботинки/Шапки
'6'=>'card', // Карты
'7'=>'pets', // Яйца петов
'8'=>'etc', // предметы петов
'10'=>'arrow', // Боеприпасы
'11'=>'use' // Пропадающие из инвентаря при клике (для скилов и поимки петов)
);

/*

// пока не используется
// Названия типов предметов
$_ITEMS_TYPE_NAME=array(
'0'=>'Healing item', // Лечилки
'2'=>'Usable item', // Используемые
'3'=>'Etc item', // ETC
'4'=>'Weapon', // Оружие
'5'=>'Armor/Garment/Boots/Headgear', // Броня/Накидки/Ботинки/Шапки
'6'=>'Card', // Карты
'7'=>'Pet egg', // Яйца петов
'8'=>'Pet equipment', // Предметы петов
'10'=>'Ammo (Arrows/Bullets/etc)', // Боеприпасы
'11'=>'Usable with delayed consumption' // Пропадающие из инвентаря при клике (для скилов и поимки петов)
);
*/
$_ITEMS_JOB_BITMAP=array(
'(S.) Novice' => 0x00000001, // (2^00):
'Swordman' => 0x00000002, // (2^01):
'Mage' => 0x00000004, // (2^02):
'Archer' => 0x00000008, // (2^03):
'Acolyte' => 0x00000010, // (2^04):
'Merchant' => 0x00000020, // (2^05):
'Thief' => 0x00000040, // (2^06):
'Knight' => 0x00000080, // (2^07):
'Priest' => 0x00000100, // (2^08):
'Wizard' => 0x00000200, // (2^09):
'Blacksmith' => 0x00000400, // (2^10):
'Hunter' => 0x00000800, // (2^11):
'Assassin' => 0x00001000, // (2^12):
// 'Unused' => 0x00002000, // (2^13):
'Crusader' => 0x00004000, // (2^14):
'Monk' => 0x00008000, // (2^15):
'Sage' => 0x00010000, // (2^16):
'Rogue' => 0x00020000, // (2^17):
'Alchemist' => 0x00040000, // (2^18):
'Bard/Dancer' => 0x00080000, // (2^19):
'Unused' => 0x00100000, // (2^20):
'Taekwon' => 0x00200000, // (2^21):
'StarGladi' => 0x00400000, // (2^22):
'Soul Linker' => 0x00800000, // (2^23):
'Gunslinger' => 0x01000000, // (2^24):
'Ninja' => 0x02000000 // (2^25):
);

$_GD_SKILL_NAME=array(
'10000'=>'Approval',
'10004'=>'Guild_Extension',
'10001'=>'Kafra_Contract',
'10002'=>'Guardian_Research',
'10005'=>"Guild's_Glory",
'10006'=>'Great_Leadership',
'10007'=>'Wounds_of_Glory',
'10008'=>'Cold_Soul',
'10009'=>'Sharp_Eyes',
'10010'=>'Battle_Orders',
'10011'=>'Regeneration',
'10012'=>'Restore',
'10013'=>'Rally_Guild',
'10003'=>'Guardian_Training',
'10014'=>'Extend_Guild'
);

$_JOB=array('0'=>'Novice',
'1'=>'Swordman',
'2'=>'Mage',
'3'=>'Archer',
'4'=>'Acolyte',
'5'=>'Merchant',
'6'=>'Thief',
'7'=>'Knight',
'8'=>'Priest',
'9'=>'Wizard',
'10'=>'Blacksmith',
'11'=>'Hunter',
'12'=>'Assassin',
// '13'=>'Knight on PecoPeco',
'13'=>'Knight',
'14'=>'Crusader',
'15'=>'Monk',
'16'=>'Sage',
'17'=>'Rogue',
'18'=>'Alchem',
'19'=>'Bard',
'20'=>'Dancer',
// '21'=>'Crusader on GrandPeco',
'21'=>'Crusader',
'22'=>'Job Wedding',

'23'=>'Super Novice',
'24'=>'Gunslinger',
'25'=>'Ninja',
'26'=>'Xmas',


'4001'=>'Novice High',
'4002'=>'Swordman High',
'4003'=>'Mage High',
'4004'=>'Archer High',
'4005'=>'Acolyte High',
'4006'=>'Merchant High',
'4007'=>'Thief High',
'4008'=>'Lord Knight',
'4009'=>'High Priest',
'4010'=>'High Wizard',
'4011'=>'Whitesmith',
'4012'=>'Sniper',
'4013'=>'Assassin Cross',
//'4014'=>'Lord Knight2',
'4014'=>'Lord Knight',
'4015'=>'Paladin',
'4016'=>'Champion',
'4017'=>'Professor',
'4018'=>'Stalker',
'4019'=>'Creator',
'4020'=>'Clown',
'4021'=>'Gypsy',
//'4022'=>'Paladin2',
'4022'=>'Paladin',

// бэбиклассы
'4023'=>'Baby',
'4024'=>'Baby Swordman',
'4025'=>'Baby Mage',
'4026'=>'Baby Archer',
'4027'=>'Baby Acolyte',
'4028'=>'Baby Merchant',
'4029'=>'Baby Thief',
'4030'=>'Baby Knight',
'4031'=>'Baby Priest',
'4032'=>'Baby Wizard',
'4033'=>'Baby Blacksmith',
'4034'=>'Baby Hunter',
'4035'=>'Baby Assassin',
//'4036'=>'Baby Knight2',
'4036'=>'Baby Knight',
'4037'=>'Baby Crusader',
'4038'=>'Baby Monk',
'4039'=>'Baby Sage',
'4040'=>'Baby Rogue',
'4041'=>'Baby Alchem',
'4042'=>'Baby Bard',
'4043'=>'Baby Dancer',
//'4044'=>'Baby Crusader2',
'4044'=>'Baby Crusader',
'4045'=>'Super Baby',

// тайквон классы
'4046'=>'Taekwon',
'4047'=>'Star Gladiator',
//'4048'=>'Star Gladiator2',
'4048'=>'Star Gladiator',
'4049'=>'Soul Linker'

);

$_RACES=array(
"11"=>"Other",
"10"=>"Boss monster",
"9"=>"Dragon",
"8"=>"Angel",
"7"=>"Demi-Human",
"6"=>"Demon",
"5"=>"Fish",
"4"=>"Insect",
"3"=>"Plant",
"2"=>"Brute",
"1"=>"Undead",
"0"=>"Formless" //?????????
);


$_ELEMENTS=array(
// <число элемента>=>(<отображение на сайте>,<название столбца в базе>,<уровень элемента>)
20=>array("Neutral 1","Neutral",1),
21=>array("Water 1","Water",1),
22=>array("Earth 1","Earth",1),
23=>array("Filre 1","Filre",1),
24=>array("Wind 1","Wind",1),
25=>array("Poison 1","Poison",1),
26=>array("Holy 1","Holy",1),
27=>array("Dark 1","Dark",1),
28=>array("Ghost 1","Ghost",1),
29=>array("Undead 1","Undead",1),

40=>array("Neutral 2","Neutral",2),
41=>array("Water 2","Water",2),
42=>array("Earth 2","Earth",2),
43=>array("Filre 2","Filre",2),
44=>array("Wind 2","Wind",2),
45=>array("Poison 2","Poison",2),
46=>array("Holy 2","Holy",2),
47=>array("Dark 2","Dark",2),
48=>array("Ghost 2","Ghost",2),
49=>array("Undead 2","Undead",2),

60=>array("Neutral 3","Neutral",3),
61=>array("Water 3","Water",3),
62=>array("Earth 3","Earth",3),
63=>array("Filre 3","Filre",3),
64=>array("Wind 3","Wind",3),
65=>array("Poison 3","Poison",3),
66=>array("Holy 3","Holy",3),
67=>array("Dark 3","Dark",3),
68=>array("Ghost 3","Ghost",3),
69=>array("Undead 3","Undead",3),

80=>array("Neutral 4","Neutral",4),
81=>array("Water 4","Water",4),
82=>array("Earth 4","Earth",4),
83=>array("Filre 4","Filre",4),
84=>array("Wind 4","Wind",4),
85=>array("Poison 4","Poison",4),
86=>array("Holy 4","Holy",4),
87=>array("Dark 4","Dark",4),
88=>array("Ghost 4","Ghost",4),
89=>array("Undead 4","Undead",4),

);


// свойства моба. индекс - номер байта
$_MOB_MODE=array(
// 0=>"Enemy can move",
1=>"Looter",
2=>"Aggressive",
3=>"Assists",
4=>"Spell detector",
5=>"Spawn minions",
6=>"Plant",
// 7=>"For everything but plants"
);

$_ELEMENTS_FIX=array(
20=>array(100,100,100,100,100,100,100,100,25,100),
21=>array(100,25,100,50,175,100,100,100,100,100),
22=>array(100,100,100,150,50,125,100,100,100,100),
23=>array(100,150,50,25,100,125,100,100,100,100),
24=>array(100,50,150,100,25,125,100,100,100,100),
25=>array(100,100,100,100,100,0,100,50,100,50),
26=>array(100,75,75,75,75,75,0,125,75,100),
27=>array(100,100,100,100,100,50,125,0,75,0),
28=>array(25,100,100,100,100,100,100,100,125,100),
29=>array(100,100,100,125,100,-25,150,-25,100,0),

40=>array(100,100,100,100,100,100,100,100,0,100),
41=>array(100,0,100,25,175,75,100,100,75,75),
42=>array(100,100,50,175,25,125,100,100,75,75),
43=>array(100,175,25,0,100,125,100,100,75,75),
44=>array(100,25,175,100,0,125,100,100,75,75),
45=>array(100,100,100,100,100,0,100,25,75,25),
46=>array(100,50,50,50,50,50,-25,150,50,125),
47=>array(100,75,75,75,75,25,150,-25,50,0),
48=>array(25,100,100,100,100,75,100,100,150,100),
49=>array(100,100,100,150,100,-50,175,-50,125,0),

60=>array(100,100,100,100,100,100,100,100,0,100),
61=>array(100,-25,100,0,200,50,100,100,50,50),
62=>array(100,100,0,200,0,100,100,100,50,50),
63=>array(100,200,0,-25,100,100,100,100,50,50),
64=>array(100,0,200,100,-25,100,100,100,50,50),
65=>array(100,100,100,100,100,0,125,0,50,0),
66=>array(100,25,25,25,25,25,-50,175,25,150),
67=>array(100,50,50,50,50,0,175,-50,25,0),
68=>array(0,100,100,100,100,50,100,100,175,100),
69=>array(100,125,75,175,100,-75,200,-75,150,0),

80=>array(100,100,100,100,100,100,100,100,0,100),
81=>array(100,-50,100,0,200,25,75,75,25,25),
82=>array(100,100,-25,200,0,75,75,75,25,25),
83=>array(100,200,0,-50,100,75,75,75,25,25),
84=>array(100,0,200,100,-50,75,75,75,25,25),
85=>array(100,75,75,75,75,0,125,-25,25,-25),
86=>array(100,0,0,0,0,0,-100,200,0,175),
87=>array(100,25,25,25,25,-25,200,-100,0,0),
88=>array(0,100,100,100,100,25,100,100,200,100),
89=>array(100,150,50,200,100,-100,200,-100,175,0),
);

?>


pager.php


// Функция получает значения
// $items_count сколько всего записей
// $items_in_page сколько записей на странице
// $page_number какая страница
// $page_show Сколько страниц показывать (слева и справа)

function pager($items_count,$items_in_page,$page_number,$page_show)
{
$max_page=(int)($items_count/$items_in_page);
if($max_page==($items_count/$items_in_page))$max_page--;
if($max_page<0)$max_page=0;
if($page_number<0)$page_number=0;
$min_item=$page_number*$items_in_page;
if($min_item>($items_count-1))
{
$page_number=$max_page;
$min_item=$page_number*$items_in_page;
}
$max_item=$min_item+$items_in_page-1;
if($max_item>($items_count-1))$max_item=$items_count-1;
if($max_item<0)$max_item=0;
$left=array();
$right=array();
// Сделаем массив номеров страниц слева
for($n=($page_number-1);$n>($page_number-$page_show);$n--)
{
if($n<0)break;
$left[]=$n;
}
$left=array_reverse($left);
// Сделаем массив номеров страниц справа
for($n=$page_number+1;$n<($page_number+$page_show);$n++)
{
if($n>$max_page)break;
$right[]=$n;
}
// Если у нас кругом 0 то подправим begin_show
$result=array( "max_page"=>$max_page,
"current_page"=>$page_number,
"left"=>$left,
"right"=>$right,
"begin_show"=>$min_item,
"end_show"=>$max_item,
"items_count"=>$items_count,
"show_items"=>($max_item-$min_item+1));
return $result;
}


?>

Автор: vixa2012: Дата: 03.30.2011

Ну так что ктото смог сделать это рабочим если да то скиньте и для других

Автор: [OneLife]: Дата: 03.30.2011

не понимаю смысл брать все модули с розы, ибо выходит та же самая роза с другим дизайном

Автор: vixa2012: Дата: 03.30.2011

Потому что нету других модулей это 1
а во вторых ты тупо обсуждать заходиш сюда или помочь определись
а в третих эти модули еще сделать надо чтобы они работали.
Я делаю а оно ошибки на смарти выдает и не подключается к базе хотя данные все верно ввёл

Короч не могу найти функцию $smarty
и немогу дупля отбить почуме пишет password: NO Я ведь верные данные ввожу

Автор: [OneLife]: Дата: 03.30.2011

Не где не видел подключения к базе.
Смарти это не просто функция читай http://www.smarty.net/docsv2/ru/what.is.smarty.tpl

Автор: unded: Дата: 03.30.2011

$smarty это не функция это объект шаблонизатора.

Советую не выдирать модули со сторонних cp.
Делай все сам, там нет ничего сложного, зато поймешь логику работы и принцип работы скрипта

Сам скрипт базы состоит из массивов,проверок, и циклов - это основы php.

Начинай с самых простых вещей, подключение базы, выборка данных, и обработка их.
А потом просто наращивай функционал...

И не слушай людей типа Kill Spirit.

Автор: vixa2012: Дата: 03.30.2011

Окей я попробую с 0 начять

Автор: unded: Дата: 03.30.2011

Будут вопросы, задавай, по возможности отвечу (это если зайду в ближайшие время).

Автор: Swizz: Дата: 03.30.2011

Зачем делать базу знаний, если она уже есть причём не одна, а если и делать так что-нить новенькое.

Автор: unded: Дата: 03.30.2011

Парню интересно, парень хочет понять, парень хочет научиться - пусть делает=)

Может и сделает что то новенькое.

Я по этим причинам, раньше столько велосипедов наделал...

Автор: vixa2012: Дата: 03.30.2011

Swizz или кто-то если есть база знаний у тебя то выложи и другие больше эту тему не откроют
Сам я походу не осилю

Только в глову лезит идя копировать по 1 html страничке))

Автор: Swizz: Дата: 03.30.2011

А что ты хочешь?
База данных это item_db and mob_db это у тебя есть..
Дальше берешь розу, и все ставишь.
Все картинки и прочее есть на eathena.ws

Автор: vixa2012: Дата: 03.30.2011

Все картинки есть у меня и мобов и итемов а в розе слишком много непонятного особенно с $smarty

Автор: vixa2012: Дата: 03.30.2011

В блокнотах РОЗЫ слишком много функций и в итоге я все функции нахожу привязываю к базам итемов и мобов
НО остаеться одна фишка не могу найти скрипт который заставляет считывать команду $smarty с папки Smarty которая лежит в розе Rose/include/Smarty
Из-за этого эрор на сайте выдает!

Автор: [OneLife]: Дата: 03.30.2011

Удали ты смарти из файлов и не парся

Автор: vixa2012: Дата: 03.30.2011

Мда если бы ты понимал что эта функция делает ты бы такой бред не писал как удали функию

Автор: [OneLife]: Дата: 03.30.2011

Блеать тебе же уже андеад и я говорили Смарти эта не функция!

Автор: vixa2012: Дата: 03.31.2011

Шо значит не функция как я посмотрел она отвечает за отображение страници на главной ну в прочем удалю попробую я выложу то что сделал уже поправите меня на наличие ошибок

Автор: Kill Spirit: Дата: 03.31.2011

Цитата vixa2012;37511:
Что значит не функция? Как я посмотрел, она отвечает за отображение страницы на главной, ну впрочем удалю попробую я, выложу то, что сделал уже, поправите меня на наличие ошибок.


[FONT="Comic Sans MS"]FIXED[/FONT]

Автор: vixa2012: Дата: 03.31.2011

Короче говоря смотрите скрипт написал показывания итемов items.php вот что выдает на сайте
Unknown database 'resource id #2' вот и скрипт чего нехватает или чо ему надо?


$config['roserver']['server_dns']='vixa.sytes.net'; // IP или DNS адрес РО сервера
$config['roserver']['loginserver_port']='6900'; // Порт логин сервера
$config['roserver']['charserver_port']='6121'; // Порт чар сервера
$config['roserver']['mapserver_port']='5121'; // Порт мап сервера
$config['roserver']['socket_time_limit']='1'; // Лимит времени на проверку коннекта к каждому из серверов в секундах

$server = "localhost";
$user = "root";
$pass = "vertrigo";
$db = "ragnarok";

$db = mysql_connect($server, $user, $pass) or die(mysql_error());
// подгружаем БД
$select = mysql_select_db($db, $db) or die(mysql_error());

function query($query,$DB=0){
global $config;
if(isset($config['debug']) && $config['debug']){
echo $query."
\n";
}
if($DB){
$result=mysql_query($query,$DB);
}else{
$result=mysql_query($query);
}
if(mysql_error()){
echo mysql_error()."
\n";
echo "query:".$query;
return null;
}else{
return $result;
}
}


function GetAll($query,$DB=0){
$ret=array();
$result=query($query,$DB);
if($result){
$num=mysql_num_rows($result);
for($n=0;$n<$num;$n++){
$ret[]=mysql_fetch_assoc($result);
}
return $ret;
}else{
return null;
}
}
$_bans_in_page=20;
$_page_shown=7;

require_once('./pager.php');

$ban_count=GetAll("SELECT count(char_id) as cnt FROM ".$db.".login
LEFT JOIN ".$db.".char ON char.account_id = login.account_id
WHERE ban_until > 0 OR state = '5';");
$ban_count=$ban_count[0]['cnt'];
$nav=pager($ban_count,$_bans_in_page,$_CURRENT_PAGE,$_page_shown);

$where=getdate();
$query="SELECT login.userid, FROM_UNIXTIME(login.ban_until, '%d.%m.%Y %T') as ban_time, login.state,
char.name as char_name
FROM ".$db.".login
LEFT JOIN ".$db.".char ON char.account_id = login.account_id
WHERE ban_until > ".$where[0]." OR state = '5'
ORDER BY ban_until, state DESC
LIMIT ".$nav['begin_show']." , ".$_bans_in_page;

$bans=GetAll($query);

// показывает информацию о предметах.

require_once('./const.php');

// возьмем параметр строки (если есть) и определим, что за предметы
// будет отображать...
$add_where="";
if(isset($_PARAMS[1])){ // Поищем тип предмета

foreach($_ITEMS_TYPE as $key=>$value){

if($value==$_PARAMS[1]){
if($add_where==""){
$add_where="WHERE `type`='".$key."' ";
}else{
$add_where.="OR `type`='".$key."' ";
}

}
}

}

// получим список предметов
$items=GetAll("SELECT id, name_english, name_japanese as name, type, slots FROM ".$db.".item_db ".$add_where."ORDER BY `name_japanese`");

// проверим на отображение конкретного элемента

if(isset($_PARAMS[1]) && $_PARAMS[1]=='detail'){
$detail_item=(int)$_PARAMS[2];
}
if(isset($_PARAMS[2]) && $_PARAMS[2]=='detail'){
$detail_item=(int)$_PARAMS[3];
}

if(isset($detail_item)){
// получим предмет
$item=GetAll("SELECT item_db.id, item_db.name_japanese, item_db.type, item_db.equip_genders, item_db.attack, item_db.defence, item_db.price_buy, item_db.price_sell, item_db.weight, item_db.weapon_level, item_db.equip_level, ros_item_desc.desc FROM ".$db.".item_db LEFT JOIN ".$config['ros_db'].".ros_item_desc ON item_db.id=ros_item_desc.id WHERE item_db.id='".$detail_item."'");

if(count($item)){ // если нет ошибки, значит получили предмет

$item=$item[0];
if(is_file($config['document_root'].'/img/item/big/'.$item['id'].'.gif')){
$item['image']=true;
}else{
$item['image']=false;
}
// получим магазины
$shops=GetAll("SELECT ros_npc.map_name, ros_npc.name, ros_npc.x, ros_npc.y FROM ".$config['ros_db'].".ros_npc LEFT JOIN ".$config['ros_db'].".ros_shop_item ON ros_shop_item.shopnpc_id=ros_npc.id WHERE ros_shop_item.item_id='".$detail_item."'");


if($config['debug']) var_dump($item);

$item['desc']=preg_replace("/\^([0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f])/i","",$item['desc']);
// если ставится черный цвет, то просто закроем тег цвета (вдруг у нас сайт на черном фоне)
$item['desc']=str_replace("","",$item['desc']);


// если это стрелы, то получи - из чего их можно сделать
if($item['type']==10){
// получим все записи из таблицы изготовления стрел в которых присутствуют данные стрелы...
$tmp=GetAll("SELECT * FROM ".$db.".create_arrow_db WHERE `MakeID1`='".$item['id']."' OR `MakeID2`='".$item['id']."' OR `MakeID3`='".$item['id']."' OR `MakeID4`='".$item['id']."' OR `MakeID5`='".$item['id']."'");
$craft_count=array(); // тут будут данные о изготовлении стрел
$where='';
foreach($tmp as $value){
$count=0; // кол-во стрел.
if($value['MakeID1']==$item['id'])$count=$value['MakeNum1'];
if($value['MakeID2']==$item['id'])$count=$value['MakeNum2'];
if($value['MakeID3']==$item['id'])$count=$value['MakeNum3'];
if($value['MakeID4']==$item['id'])$count=$value['MakeNum4'];
if($value['MakeID5']==$item['id'])$count=$value['MakeNum5'];
if($count!=0){ // если стрелы делаются (теоретически всегда должно срабатывать)
$craft_count[$value['SourceID']]=$count;
}
if($where!=''){
$where.=" OR `id`='".$value['SourceID']."'";
}else{
$where.=" `id`='".$value['SourceID']."'";
}
}
// нужно получить имена и тип предметов из которых делаются стрелы
$craft_items=array();
if($where!=''){ // есть предметы из которых делать стрелы можно.
$craft_items=GetAll("SELECT id, type, name_japanese as name FROM ".$db.".item_db WHERE".$where." ORDER BY name_japanese ASC");
}
foreach($craft_items as $key=>$value){
$craft_items[$key]['count']=$craft_count[$value['id']];
if(is_file($config['document_root'].'/img/item/small/'.$item['id'].'.gif')){
$craft_items[$key]['image']=true;
}else{
$craft_items[$key]['image']=false;
}
}


}

// получим всех монстров из которых выпадает и процент выпадения
$where='';
$select=' ID as id, iName as name';
$items=array();
for($n=1;$n<=9;$n++){
if($where!=''){
$where.=' OR';
}
$where.=' Drop'.$n.'id='.$item['id'];
$select.=', Drop'.$n.'id, Drop'.$n.'per';
}
$where.=' OR DropCardid='.$item['id'];
$select.=', DropCardid, DropCardper';

$mobs=GetAll("SELECT ".$select." FROM ".$db.".mob_db WHERE".$where.' ORDER BY iName');

$item_mob=array();

foreach($mobs as $key=>$value){
$dr_per=0;
for($n=1;$n<=9;$n++){ // переберем обычные предметы
if($value['Drop'.$n.'id']==$item['id']){ // нашли у моба наш предмет
if($value['Drop'.$n.'per']!=0 || $config['drop_rate0item']){ // проверим на 0 дроп
// установи процент от дропрейта из конфига
$dr_per=((int)$value['Drop'.$n.'per'])/100; // 100%
//$dr_per*=$config['roserver']['drop_rate'];
// var_dump($item);
if($item['type']==0) $dr_per*=$config['roserver']['drop_heal_rate'];
elseif($item['type']==2 || $item['type']==11) $dr_per*=$config['roserver']['drop_use_rate'];
elseif($item['type']==3 || $item['type']==10) $dr_per*=$config['roserver']['drop_ect_rate'];
elseif($item['type']==4 || $item['type']==5 || $item['type']==8) $dr_per*=$config['roserver']['drop_equip_rate'];
if($dr_per>100) $dr_per=100;

$item_mob[]=array('name'=>$value['name'],'id'=>$value['id'],'per'=>$dr_per);
break;
}
}
}
// проверим карты
if($value['DropCardid']==$item['id']){
if($value['DropCardper']!=0 || $config['drop_rate0item']){

// установи процент от дропрейта из конфига
$dr_per=((int)$value['DropCardper'])/100; // 100%
$dr_per*=$config['roserver']['drop_card_rate'];
if($dr_per>100) $dr_per=100;

$item_mob[]=array('name'=>$value['name'],'id'=>$value['id'],'per'=>$dr_per);
}
}
}

if(count($item_mob)){

}
}
}


?>



Просмотр предметов






{if isset($item) && count($item)}














{* item_db.type, item_db.attack, item_db.defence, item_db.weapon_level, item_db.equip_level, *}




{$item.name_japanese} Цена покупки:{if !$item.price_buy}-{else}{$item.price_buy}{/if} Цена продажи:{if !$item.price_sell}-{else}{$item.price_sell}{/if}
{if $item.image}{$item.name_japanese}{else}{/if}

{if $item.desc}{$item.desc|nl2br}{else}Об этом предмете ходят странные легенды...{/if}




{if $item.type==4 || $item.type==5}{/if}

{if $item.type==4}








{/if}
{if $item.type==5}




{/if}
Вес: {$item.weight/10}Необходимый пол:{if $item.equip_genders==2}Неважно{else}{if $item.equip_genders==1}Мужской{else}Женский{/if}{/if}
Атака:{$item.attack} Защита:{$item.defence}
Уровень оружия:{$item.weapon_level} Мин. уровень персонажа:{$item.equip_level}
Защита:{$item.defence} Мин. уровень персонажа:{$item.equip_level}

{/if}


{if isset($item_mob) && count($item_mob)}







{foreach from=$item_mob item=curr_mob}





{/foreach}

Выпадает из:
  {$curr_mob.name}   {$curr_mob.per} % 

{/if}


{if isset($shops) && count($shops)}










{foreach from=$shops item=curr_shop}







{/foreach}

Можно купить у: Карта x y
 {$curr_shop.name}   {$curr_shop.map_name}   {$curr_shop.x}   {$curr_shop.y} 

{/if}


{if isset($craft_items) && count($craft_items)}






{foreach from=$craft_items item=curr_item}
{assign var="sub" value=$_ITEMS_TYPE[$curr_item.type]}






{/foreach}

Можно изготовить из:
{if $curr_item.image}{else} {/if}  {$curr_item.name}   {$curr_item.count} 

{/if}


Автор: vixa2012: Дата: 03.31.2011

Вот еще немного доделал этот скрипт но серавно пишет ошибки я кстате rose_add.sql
распаковал в БД ragnarok и в скрипте поправочки сделал но серавно выдает туже ошибку Unknown database 'resource id #2' где то чтото в базе нехватает помогите найти это что то

items.php


$config['roserver']['socket_time_limit']='1'; // Лимит времени на проверку коннекта к каждому из серверов в секундах
$config['roserver']['base_exp_rate']=1;
$config['roserver']['job_exp_rate']=1;

// Шанс выпадения предметов по категориям !!!!!!!////////////////////////////////////
//$config['roserver']['drop_rate']=1; // устаревшее
$config['roserver']['drop_heal_rate']=1;
$config['roserver']['drop_use_rate']=1;
$config['roserver']['drop_ect_rate']=1;
$config['roserver']['drop_equip_rate']=1;
$config['roserver']['drop_card_rate']=1;
$config['roserver']['drop_mvp_rate']=1;

$server = "localhost";
$user = "root";
$pass = "vertrigo";
$db = "ragnarok";

$db = mysql_connect($server, $user, $pass) or die(mysql_error());
// подгружаем БД
$select = mysql_select_db($db, $db) or die(mysql_error());

function query($query,$DB=0){
global $config;
if(isset($config['debug']) && $config['debug']){
echo $query."
\n";
}
if($DB){
$result=mysql_query($query,$DB);
}else{
$result=mysql_query($query);
}
if(mysql_error()){
echo mysql_error()."
\n";
echo "query:".$query;
return null;
}else{
return $result;
}
}


function GetAll($query,$DB=0){
$ret=array();
$result=query($query,$DB);
if($result){
$num=mysql_num_rows($result);
for($n=0;$n<$num;$n++){
$ret[]=mysql_fetch_assoc($result);
}
return $ret;
}else{
return null;
}
}
$_bans_in_page=20;
$_page_shown=7;

require_once('./pager.php');

$ban_count=GetAll("SELECT count(char_id) as cnt FROM ".$db.".login
LEFT JOIN ".$db.".char ON char.account_id = login.account_id
WHERE ban_until > 0 OR state = '5';");
$ban_count=$ban_count[0]['cnt'];
$nav=pager($ban_count,$_bans_in_page,$_CURRENT_PAGE,$_page_shown);

$where=getdate();
$query="SELECT login.userid, FROM_UNIXTIME(login.ban_until, '%d.%m.%Y %T') as ban_time, login.state,
char.name as char_name
FROM ".$db.".login
LEFT JOIN ".$db.".char ON char.account_id = login.account_id
WHERE ban_until > ".$where[0]." OR state = '5'
ORDER BY ban_until, state DESC
LIMIT ".$nav['begin_show']." , ".$_bans_in_page;

$bans=GetAll($query);

// показывает информацию о предметах.

require_once('./const.php');

// возьмем параметр строки (если есть) и определим, что за предметы
// будет отображать...
$add_where="";
if(isset($_PARAMS[1])){ // Поищем тип предмета

foreach($_ITEMS_TYPE as $key=>$value){

if($value==$_PARAMS[1]){
if($add_where==""){
$add_where="WHERE `type`='".$key."' ";
}else{
$add_where.="OR `type`='".$key."' ";
}

}
}

}

// получим список предметов
$items=GetAll("SELECT id, name_english, name_japanese as name, type, slots FROM ".$db.".item_db ".$add_where."ORDER BY `name_japanese`");

// проверим на отображение конкретного элемента

if(isset($_PARAMS[1]) && $_PARAMS[1]=='detail'){
$detail_item=(int)$_PARAMS[2];
}
if(isset($_PARAMS[2]) && $_PARAMS[2]=='detail'){
$detail_item=(int)$_PARAMS[3];
}

if(isset($detail_item)){
// получим предмет
$item=GetAll("SELECT item_db.id, item_db.name_japanese, item_db.type, item_db.equip_genders, item_db.attack, item_db.defence, item_db.price_buy, item_db.price_sell, item_db.weight, item_db.weapon_level, item_db.equip_level, ros_item_desc.desc FROM ".$db.".item_db LEFT JOIN ".$db.".ros_item_desc ON item_db.id=ros_item_desc.id WHERE item_db.id='".$detail_item."'");

if(count($item)){ // если нет ошибки, значит получили предмет

$item=$item[0];
if(is_file($config['document_root'].'/img/item/big/'.$item['id'].'.gif')){
$item['image']=true;
}else{
$item['image']=false;
}
// получим магазины
$shops=GetAll("SELECT ros_npc.map_name, ros_npc.name, ros_npc.x, ros_npc.y FROM ".$db.".ros_npc LEFT JOIN ".$db.".ros_shop_item ON ros_shop_item.shopnpc_id=ros_npc.id WHERE ros_shop_item.item_id='".$detail_item."'");


if($config['debug']) var_dump($item);

$item['desc']=preg_replace("/\^([0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f])/i","",$item['desc']);
// если ставится черный цвет, то просто закроем тег цвета (вдруг у нас сайт на черном фоне)
$item['desc']=str_replace("","",$item['desc']);


// если это стрелы, то получи - из чего их можно сделать
if($item['type']==10){
// получим все записи из таблицы изготовления стрел в которых присутствуют данные стрелы...
$tmp=GetAll("SELECT * FROM ".$db.".create_arrow_db WHERE `MakeID1`='".$item['id']."' OR `MakeID2`='".$item['id']."' OR `MakeID3`='".$item['id']."' OR `MakeID4`='".$item['id']."' OR `MakeID5`='".$item['id']."'");
$craft_count=array(); // тут будут данные о изготовлении стрел
$where='';
foreach($tmp as $value){
$count=0; // кол-во стрел.
if($value['MakeID1']==$item['id'])$count=$value['MakeNum1'];
if($value['MakeID2']==$item['id'])$count=$value['MakeNum2'];
if($value['MakeID3']==$item['id'])$count=$value['MakeNum3'];
if($value['MakeID4']==$item['id'])$count=$value['MakeNum4'];
if($value['MakeID5']==$item['id'])$count=$value['MakeNum5'];
if($count!=0){ // если стрелы делаются (теоретически всегда должно срабатывать)
$craft_count[$value['SourceID']]=$count;
}
if($where!=''){
$where.=" OR `id`='".$value['SourceID']."'";
}else{
$where.=" `id`='".$value['SourceID']."'";
}
}
// нужно получить имена и тип предметов из которых делаются стрелы
$craft_items=array();
if($where!=''){ // есть предметы из которых делать стрелы можно.
$craft_items=GetAll("SELECT id, type, name_japanese as name FROM ".$db.".item_db WHERE".$where." ORDER BY name_japanese ASC");
}
foreach($craft_items as $key=>$value){
$craft_items[$key]['count']=$craft_count[$value['id']];
if(is_file($config['document_root'].'/img/item/small/'.$item['id'].'.gif')){
$craft_items[$key]['image']=true;
}else{
$craft_items[$key]['image']=false;
}
}


}

// получим всех монстров из которых выпадает и процент выпадения
$where='';
$select=' ID as id, iName as name';
$items=array();
for($n=1;$n<=9;$n++){
if($where!=''){
$where.=' OR';
}
$where.=' Drop'.$n.'id='.$item['id'];
$select.=', Drop'.$n.'id, Drop'.$n.'per';
}
$where.=' OR DropCardid='.$item['id'];
$select.=', DropCardid, DropCardper';

$mobs=GetAll("SELECT ".$select." FROM ".$db.".mob_db WHERE".$where.' ORDER BY iName');

$item_mob=array();

foreach($mobs as $key=>$value){
$dr_per=0;
for($n=1;$n<=9;$n++){ // переберем обычные предметы
if($value['Drop'.$n.'id']==$item['id']){ // нашли у моба наш предмет
if($value['Drop'.$n.'per']!=0 || $config['drop_rate0item']){ // проверим на 0 дроп
// установи процент от дропрейта из конфига
$dr_per=((int)$value['Drop'.$n.'per'])/100; // 100%
//$dr_per*=$config['roserver']['drop_rate'];
// var_dump($item);
if($item['type']==0) $dr_per*=$config['roserver']['drop_heal_rate'];
elseif($item['type']==2 || $item['type']==11) $dr_per*=$config['roserver']['drop_use_rate'];
elseif($item['type']==3 || $item['type']==10) $dr_per*=$config['roserver']['drop_ect_rate'];
elseif($item['type']==4 || $item['type']==5 || $item['type']==8) $dr_per*=$config['roserver']['drop_equip_rate'];
if($dr_per>100) $dr_per=100;

$item_mob[]=array('name'=>$value['name'],'id'=>$value['id'],'per'=>$dr_per);
break;
}
}
}
// проверим карты
if($value['DropCardid']==$item['id']){
if($value['DropCardper']!=0 || $config['drop_rate0item']){

// установи процент от дропрейта из конфига
$dr_per=((int)$value['DropCardper'])/100; // 100%
$dr_per*=$config['roserver']['drop_card_rate'];
if($dr_per>100) $dr_per=100;

$item_mob[]=array('name'=>$value['name'],'id'=>$value['id'],'per'=>$dr_per);
}
}
}

if(count($item_mob)){

}
}
}


?>



Просмотр предметов






{if isset($item) && count($item)}














{* item_db.type, item_db.attack, item_db.defence, item_db.weapon_level, item_db.equip_level, *}




{$item.name_japanese} Цена покупки:{if !$item.price_buy}-{else}{$item.price_buy}{/if} Цена продажи:{if !$item.price_sell}-{else}{$item.price_sell}{/if}
{if $item.image}{$item.name_japanese}{else}{/if}

{if $item.desc}{$item.desc|nl2br}{else}Об этом предмете ходят странные легенды...{/if}




{if $item.type==4 || $item.type==5}{/if}

{if $item.type==4}








{/if}
{if $item.type==5}




{/if}
Вес: {$item.weight/10}Необходимый пол:{if $item.equip_genders==2}Неважно{else}{if $item.equip_genders==1}Мужской{else}Женский{/if}{/if}
Атака:{$item.attack} Защита:{$item.defence}
Уровень оружия:{$item.weapon_level} Мин. уровень персонажа:{$item.equip_level}
Защита:{$item.defence} Мин. уровень персонажа:{$item.equip_level}

{/if}


{if isset($item_mob) && count($item_mob)}







{foreach from=$item_mob item=curr_mob}





{/foreach}

Выпадает из:
  {$curr_mob.name}   {$curr_mob.per} % 

{/if}


{if isset($shops) && count($shops)}










{foreach from=$shops item=curr_shop}







{/foreach}

Можно купить у: Карта x y
 {$curr_shop.name}   {$curr_shop.map_name}   {$curr_shop.x}   {$curr_shop.y} 

{/if}


{if isset($craft_items) && count($craft_items)}






{foreach from=$craft_items item=curr_item}
{assign var="sub" value=$_ITEMS_TYPE[$curr_item.type]}






{/foreach}

Можно изготовить из:
{if $curr_item.image}{else} {/if}  {$curr_item.name}   {$curr_item.count} 

{/if}


Автор: Kill Spirit: Дата: 03.31.2011

[FONT="Comic Sans MS"][COLOR="DeepSkyBlue"]Все запросы (mysql_query) надо фильтровать.
mysql_fetch_array[/COLOR][/FONT]

Автор: vixa2012: Дата: 04.01.2011

У меня в скрипте про mysql_query говориться только в функцие GetAll и чо там фильтровать надо это же функция

а если всётаки и есть что фильтровать то напиши скрипт фильтрованый

Автор: vixa2012: Дата: 04.01.2011

Unded Где ты пропал помоги разобраться со скриптом