Четверг, 25 Апреля 2024, 10:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 7
  • «
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • »
Форум игроделов » Записи участника » Nosorog [139]
Результаты поиска
NosorogДата: Пятница, 03 Августа 2012, 12:00 | Сообщение # 21 | Тема: Помогите создать вещи в исходнике покелегенды
участник
Сейчас нет на сайте
Если нужен ассоциативный массив использую assoc, числовой row, ну а если захотелось каши, то использую array smile

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Пятница, 03 Августа 2012, 10:59 | Сообщение # 22 | Тема: Реалтайм стратегия. Ресурсы и действия.
участник
Сейчас нет на сайте
Да, JavaScript+MySQL biggrin Я предлагаю для обновления ресурсов использовать php+sql, а для отображения в клиенте счётчик на JS.

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Пятница, 03 Августа 2012, 10:22 | Сообщение # 23 | Тема: Реалтайм стратегия. Ресурсы и действия.
участник
Сейчас нет на сайте
Quote (Vinchensoo)
скорее всего будет тупить при больших объемах БД

Обычно, с увеличением объёма бд, увеличивается объём кошелька, а с большим кошельком можно купить мощную машину, что бы не тупило.
И если запускать крон раз в полчаса, то большого объема не должно быть... Ну это всё теоретически smile


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Пятница, 03 Августа 2012, 09:50 | Сообщение # 24 | Тема: Реалтайм стратегия. Ресурсы и действия.
участник
Сейчас нет на сайте
Quote (Indev)
Скриптом на сервере? И каким именно образом?

Юзер X отправил разведку с планеты А на планету Б в 12:59, записали в базу эти данные...
Пишем класс, который не обрабатывает передачу параметров клиента, а работает с базой. И подключаем его ко всем страницам игры, таким образом, достаточно одного юзера онлайн для обновления всех операций(разведка, постройка зданий и т.п.)
Quote (Indev)
И как все-таки обновлять панель ресурсов?

Quote (TimKruz)
Алгоритм:
1. Игрок сделал запрос на начало работы.
2. Получили время начала в секундах, прибавили N секунд.
3. Полученное время - в базу данных.
4. Если игрок делает запрос о времени или попытку делать что-то ещё, например, обновление страницы с выводящимся таймером (таймер делается банальным обратным отсчётом на JS), запрос на действие, вход в игру (с отображением таймера или статуса действия), - либо считываем и отправляем игроку время, когда работа будет закончена (а JS-скрипт обработает), либо вычисляем оставшееся время и отправляем. Тут замечание:
4.1. Если при проверке выяснится, что время уже прошло - просто удаляем (обнуляем) запись в базе данных, и формируем страницу, соответствующую состоянию простоя (персонаж ничего не делает), либо, если игрок уже запросил действие, осуществляем это действие, т.е. переходим к пункту 1.
4.2. Счётчик на JS, при достижении 0, просто выводит сообщение о завершении работы и, возможно, переводит страницу в состояние простоя (заменяет табличку с таймером на табличку с сообщением о бездействии). При этом запись в базе данных будет удалена только тогда, когда игрок сделает новый запрос, однако по этому поводу беспокоиться не нужно, т.к. по сути эта запись в БД никому не мешает.
4.3. Возможен ещё один вариант удаления записи из БД: если кто-то зайдёт на страницу профиля игрока, на которой отображается статус персонажа. Тогда при следующем запросе от самого игрока ничего удалять не придётся, там и так будет стоять 0.

На счёт времени. В PHP-коде переводить часы в минуты и т.п. тебе в принципе-то и не нужно, ты оперируешь с секундами. Например, если операция длится 1 час - прибавь к текущему времени 3600 и запиши в базу. Скорей всего, ты будешь переводить секунды в часы на JS, а там специальные функции обработки времени есть. Да и в PHP есть, но тебе же не нужны статичные HTML-страницы, нужна хоть какая-то динамика...

Для ясности приведу пример.
1. Игрок нажал на кнопку "рубить дрова 1 час".
2. Сервер получил запрос, считал текущее время - 150000, прибавил к нему 3600, внёс в базу данных статус - "рубка дров" и число 153600.
3. Игрок получил страницу с таймером на JS. Этот таймер каждую секунду вычитает из 3600 единицу, переводит это число в строку типа "Осталось HH:mm" и выводит как текст в блок типа <div> на странице. Возможно дополнение - "Завершение работы в HH:mm, DD MM YYYY".
4. Игрок сделал запрос, когда было только 152000 секунд.
5. Сервер проверил БД: завершение в 153600, а 153600 больше, чем текущее время (серверной машины) - 152000. Он просто отправляет ту же страницу, что и была, но с сообщением "невозможно начать новую работу до завершения старой", при этом оставшиеся секунды сменяются с 3600 на 1600, потому что JS-таймер после перезагрузки страницы будет сброшен.
6. Наступило время X, JS-таймер досчитал до 0, выдал в <div> информацию о завершении и отключился.
7. Во время 154000 игрок снова сделал запрос.
8. Сервер проверил БД: завершение в 153600, однако уже 154000, т.е. 153600 меньше 154000. Сервер удаляет эту запись и отправляет игроку запрашиваемую страницу (выполняет требуемую задачу, возвращаясь к пункту 2).

