пятница, 27 июля 2012 г.

о сайте да о скриптике MMOTOP

Фух, что-то закрутился я и забыл выложить пару апдейтов, но фанаты сайта не дремлют, бомбардируют асю. Спасибо им за это.
На самом деле, как то неуклюже я состряпал скрипты голосования, даже не сами а парсер. А точнее парсер ммо топа. В сайте он пока стандартный, но я уже начал клепать класс - заготовочку, так сказать, для удобства.

/**
* Класс, читающий статистику, предоставляемую ММО ТОПом по контролю голосования на сервере
* v 0.1
**/
class MMOTop
{
/**
* Получает текстовый файл контента с MMOTOPa
* @content - string адрес файла статистике на ММО ТОПЕ (узнается в пункте меню "статистика" в панеле пользователя на ммо топе)
* @type - int если равен 0, то Сортирует массив по ключам, сохраняя отношения между ключами и значениями от большего к меньшему. В случае с топом, сортирует голоса по дате от старых к новым
* возвращает массив со строками
**/
function get_content($content, $type=0)
{
$contentZ = file_get_contents($content);
$m = explode("\n", $contentZ);
if ($type == 0) krsort($m);
return array_diff($m, array(null));
}

/**
* возвращает массив с голосами формата
* [0] = voter ID [1] = date [2] = IP [3] = Nick(account) [4] = votes
* @ar - массив, возвращенный функцией get_content
* @t - int если, то преобразует дату в время (ф-я time())
**/
function getVoteArray($ar,$t=0)
{
$i=0;
foreach($ar as $id=>$value)
{
$asd=explode(" ",$value);
$r[$i][0]=$asd[0]; // voter ID
if ($t==0) $r[$i][1]=strtotime($asd[1]);
else $r[$i][1]=$asd[1]; // date
$r[$i][2]=$asd[2]; // IP
$r[$i][3]=$asd[3]; // Nick(Account)
$r[$i][4]=$asd[4]; // votes (1 - simple 2 - sms)
$i++;
}
return $r;
}

/**
* Функция принимает @address (string) адрес статистики ммо топа
* возврашает массив [n] = {[0]=voter ID [1]=date [2]=IP [3]=Nick(Account) [4] = votes}
**/
function ReadTop($address)
{
$array = MMOTop::get_content($address);
return MMOTop::getVoteArray($array);
}

function MWCreadTop ($adr, $topnum,)
{

}
/**
* Ищет в массиве @votequery сответсвие @value
* возвращает индекс первого найденного соотвествия
**/
function findmatch($value,$votequery)
{
foreach ($votequery as $id=>$oa)
{
if(trim($oa[0])==$value)return $id;
}
return -1;
}
}

в общем то пока подключив данный скрипт и набрав
$votear = MMOTop::ReadTop(<адрес стаститсики>);
можно получить двумерный массив с проголосовавшими, причем по дефолту он будет по возрастанию даты
в методе  MWCreadTop я подумываю реализовть уже исполнение непосредственно для моего движка 

суббота, 7 июля 2012 г.

не о чем

Не понятно, почему нужно постоянное соперничество.  Споры, соревнования... ох. Очень неприятный момент был сегодня. Написал мне друг, 1 из p4f, дал ссылку на помойку(в ранних постах, если кому интересно могут узнать, что за ресурс). В общем, нехотя открыл я форум, в принципе, уже точно зная к чему все сведется... Суть такова:
столкнулось 2 взгляда на решение 1 проблемы :
1. считает, что следует использовать шифрование встроенное (клиент <->сервер), с использованием Xor, ибо нет смысла изобретать и навешивать что-то когда есть готовый механизм.
2. считает, что использование xor весьма легко можно сломать, и предлагает использовать навесное, но более серьезное и затратное шифрование. Оно более надежно, а  главное, универсально для любых версий и для использования в других проектах в целом.

На самом деле, у меня сразу возникла аналогия со спором: *nix vs win.  Я попытался объяснить своему другу, что в этом споре нету выигрыша, что они придут к 1 и тому же, разными способами. Но его похоже зациклило на том, что произошел переход на личности, и со словами тебе не понять ушел в оффлайн.
Я не знаю, что его там так ослепило, то ли чувство обиды, то ли то, что он прав... Нет терпимости, нет скидок на недостатки оппонента. Возможно, просто повышенная нервозность.
Спор-то вышел не о чем, а кончился опять агрессией и обидами.

Конечно, то, что началось дальше в теме было еще неприятнее. Начался разбор полетов - влезли какие то совершенно непонятные личности со своими доводами по поводу всей системы, в которую в общем-то втачивается шифрование и с яростной критикой, совершенно беспочвенной, так как исходного кода никто не видел. Обвинения в использовании чужих сурсов, резкий троллинг по поводу методов защиты. Самое ведь забавное, что даже до вершины айсберга личность не дошла, ибо в принципе видела только то, что хотела видеть. Откуда столько агрессии у этой личности, я не знаю, да и не интересно. Неприятно стало потому, что человек не знает сколько трудов было положено на это все, сколько перекопано мануалов, мсднов, примеров, сколько потрачено сил на логику. И, буквально, в 1 мгновение кто-то устраивает толлинг. Всегда возникает 1 вопрос: а кто ты, чтобы критиковать или утверждать что-то если ты сам ничего подобного не можешь написать, зато посмотрев 1 день, сумев найти брешь или недоработку утверждать - говно.
Он пока не знает о 2.0 версии, которая   на голову выше предыдущей... Опять будут искать и если найдут еще злее будет реакция? К чему это все? Не понятно.
Вообще, вся комьюнити сгнила. Всем нужна халява и получше, но никто не хочет и пальцем шевелить. Все больше понимаю, что пора отсюда сваливать и чем быстрее, тем лучше.

воскресенье, 1 июля 2012 г.

и в продолжение

Итак, по задумке сделал профы для кс(см. предыдущее сообщение). Сложно. Я начала понимать игростроителей. Много надо учитывать, много надо разрабатывать. Например, самой сложной так и осталась проблема распознание того, что кинули в "топку". Есть ряд идей, но я чувствую, что их недостаточно. Буду импровизировать... 
В последнее время волна раздражения накатывает на отдельных личностей, это не так, то не так, главное что за так и все равно должен! ндесь...