Перейти к публикации

Внедрение скрипта в движок


Рекомендованные сообщения

Доброго времени суток. Есть скрипт

<?php

#Сервер

$data_server = 'worldoftanks.ru';

#Версия API

$api_version = 1.9;

#Никнэйм

$nickname = '05865086';

###########################################################3

#Соединится

$fp = fsockopen($data_server, 80, $errno, $errstr, 30);

if($fp)

{

$out = "GET /community/accounts/search/?type=table&_=".time().rand(100,999)."&offset=0&limit=1&order_by=name&search=".$nickname."&echo=3&id=accounts_index HTTP/1.0\r\n";

$out.= "Accept: text/html, */*\r\n";

$out.= "User-Agent: Mozilla/3.0 (compatible; easyhttp)\r\n";

$out.= "X-Requested-With: XMLHttpRequest\r\n";

$out.= "Host: ".$data_server."\r\n";

$out.= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

$res='';

while (!feof($fp))

{

$res.= fgets($fp, 128);

}

fclose($fp);

}

#Обрезать лишнее преобразовать в объект

preg_match_all('/\{(.*?)\}$/', $res,$json_temp);

$json_temp = '{'.$json_temp[1][0].'}';

$json = json_decode($json_temp);

$js = $json->request_data->items;

#Получить первый ID в списке

foreach ($js[0] as $k=>$v)

{

if(preg_match('/^'.$nickname.'$/is',$v))

{

foreach ($js[0] as $key=>$value)

{

if($key == 'id') $id = $value;

}

}

}

#Если ID получен загрузить страницу

if($id)

{

$data = file_get_contents('http://'.$data_server.'/uc/accounts/'.$id.'/api/'.$api_version.'/?source_token=Intellect_Soft-WoT_Mobile-unofficial_stats');

}

#Преобразуем в объект

$n = json_decode($data);

$count_battles = $n->data->summary->battles_count; //Боев

$count_damage = $n->data->battles->damage_dealt; //Дамаг

$count_kill = $n->data->battles->frags; //Уничтожено

$count_search = $n->data->battles->spotted; //Обнаружено

$count_zaxv = $n->data->battles->capture_points; //Захват

$count_hits = $n->data->battles->hits_percents; //Попадания

$count_save = $n->data->battles->dropped_capture_points; //Защита

$count_wins = $n->data->summary->wins; //Побед

$count_live = $n->data->summary->survived_battles; //Выжил

$date_reg = $n->data->created_at; //Регистрация

$date_update = $n->data->updated_at; //Обновлено

$user_nickname = $n->data->name; //Ник

$t = $n->data->vehicles; //Танки

#Уровни танков

foreach ($t as $key=>$value)

{

foreach ($value as $k=>$v)

{

if($k == 'level') $tank_level[] = $v; //Уровни танков

if($k == 'battle_count') $tank_battles[] = $v; //Количество боев

}

}

#Массив с танками по уровням

$total = array(1=>0,2=>0,3=>0,4=>0,5=>0,6=>0,7=>0,8=>0,9=>0,10=>0);

$total_level = array(1=>0,2=>0,3=>0,4=>0,5=>0,6=>0,7=>0,8=>0,9=>0,10=>0);

for($i=0; $i<count($tank_level); $i++)

{

if($tank_level[$i] == 1) $total_level[1] += $tank_battles[$i];

if($tank_level[$i] == 2) $total_level[2] += $tank_battles[$i];

if($tank_level[$i] == 3) $total_level[3] += $tank_battles[$i];

if($tank_level[$i] == 4) $total_level[4] += $tank_battles[$i];

if($tank_level[$i] == 5) $total_level[5] += $tank_battles[$i];

if($tank_level[$i] == 6) $total_level[6] += $tank_battles[$i];

if($tank_level[$i] == 7) $total_level[7] += $tank_battles[$i];

if($tank_level[$i] == 8) $total_level[8] += $tank_battles[$i];

if($tank_level[$i] == 9) $total_level[9] += $tank_battles[$i];

if($tank_level[$i] == 10) $total_level[10] += $tank_battles[$i];

}

######################################################################

$middle_level = 0;

for($i=1;$i<=10;$i++)

{

$middle_level += $total_level[$i] * $i;

}

$middle_tank_level = $middle_level / $count_battles; #Средний уровень танка

$middle_damge = $count_damage / $count_battles; #Средний дамаг

$middle_destr = $count_kill / $count_battles; #В среднем уничтожено

$middle_det = $count_search / $count_battles; #В среднем обнаружено

$middle_cap = $count_zaxv / $count_battles; #В среднем захвачено

$middle_def = $count_save / $count_battles; #В среднем защита

$proc_wins = ($count_wins / $count_battles) * 100; #Процент побед

$percent_lived = $count_live / $count_battles * 100; #Процент выживаемости

$battles_in_day = $count_battles / ((time() - $date_reg)/86400); #Боев в день

#Формула расчета эффективности

$eff = $middle_damge * (10/($middle_tank_level+2)) * (0.23+2*($middle_tank_level/100)) + ($middle_destr * 250) + ($middle_det * 150) + (log(($middle_cap+1),1.732) * 150) + ($middle_def * 150);

#Получить первый ID в списке

foreach ($js[0] as $k=>$v)

{

//if(preg_match('/^'.$nickname.'$/is',$v))

//{

foreach ($js[0] as $key=>$value)

{

if($key == 'id') $id = $value;

}

//}

}

echo "Мой процент побед = $proc_wins<br>";

echo "Мой процент выживаемости = $percent_lived<br>";

echo "Боев в день = $battles_in_day<br>";

echo "Мой средний дамаг = $middle_damge<br>";

echo "Боев проведено = $count_battles<br>";