Как-то так. Все необходимые функции можешь легко найти в справочниках по PHP и JS.

Не зря же я ссылку скинул smile

Добавлено (03.08.2012, 09:50)
---------------------------------------------
А может не стоит изобретать велосипед, а взять на халяву нормальный мотоцикл 2Moons


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Пятница, 03 Августа 2012, 09:16 | Сообщение # 25 | Тема: Реалтайм стратегия. Ресурсы и действия.
участник
Сейчас нет на сайте
Quote (Indev)
На верхней панели отображаются ресурсы. Возможно ли обновлять ее постоянно посредством Аякса?
Также пользователь может отправлять экспедиции, каким образом хранить их в бд и как отсчитывать время рациональнее?

Загляни сюда
Quote (Indev)
Ну есть функция разведки планеты одного игрока другим, как тогда?
Если первый не в сети?

Производить расчеты не для одного игрока, а сразу для всех.


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Четверг, 02 Августа 2012, 06:03 | Сообщение # 26 | Тема: Сервис форумов - какой он должен быть? (Опрос)
участник
Сейчас нет на сайте
Quote (Shadow_Demon)
Что для вас важно простота работы с форумом или множество настроек, фитч (вставка видео, загрузка, прикрепление файлов)?

Простота работы с форумом при наличии множества настроек и фич smile
Quote (Shadow_Demon)
Какие похожие форумы, форумные движки, а так же их возможности вы бы хотели использовать для своего форума?

SMF..., в нем, более или менее, сочетаются: простота, скорость, множество настроек и фич.
Quote (Shadow_Demon)
Какой сервис бесплатных форумов вы хотели бы видеть? Что вы ожидаете от сервиса (в плане возможностей)?

Больше всего хотелось бы отсутствие навязчивой рекламы со стороны владельцев сервиса. А, вообще, хотелось бы увидеть что-то принципиально новое!!!


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Среда, 01 Августа 2012, 17:20 | Сообщение # 27 | Тема: Проблемы в ходе создания игры
участник
Сейчас нет на сайте
Quote (HerrPotapov)
gmmmm, что за жесть... Два запроса к базе, substr и explode против одного запроса к базе и rnd
Вы, ребята, как знаете, но самый адекватный вариант - мой:

Лучше будет 5 запросов к базе, если они выполняются быстрее, чем один. Вот этот тормозной запрос будет занимать меньше времени чем твоя конструкция: ORDER BY RAND() LIMIT


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Среда, 01 Августа 2012, 16:30 | Сообщение # 28 | Тема: Проблемы в ходе создания игры
участник
Сейчас нет на сайте
Quote (HerrPotapov)
Nosorog, а этот вариант, извини конечно но через задницу

Интересно, через что прошел твой пример? smile
Quote (gmmmm)
ORDER BY RAND() LIMIT 1

Этот вариант у меня сразу отпал, т.к. имеет серьезные проблемы с производительностью.
Quote (gmmmm)
shuffle($key)

А вот это, ИМХО, правильное решение.


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Вторник, 31 Июля 2012, 19:34 | Сообщение # 29 | Тема: Помогите создала базу а мне выдает ошибку...
участник
Сейчас нет на сайте
DATETIME DEFAULT NULL

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Вторник, 31 Июля 2012, 19:27 | Сообщение # 30 | Тема: Проблемы в ходе создания игры
участник
Сейчас нет на сайте
Code
$row_count = mysql_result(mysql_query("SELECT MAX(id) FROM users;"), 0);
$result2 = '(SELECT * FROM users WHERE lvl=$lvl_get AND login <> '".$login1."' LIMIT '.rand(0, $row_count).', 1)';
$myrow2 = mysql_query($result2);

Как-то так...


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.

Сообщение отредактировал Nosorog - Вторник, 31 Июля 2012, 19:27
NosorogДата: Вторник, 31 Июля 2012, 06:26 | Сообщение # 31 | Тема: Проблемы в ходе создания игры
участник
Сейчас нет на сайте
Quote (vladboss)
а иногда ничего не выдает

Quote (vladboss)
$rnd = rand(1, mysql_result(mysql_query("SELECT MAX(id) FROM users"),0)); 

Наверное, из базы была удалена какая-то запись, а рандом выбирает именно её.

