Создание топ-100 и списка онлайн игроков
1.
ubnt (27.01.2013 / 17:04)
привет всем. имею немного опита в php программирование (онлайн игри, соц. сеть), но никуда их не запускал (создал только для себя, для проверки способностей). и сейчас мне уже хочется создать какойто серйозний проект - например онлайн многопользовательскую игру. но для етого мне еще нужно узнать какието подробности:
- как создать рейтинг игроков (топ 100) - сортировка за количеством денег - база данних (на файлах, ники игроков записани у db_player.db ( структура такая
ник 1 игрока|количество денег1 игрока/n
ник 2 игрока|количество денег 2 игрока/n
и так далее
).
for($i=0; $i<count($all_player);$i++){
// здесь ми должни отсортировать...
// но как ето зделать - просто не понимаю
}
- как создать такое, чтоби показивало, кто из игроков есть на сайте, и подщитать количество игроков на сайте.
Помогите! Пожалуйста
P.S. извините, что плохо с написанием русского язика - просто я из Украини, и у меня украинськая клавиатура...
2.
Constantin_Logan (27.01.2013 / 17:07)
база данних на
файлах? Да ещё и в онлайн игре? Да вы, ... извращенец!
3.
ubnt (27.01.2013 / 17:22)
мне на файлах понятнее.
или mysql лутше?
4.
ubnt (27.01.2013 / 17:54)
но как же ето организировать? рейтинг и онлайн?
5.
ubnt (27.01.2013 / 19:09)
уже сортировать у топ-100 умею, но осталось еще список онлайн и их количество.
вот код топ-100
<?php
$file = file("data.txt");
/// структура файла:
/// 1|nick1
/// 45467|nick2
/// 457|nick3
/// 76|nick4
for($k=0;$k<count($file);$k++){
$m = explode("|",$file[$k]);
$arr[] = Array();
$arr[$k] = $m[0]; /// создали список с значением денег
}
arsort($arr, SORT_NUMERIC); /// сортируем деньги
reset($arr);
while(list($key, $val) = each($arr)){
$pl = explode("|",$file[$key]);
$pl_nick = $pl[1]; ///розбиваем список файлов, и достаем строку, из которой возмем ник...
echo "<a href='#'>$pl_nick</a> $val<br>"; /// виводим
}
?>
6.
ubnt (27.01.2013 / 19:41)
помогите еще з онлайном игроков?
7.
Zдешний (27.01.2013 / 19:49)
Копать файлы, чтобы вывести 100? А какова будет нагрузка? Ну как организован онлайн в роторе - пользователь обновляет страницу и происходит запись или обновление записи в таблице. Если время обновления больше нужного, то пользователь онлайн. Но фигзнат
8.
ubnt (27.01.2013 / 20:12)
7.
Zдешний, и я также думал... но как грамотно все вивести у браузер? нам надо знать не только одного пользователя состояние, а узнать всех, но показать только онлайн
Добавлено через 03:43 сек.
7.
Zдешний, нагрузка не будет очень большая, если я планирую обновлять значение топ-100 только раз в сутки. а от з онлайном будет трудновато... даже незнаю как его написать для всех игроков...
9.
ubnt (27.01.2013 / 20:22)
7.
Zдешний, но может только узнавать какое именно количество игроков на сайте... делать ето по ип, или по авторизациям - уму не постежимо...
10.
ubnt (27.01.2013 / 20:52)
упс, мой предедущий код рейтинга топ-100 показивал рейт всех игроков...
вот справний код
<?php
$top = 100;
$file = file("data.txt");
for($k=0;$k<count($file);$k++){
$m = explode("|",$file[$k]);
$arr[] = Array();
$arr[$k] = $m[0];
}
arsort($arr, SORT_NUMERIC);
reset($arr);
for($i=0;$i<count($arr) && $i<$top;$i++){
list($key, $val) = each($arr);
$pl = explode("|",$file[$key]);
$pl_nick = $pl[1];
echo "<a href='#'>$pl_nick</a> $val<br>";
}
?>
11.
Zдешний (27.01.2013 / 20:57)
ubnt (27 Января 2013 / 22:12)
7. Zдешний, и я также думал... но как грамотно все вивести у браузер? нам надо знать не только одного пользователя состояние, а узнать всех, но показать только онлайн
Добавлено через 03:43 сек.
7. Zдешний, нагрузка не будет очень большая, если я планирую обновлять значение топ-100 только раз в сутки. а от з онлайном будет трудновато... даже незнаю как его написать для всех игроков...
Ну раз в день наверное нормально
смотря как ты хочешь онлайн показывать - или показывать какие именно игроки онлайн, или показывать просто сколько человек онлайн
12.
ubnt (27.01.2013 / 21:14)
11.
Zдешний, просто количество авторизованих игроков. как ето зделать?
13.
ubnt (28.01.2013 / 12:29)
помогите слелать онлайн
14.
ZaRiN (28.01.2013 / 12:32)
серьезный проект и онлайн игра на файлах вещи несовместимые, так что разбирайся с БД или забудь об этой идеи, т.к. зря только время потратишь
15.
ubnt (30.01.2013 / 00:15)
14.
Жадный лепрекон, попробувал mysql - понравилось. ну а как здесь поступить з топ-100 и онлайном?
16.
Петр (30.01.2013 / 07:49)
Например,
http://phpeasystep.com/phptu/9.html
17.
ubnt (30.01.2013 / 10:29)
16.
Im-ieee, подойдет. еще переработаю на показ только авторизованих пользователь
18.
ubnt (30.01.2013 / 12:20)
какая должна бить струтура баз данних (таблиц) для создания пользовательськой переписки (написать комуто сообщение, посмотреть свои, история)
19.
ubnt (30.01.2013 / 12:52)
уже знаю...
20.
ubnt (30.01.2013 / 15:43)
вопрос решен. mysql рулит.
URL:
https://visavi.net/topics/36429