echo "Средний уровень танков = $middle_tank_level<br>";

echo "В среднем уничтоженно = $middle_destr<br>";

echo "В среднем обнаруженно = $middle_det<br>";

echo "В среднем захвачено = $middle_cap<br>";

echo "В среднем защита = $middle_def";

?>

собственно не так важо, подскажите в какие файлы движка нужно внести изменения что бы движок нормально запускал скрипт (я не прошу большей информации чем обязана мне дать тех.поддержка). Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Если скрипт запускаешь отдельно http://apelsin-ko.com/wot2.php (то есть он работает), но когда тот же самый скрипт прописываешь в main.tpl вот таким образом

[aviable=main]{include file="wot.php"}[/aviable]

[not-aviable=main]{content}[/not-aviable]

он не работает, то есть не может связаться, делать запросы, что то блокирует, пример - http://apelsin-ko.com/ что может его блокировать, куда нужно что прописать что бы открыть доступ.

Ссылка на сообщение
Поделиться на других сайтах

файл надо положить в папку engine/modules а в майн тпл запускать так {include file="engine/modules/wot.php"}

Ссылка на сообщение
Поделиться на других сайтах

файл надо положить в папку engine/modules а в майн тпл запускать так {include file="engine/modules/wot.php"}

Сделал как вы сказали, результат тот же, http://apelsin-ko.com/ то есть его так же нет

Изменено пользователем Apelsin-ko
Ссылка на сообщение
Поделиться на других сайтах

полезная вещь, но это замена мыла на шило, скрипт теперь можно вставить в main.tpl ,в тегах пхп и он будет отображаться точно так же как и отображался раньше include, скрипт работает, что то не дает ему делать запросы, возможно где то надо еще прописать что то, может что в .htaccess

Уважаемая тех. поддержка вопрос на прямую связан с вашими обязанностями, дайте ответ.

Ссылка на сообщение
Поделиться на других сайтах

скрипт работает, что то не дает ему делать запросы, возможно где то надо еще прописать что то, может что в .htaccess

Уважаемая тех. поддержка вопрос на прямую связан с вашими обязанностями, дайте ответ.

Вынужден ваш огорчить, это не в компетенции службы тех. поддержки, потому что неработает ваш скрипт, а не скрипт DLE, и DLE ему ничем не мешает. Поиск ошибок в ваших скриптах в компетенцию службы поддержки не входит. Служба поддержки оказывает помощь только по работе DLE и работе стандартных функций DLE http://dle-news.ru/support.html а не по вашим написанным вами скриптам.

Ссылка на сообщение
Поделиться на других сайтах

скрипт работает, что то не дает ему делать запросы, возможно где то надо еще прописать что то, может что в .htaccess

Уважаемая тех. поддержка вопрос на прямую связан с вашими обязанностями, дайте ответ.

Вынужден ваш огорчить, это не в компетенции службы тех. поддержки, потому что неработает ваш скрипт, а не скрипт DLE, и DLE ему ничем не мешает. Поиск ошибок в ваших скриптах в компетенцию службы поддержки не входит. Служба поддержки оказывает помощь только по работе DLE и работе стандартных функций DLE http://dle-news.ru/support.html а не по вашим написанным вами скриптам.

скрипт полностью работоспособен, я не прошк разбираться в скрипте но наглядно http://apelsin-ko.com/wot2.php работает, а если его внедряешь в шаблон то он не обрабатывается, или не делает запросы, или чем то блокируется, проблема в движке. Почему вы не оказываете должную поддержку, от вас я ничего дельного не услышал кроме отговорок по неработоспособности скрипта, который полностью исправен, за что я оплачивал расширенную лицензию не пойму, дюди не являющиеся тех. поддержкой и то привели примеры и доводы о возможно неправильных путях, привели свои варианты решения проблемы.

Исходя из этого могу сказать что помощи от вас весомо никакой.

Ссылка на сообщение
Поделиться на других сайтах

Apelsin-ko, не порите чушь, с проблемами сторонних скриптов ТП не занимается.

Техническая поддержка оказывает помощь только по вопросам касающимся непосредственно PHP скрипта DLE
Ссылка на сообщение
Поделиться на других сайтах

скрипт полностью работоспособен, я не прошк разбираться в скрипте но наглядно http://apelsin-ko.com/wot2.php работает

Это полная ерунда. Ваш скрипт написан неправильно. Хотите знать почему ваш скрипт не работает? Потому что в вашем скрипте вместо строчки:


$api_version = 1.9;
[/CODE] должна быть строчка
[CODE]
$api_version = "1.9";

И после этого удивительным образом заработает ваш скрипт как в DLE при подключении через {include file="wot.php"} в шаблоне, так и без него. Это чистый баг вашего скрипта. В PHP есть такое понятие как типы переменных, а вы это в своем скрипте даже не учитываете.

Исходя из этого могу сказать что помощи от вас весомо никакой.

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

Ссылка на сообщение
Поделиться на других сайтах

скрипт полностью работоспособен, я не прошк разбираться в скрипте но наглядно http://apelsin-ko.com/wot2.php работает

Это полная ерунда. Ваш скрипт написан неправильно. Хотите знать почему ваш скрипт не работает? Потому что в вашем скрипте вместо строчки:


$api_version = 1.9;

должна быть строчка

$api_version = "1.9";

И после этого удивительным образом заработает ваш скрипт как в DLE при подключении через {include file="wot.php"} в шаблоне, так и без него. Это чистый баг вашего скрипта. В PHP есть такое понятие как типы переменных, а вы это в своем скрипте даже не учитываете.

Исходя из этого могу сказать что помощи от вас весомо никакой.

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

Большое человеческое спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...