Создание топ-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? А какова будет нагрузка? Ну как организован онлайн в роторе - пользователь обновляет страницу и происходит запись или обновление записи в таблице. Если время обновления больше нужного, то пользователь онлайн. Но фигзнатsmile

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 только раз в сутки. а от з онлайном будет трудновато... даже незнаю как его написать для всех игроков...
Ну раз в день наверное нормальноsmile смотря как ты хочешь онлайн показывать - или показывать какие именно игроки онлайн, или показывать просто сколько человек онлайн

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