Суббота, 20 Апреля 2024, 18:24

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » rayne [4]
Результаты поиска
rayneДата: Вторник, 07 Октября 2008, 05:34 | Сообщение # 1 | Тема: Требуется совет по PHP и/или MySQL
был не раз
Сейчас нет на сайте
Ув. GC-Vic,
Я уже сам разобрался, но всё равно спасиб вам, что хоть не вольно но подтолкнули на мысль. biggrin
Пару раз перечитав свой предыдущий пост, сам допетрил. Оказалось всё на много проще, чем казалось изначально.
Вот что получилось после литра пива (!для народу!, мож кому в будущем пригодится):

При регистации записывается время регистрации и начальное количество ресурса:
<?php
$connect = mysql_connect("localhost", "login", "password"); //"login" и "password" - для MySQL
mysql_select_db("test", $connect); //"test" - название БД
$date = time(); //время при регистрации
$res = "800"; //кол-во ресурса при регистрации
$result = mysql_query("INSERT INTO time_test (date, res) VALUES ('$date', '$res')"); //записываем всё это удовольствие в БД
echo $date." ".$res; //это для себя, чтоб в БД не лазить лишний раз
?>

При каждом входе в игру:
<?php
$connect = mysql_connect("localhost", "login", "password"); //"login" и "password" - для MySQL
mysql_select_db("test", $connect); //"test" - название БД
$id = "1"; //порядковый номер аккаунта
$result = mysql_query("SELECT date, res FROM time_test WHERE id='$id'", $connect); //вытаскиваем из БД время последнего посещения и кол-во рсурсов на тот момент, в массив
$x = mysql_fetch_array($result); //массив заносим в переменную

$old_date = $x['date']; //выделяем из массива дату (внимание! дата в таком формате 123143324442)
$current_date= time(); //берём дату на данный момент
$date = $current_date - $old_date; //разница между датой в данный момент и последним посещением страницы
$res= $x['res'] + $date * "2"; //($x['res'] - количество ресурсов при последнем посещении) + (разница $date)*(количество ресурсов, добываемое за секунду)
echo $date." ".$res."<br>"; //тоже для себя

mysql_query("UPDATE time_test SET date='$current_date', res='$res' WHERE id='$id'"); //записываем в данный аккаунт дату на данный момент и получившееся количество ресурсов "$res"
echo $current_date." ".$res;
?>

ЗЫ: TLT, а вам бы я посоветовал немного по уважительней относиться к людям. Тем более, что администрация (и не только в форумах) в первую очередь должна быть образцом поведения.

rayneДата: Понедельник, 06 Октября 2008, 22:02 | Сообщение # 2 | Тема: Мне нужен конструктор на русском языке
был не раз
Сейчас нет на сайте
Arones, +1!
rayneДата: Понедельник, 06 Октября 2008, 19:29 | Сообщение # 3 | Тема: Требуется совет по PHP и/или MySQL
был не раз
Сейчас нет на сайте
По правде говоря даже и спорить с вами не собираюсь, т.к. за советом или помощью пришёл, да и с кукиз опыта 0. Я знаю только что огейм использует кукиз. В общем это не суть важно.

Суть в том, как сделать так, чтоб в отсутствие игрока на сайте, вобще капали ресурсы.
Т.е. для этого, каждый отрезок времени (пусть в 1 сек) запись в ячейке таблицы должна изменятся на какой-то параметр "Х" (вычисляемый по формуле(количество ресурса/сек)). при том, в довесок, в работе должны быть только веб эмуль и бд, если возможно.
Руки на месте, голова вроде тоже, только никак немогу понять как сделать постоянное изменение числа в таблице бд.

Ато получилось из экспериментов такое (юморинка):
Регится игрок, заходит в игру, вроде всё ок.
Закрывает броузер, через какое то время открывает и начинает с того места, где остановился.
Т.е. логаут сделал(или просто закрыл броузер), через день заходит снова, а количество ресурсов такое же как в то время, когда вышел.

Проще говоря, скрипт в эксперименте работал только тогда, когда игрок на сайте. wacko

Есть конечно одна мысль, но без понятия как её осуществить (да и наверное это излишняя сложность, а хочется как всегда по проще).......
Мысль состоит в том, чтоб сделать привязку к дате/времени.

>>>А верней, взять дату+время регистрации и привязать к ней начальное количество ресурса "К" (по дэфолту).

>>>Затем, сделать так, чтоб при посещении страницы запускался скрипт, который возьмёт дату+время посещения, выберет дату+время регестрации и посчитает количество секунд, а затем из расчёта производительности шахты в сек, посчитает количество ресурсов за этот промежуток + начальное (что хранится в таблице).

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

Результат всего этого на теории: при каждой загрузке страницы будет изменяться количество ресурса, в зависимости от времени и уровня шахты. biggrin

Но это всё будет довольно грамостко и сложно. dry И без пол литра не разберёшся....
Вот и ищу возможность упростить это дело. Хотя бы способ по проще подсчитать в милли сек. время с последней загрузки страницы конкретным ip/пользователем, чтоб не связываться с датой (очень легко в ней запутаться). wacko

ЗЫ: Извините за внушительный текст.

Сообщение отредактировал rayne - Понедельник, 06 Октября 2008, 19:43
rayneДата: Понедельник, 06 Октября 2008, 07:55 | Сообщение # 4 | Тема: Требуется совет по PHP и/или MySQL
был не раз
Сейчас нет на сайте
Игра - клон огейм'а
Не коммерческий.

Пару месяцев назад решил наклепать огейм (достали с рекламой и донатом, да и для поднятия опыта по php, JS, MySQL и динамическим сайтам - супер). Знаю, знаю в сети вывалены готовые тоннами, но учиться так учиться.

Кароче,
Задумка: всё то же, но только без использования Cookies.
Проблема: как сделать такую феньку, чтоб ресурсы продолжали постоянно капать даже в то время, когда игрока нет на сайте.
Сама суть проблемы: скрипт не должен использовать кукиз для хранения инфы, а только БД и пхп.

В пхп<->мускул не последний лунь, но уже очень долго парюсь и нигде не смог найти ничего, даже близко похожего.

Форум игроделов » Записи участника » rayne [4]
  • Страница 1 из 1
  • 1
Поиск:

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