Добавлено (31.07.2012, 06:26)
---------------------------------------------
Решение здесь


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Вторник, 31 Июля 2012, 00:29 | Сообщение # 32 | Тема: MVC
участник
Сейчас нет на сайте
Да фреймворки упрощают жизнь, да они экономят время, но использование фреймворков в пхп, далеко, не всегда разумно... И тут я замечаю, как начинается холивар biggrin

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Вторник, 31 Июля 2012, 00:05 | Сообщение # 33 | Тема: Помогите пожалуйста с функцией обмена
участник
Сейчас нет на сайте
Одно дело помочь, другое сделать за тебя!

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Понедельник, 30 Июля 2012, 23:59 | Сообщение # 34 | Тема: Ищу хостинг
участник
Сейчас нет на сайте
Конечно важна, но я рассматриваю ВСЕ варианты!
ЗЫ Описал, только ключевые моменты - PHP и другие банальности опустил из списка основных требований


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Понедельник, 30 Июля 2012, 23:33 | Сообщение # 35 | Тема: Ищу хостинг
участник
Сейчас нет на сайте
Quote (anton-gar)
А как насчёт этого?

Quote (Форум Hostinger.ru)
Вы можете отсылать до 100 писем в час (2400 писем в день). Также, Вы не можете отсылать больше чем 30 писем на протяжении 5 минут. Однако, мы разрешаем Вам отсылать 20 писем в минуту используя php функцию mail() и это не входит в ограничения, которые описаны выше.

ОЧЕНЬ неудобно для меня.
Может кто пользовался услугами этого хостинга host.ru... Что скажете?

Добавлено (30.07.2012, 23:33)
---------------------------------------------
Актуально!!!


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Понедельник, 30 Июля 2012, 21:50 | Сообщение # 36 | Тема: MVC
участник
Сейчас нет на сайте
PHP не С# и использовать хренворки нет смысла... ИМХО!
P.S. Это мое мнение, сложившееся из личного опыта!


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Понедельник, 30 Июля 2012, 21:24 | Сообщение # 37 | Тема: Помогите пожалуйста с функцией обмена
участник
Сейчас нет на сайте
Может я чего-то не понимаю, но...
Если народу много, то есть спрос, а если есть спрос, то есть и предложение... +
Если народу много, то и предложений будет тоже много, а это значит, что у покупателя будет из чего выбрать... +
Если у покупателя будет выбор, то конкуренция у продавцов будет расти... +
Можно перечислять, очень долго, все плюсы рынка. А обмен, напрямую между игроками, мне напоминает продажу самогонки в квартире biggrin


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Понедельник, 30 Июля 2012, 19:41 | Сообщение # 38 | Тема: Помогите пожалуйста с функцией обмена
участник
Сейчас нет на сайте
Quote (JumpZ(noob))
этот обмен не работает

Работает если исправить пару ошибок:
Code
if ($p_item_id['count'] >= $col_p) {echo "<script>location.href='game.php?go=items';</script>"; exit;}

Code
// ищем тренера  
  $s_pers = first("SELECT * FROM users WHERE login='%s'",$login_pers);

Добавлено (30.07.2012, 19:41)
---------------------------------------------

Quote (VipCat)
( зы: А стрелочки рядом двойная такая без звезды: Это временная передача покемона ( Например передал покемона другому игроку , а он тебя кинул на бабки там " Сказал вечером отдаст и не отдал деньги " ты заходишь себе в инвентарь нажимаешь вернуть покемона и он возвращается )

(зы2: А стрелочки рядом двойная со звездой там полная передача, покемона отдаешь на всегда и не можешь вернуть он у тебя исчезает )

Тогда уж лучше делать рынок, но это уже другая тема...


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Понедельник, 30 Июля 2012, 18:39 | Сообщение # 39 | Тема: Помогите пожалуйста с функцией обмена
участник
Сейчас нет на сайте
Quote (JumpZ(noob))
Parse error: syntax error, unexpected T_DOUBLE_ARROW in /www/elitno.net/p/o/pokemongames/home/site/include/ite.php on line 175

Quote (Riolu)
if ($p_item_id['count'] => $col_p) {echo "<script>location.href='game.php?go=items';</script>"; exit;}

Code
if ($p_item_id['count'] >= $col_p) {echo "<script>location.href='game.php?go=items';</script>"; exit;}


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
NosorogДата: Понедельник, 30 Июля 2012, 15:59 | Сообщение # 40 | Тема: Проблемы в ходе создания игры
участник
Сейчас нет на сайте
Code
$days = floor($diff / (3600*24));
$hours = floor(($diff - ($days * 3600 * 24)) / 3600);
$minutes = floor(($diff - ($hours * ($days * 3600 * 24))) / 60);
$seconds = $diff % 60;

А использование таймера принципиально? Почему бы, просто, не вывести "Вы закончите работу в 22:05 30 февраля"


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
Форум игроделов » Записи участника » Nosorog [139]
  • Страница 2 из 7
  • «
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг