{Помогите мне с Браузерной игрой}
|
|
DeadDay | Дата: Суббота, 12 Октября 2013, 20:00 | Сообщение # 1 |
New game Studio
Сейчас нет на сайте
| Всем привет!
Издалека:
Я нет уж и давно занимаюсь игростроем. Хотя им и нельзя назвать, так как учу и практикую HTML и CSS. Для простоты и удобства работаю в Macromedia Dreamweaver 8. Хотя многие меня отговаривают от него, яко бы: «Пиши в обычных редакторах». Мне удобнее работать в Dreamweaver, быстро и удобно. А язык вёрстки я и так учу.
Теперь начал учить язык программирования PHP. Пока мне он нравиться. Для примера уже сделал калькулятор с не сколькими возможностями. И так по не многу.
Задумал сделать игру. Посмотрел практически все движки и конструкторы. Много что понравилось. Но брать я их не хочу, так как не уверен, что смогу, что - то на них сделать. Поэтому задумал проект, Браузерную MMORPG. Не смотрите, на то, что MMORPG. Я хочу сделать очень простую кликабельную игру. На чистом PHP.
Так как я начинающий, прошу мне немного уделить время и терпения. Хочу, конечно же, всё сделать сам, но пока это не реально. Потому что я ещё ученик.
Об игре:
Первое что я хочу сделать – это арену. Для сражения. Второе – это задание. Статичные. Выполнил, получил награду, начинай заново. ( Пример: Убейте 10 врагов.)
Пока всё. Да это то, что я хочу сделать на первых парах.
Как я думаю:
Второе действие, я ещё как то представляю, как сделать. А вот первое нет. Что должно быть в арене?
Арена простая. Противник, кнопка удара и всё.
1. Для начало мне надо вывести все характеристики персонажа и врага. 2. Сделать не большую вёрстку, расположить все элементы. 3. Сам скрипт:
Попробую описать:
1. При нажатии на кнопку, мы передаём значения в формулу, методом POST или GET. 2. Формула рассчитывает, и получаем результат. 3. Функцией UPDATE обновляем Базу Данных с таблицей “users”. 4. Берём данные награды из таблицы “enemy”. 5. И собственно выводим на экран эти данные.
Вот как то так. Если я в чём - то ошибаюсь, поправьте меня не много! Код мне не нужен вообще. Не хочу копировать, ни чему не научусь. Можно так же расписать.
Заранее спасибо!!!!
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
HerrPotapov | Дата: Суббота, 12 Октября 2013, 23:34 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Я бы тебе предложил зарегистрироваться на github.com, создать репозиторий (публичный) и загружать весь свой код туда. Два плюса этого подхода: 1. учишься работать с система контроля версий 2. люди могут смотреть твой код и давать свои советы.
А по поводу сообщения - как насчет пойти и просто попытаться это сделать, а если не получится - спрашивать совета?
Discord: alpotapov#1741
Интервью с разработчиком WarCastle - Читаем и вникаем!
Сообщение отредактировал HerrPotapov - Суббота, 12 Октября 2013, 23:35 |
|
| |
DeadDay | Дата: Воскресенье, 13 Октября 2013, 08:30 | Сообщение # 3 |
New game Studio
Сейчас нет на сайте
| HerrPotapov, А вот по тем пунктам? Я хотя бы правильно думаю!?
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
e-lena | Дата: Воскресенье, 13 Октября 2013, 10:38 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| DeadDay, до того как сделаешь арену, нужно сделать регистрацию игроков с заполнением профиля. Если это не вызывает у тебя затруднений то и арена не вызовет. В PHP везде одно и тоже: отображение страницы -> действие пользователя -> получение сервером GET/POST запроса -> отображение страницы и т.д. Удачи тебе в проекте, буду с интересом следить за развитием.
миру мир
|
|
| |
DeadDay | Дата: Воскресенье, 13 Октября 2013, 11:04 | Сообщение # 5 |
New game Studio
Сейчас нет на сайте
| Нет это уже есть. Сделал самую простую регистрацию. Характеристики все есть. Вот по этому и перешел на арену.
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
Assasin | Дата: Воскресенье, 13 Октября 2013, 20:26 | Сообщение # 6 |
web-coder
Сейчас нет на сайте
| Какого типа бои будут. Игрок нажал "Сражаться" и сразу получает лог боя или же оба игрока сидят и жмут куда ударить и что защитить?
|
|
| |
DeadDay | Дата: Воскресенье, 13 Октября 2013, 21:23 | Сообщение # 7 |
New game Studio
Сейчас нет на сайте
| Нет бой с ботом. Что то типа, да нажал расчитал через цикл. Пока кто ни будь нк умер. Это как бы автобой. Но думаю по этому же принципу сделаю по ударному, в голову, в тело, в ноги. Если можешь помоги. Только не кодом, а вот как я расписал в первом посте.
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
e-lena | Дата: Понедельник, 14 Октября 2013, 00:04 | Сообщение # 8 |
был не раз
Сейчас нет на сайте
| DeadDay Напиши лаконично словами, какой бой тебе нужен. Сейчас совсем не понятно что тебе нужно.
миру мир
|
|
| |
DeadDay | Дата: Понедельник, 14 Октября 2013, 09:27 | Сообщение # 9 |
New game Studio
Сейчас нет на сайте
| Есть кнопка, нажал, вывелся результат.
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
e-lena | Дата: Понедельник, 14 Октября 2013, 09:38 | Сообщение # 10 |
был не раз
Сейчас нет на сайте
| Цитата DeadDay ( ) Есть кнопка, нажал, вывелся результат. Тогда проще некуда, при нажатии на кнопку: 1. Получение сервером данных о начале боя 2. Расчет боя 3. Запись результата в БД 4. Отображение результата пользователю
миру мир
|
|
| |
DeadDay | Дата: Понедельник, 14 Октября 2013, 09:48 | Сообщение # 11 |
New game Studio
Сейчас нет на сайте
| Ну вот, в принципе получил ответ, который и хотел. Добавлено (14.10.2013, 09:48) --------------------------------------------- Только 1 действие не понил не много.
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
e-lena | Дата: Понедельник, 14 Октября 2013, 09:57 | Сообщение # 12 |
был не раз
Сейчас нет на сайте
| Цитата DeadDay ( ) Только 1 действие не понил не много. это клик по кнопке или переход по ссылке "Начать бой"
миру мир
|
|
| |
DeadDay | Дата: Понедельник, 14 Октября 2013, 17:11 | Сообщение # 13 |
New game Studio
Сейчас нет на сайте
| А все спасибо.
### Вообщем поковырялся я с кодом и что то получилось. Но как то работает не очень. Посмотрите пожалуста, может что то испрасить надо, где!? ###
############# Исходные данные: #############
### Сам код: ###
Код <?php // Подключаемся к БД... $host = "localhost"; $login = "DD"; $pass = "123456"; $connect = mysql_connect ("$host","$login","$pass") or die ("Подключение не удалось!" . mysql_error()); $db = mysql_select_db ("battle" , $connect) or die ("Не удалось выбрать БД!" . mysql_error()); // Устанавливаем кодировку... mysql_query ("SET NAMES 'utf8'"); //### $sql = mysql_query("SELECT * FROM user"); $result = mysql_fetch_array ($sql); echo "Имя: " . $result['name']; echo "<br>Здоровье: " . $result['p_hp']; echo "<br>Мак.урон: ". $result['p_at_max']; echo "<br>Мин.урон: " . $result['p_at_min']; echo "<br><br>"; $sql2 = mysql_query("SELECT * FROM enemy"); $result2 = mysql_fetch_array ($sql2); echo "Имя: " . $result2['e_name']; echo "<br>Здоровье: " . $result2['e_hp']; echo "<br>Мак.урон: ". $result2['e_at_max']; echo "<br>Мин.урон: " . $result2['e_at_min']; echo "<form acrion = index.php method = post>"; echo "<br><input type = submit name = submit value = 'Действие'>"; echo "</form>"; if (isset($_POST['submit'])){ if ($result['p_hp'] >= 10){ $bat = $result['p_hp'] - rand( $result2['e_at_min'] , $result2['e_at_max'] );
echo "$bat<br>"; $up = mysql_query ("UPDATE user SET p_hp = '$bat' WHERE `id` =1") or die ("Обновить не удалось!<br>" . mysql_error()); if ($result['p_hp'] <= 10){ echo 'Вы проиграли!!!'; } } if ($result2['e_hp'] >= 10){ $bat2 = $result2['e_hp'] - rand( $result['p_at_min'] , $result['p_at_max'] );
echo "$bat2<br>"; $up2 = mysql_query ("UPDATE enemy SET e_hp = '$bat2' WHERE `id` =1") or die ("Обновить не удалось!<br>" . mysql_error()); if ($result2['e_hp'] <= 10){ echo 'Вы победили!!!';}} } ?>
### Таблица user: ###
### Таблица enemy: ###
############# Начальная страница: #############
####
Теперь при нажатии на кнопку Действие, происходит вот что: Он считае поформуле, обновляет БД. НО!!!! Результат не совпадает.
Нажал ещё раз:
А в БД сохраняются вот что:
Почему так происходит, я не понимаю! Может где то в коде ошибся! Помогите мне с решением этой проблеммы!!!
Заранее спасибо + с меня!!!
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
Сообщение отредактировал DeadDay - Вторник, 15 Октября 2013, 11:04 |
|
| |
Assasin | Дата: Вторник, 15 Октября 2013, 12:29 | Сообщение # 14 |
web-coder
Сейчас нет на сайте
| Получается следующее: 1. Считываются данные с БД и выводятся на экран 2. Затем происходит расчет формулы, которая уменьшает какие то данные НО, 1 пункт выполнился раньше второга, поэтому данные у тебя отличаются
Код <?php // Подключаемся к БД... $host = "localhost"; $login = "DD"; $pass = "123456"; $connect = mysql_connect ("$host","$login","$pass") or die ("Подключение не удалось!" . mysql_error()); $db = mysql_select_db ("battle" , $connect) or die ("Не удалось выбрать БД!" . mysql_error()); // Устанавливаем кодировку... mysql_query ("SET NAMES 'utf8'"); //### $sql = mysql_query("SELECT * FROM user"); $result = mysql_fetch_array ($sql); $sql2 = mysql_query("SELECT * FROM enemy"); $result2 = mysql_fetch_array ($sql2);
$description = ''; if (isset($_POST['submit'])){ if ($result['p_hp'] >= 10){ $bat = $result['p_hp'] - rand( $result2['e_at_min'] , $result2['e_at_max'] );
$result['p_hp'] = $bat;
$description .= "$bat<br>"; $up = mysql_query ("UPDATE user SET p_hp = '$bat' WHERE `id` =1") or die ("Обновить не удалось!<br>" . mysql_error()); if ($result['p_hp'] <= 10){ $description .= 'Вы проиграли!!!'; } } if ($result2['e_hp'] >= 10){ $bat2 = $result2['e_hp'] - rand( $result['p_at_min'] , $result['p_at_max'] );
$result2['e_hp'] = $bat2;
$description .= "$bat2<br>"; $up2 = mysql_query ("UPDATE enemy SET e_hp = '$bat2' WHERE `id` =1") or die ("Обновить не удалось!<br>" . mysql_error()); if ($result2['e_hp'] <= 10){ $description .= 'Вы победили!!!';}} }
echo "Имя: " . $result['name']; echo "<br>Здоровье: " . $result['p_hp']; echo "<br>Мак.урон: ". $result['p_at_max']; echo "<br>Мин.урон: " . $result['p_at_min']; echo "<br><br>";
echo "Имя: " . $result2['e_name']; echo "<br>Здоровье: " . $result2['e_hp']; echo "<br>Мак.урон: ". $result2['e_at_max']; echo "<br>Мин.урон: " . $result2['e_at_min']; echo "<form acrion = index.php method = post>"; echo "<br><input type = submit name = submit value = 'Действие'>"; echo "</form>";
echo $description; ?>
|
|
| |
DeadDay | Дата: Вторник, 22 Октября 2013, 10:58 | Сообщение # 15 |
New game Studio
Сейчас нет на сайте
| Блин, спасибо тебе большое. + как и обещал с меня. За комп сяду и поставлю. Добавлено (22.10.2013, 10:58) --------------------------------------------- Всем привет.
Есть такой вопрос, на правильность хода работы.
При написании того или иного скрипта, я изначально не использую бд. А применяю простые переменные. Добеваюсь, чтоб скрипт был работоспособным и потом только переделаю для базы.
Сам конечно понимаю, что, я делаю 2–ю работу. Но почему то мне так удобнее.
Вот сообственно от сюда и вопрос: делать так как делаю. Или же все таки делать так как правильно. И приучать себя к этому.
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
Assasin | Дата: Вторник, 22 Октября 2013, 23:40 | Сообщение # 16 |
web-coder
Сейчас нет на сайте
| Если у тебя нету еще готовой структуры для будущей таблицы, то делай как сейчас. Я так понимаю "начальные переменные" это будут будущие поля в будущей таблице. Но я обычно создаю таблицу и прописываю ей пару полей, которые точно знаю будут в ней, а потом в ходе дела добавляю новые и изменяю старые.
|
|
| |
DeadDay | Дата: Суббота, 02 Ноября 2013, 15:17 | Сообщение # 17 |
New game Studio
Сейчас нет на сайте
| Assasin, да начальные переменные это будующие поля в таблицы! Добавлено (29.10.2013, 10:12) ---------------------------------------------
Всем привет. Подскажите как лучше сделать бой?!Добавлено (02.11.2013, 15:17) --------------------------------------------- Подскажи в чем проблема: Есть страница, выводится все нормально. Меняешь в бд значения, так же все работает хорошо. Пытаюсь вывести данные, по ид но он почему то ругается: NOTICE: Undefined index: id in ...... on line 38 Вот сама строчка: $result = mysql_query ("select * from o_users where id = `".$_session_ [`id`]."`"); А вот что за ерунда не пойму. Просто вывести это ид, он выводит. А параметры этого ид не выводит, ругается.
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
Yashko3 | Дата: Суббота, 02 Ноября 2013, 20:39 | Сообщение # 18 |
Господин Ведущий
Сейчас нет на сайте
| попробуй так: Код $result = mysql_query ("select * from `o_users` where `id` = '".$_SESSION['id']."'");
старый профиль php <3
|
|
| |
DeadDay | Дата: Суббота, 02 Ноября 2013, 22:14 | Сообщение # 19 |
New game Studio
Сейчас нет на сайте
| Yashko3, Не помогает!
New Games Studio --------------------------------------------------------------------------------------- Проекты: DeadDay - Online --- Мертвый день: Выживание
|
|
| |
Yashko3 | Дата: Суббота, 02 Ноября 2013, 22:28 | Сообщение # 20 |
Господин Ведущий
Сейчас нет на сайте
| значит сессион айди не определена (пустая)
старый профиль php <3
|
|
| |