модуль боя
|
|
vladboss | Дата: Пятница, 25 Февраля 2011, 17:20 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| все привет) хочу узнать как проходит бой...в чем логика как он пишется... кто знает напишите как ообще работает модуль боя что бы можно было по примеру свой написать...
-помог ставь +
АБП production ©
|
|
| |
Emptik | Дата: Пятница, 25 Февраля 2011, 20:43 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| не забудь добавить что такой бой как в легенде полная фигня, цитирую: Quote (Emptik) в браузерных играх у меня бой представляется как в наследии драконов... Quote (Emptik) выбор куда атаковать где ставить блок Quote (vladboss) а мне это кажется абсурдным ............ удар в голову...........блок ноги ....**** какая то P.S. Влад, сори что раскрыл разговор из скайпа
Пропал, найдусь не скоро...
|
|
| |
vladboss | Дата: Пятница, 25 Февраля 2011, 23:01 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| я хочу что бы бой расчитывался по статам... например: я противник атака----47 атака----40 защита----10 защита----8 жизнь----55 жизнь----30 начать бой результат: я победил по статам и выйграл там 5монет и заработал 10 опыта...как то так я это представляю))) а если проиграл то...потерял 5 монет и заработал 0 опыта....... можно и без монет конечно....... я бы хотел узнать когда нажимаешь "начать бой" как все работает...т.е.как происходит бой..ну думаю нормально обьяснил......
-помог ставь +
АБП production ©
|
|
| |
NeZnayu | Дата: Пятница, 25 Февраля 2011, 23:33 | Сообщение # 4 |
__танцуй!__
Сейчас нет на сайте
| Поставь каждому стату коэффициент актуальности. Например: коэф. атаки (кАт) = 1 коэф. защиты (кЗа) = 1 коэф. здоровья (кЗд) = 2 Затем просто посчитай общие статы с учетом актуальности для каждого игрока ОС = Ат*кАт + За*кЗа + Зд*кЗд Ну и наконец сравни ОС обоих игроков и вычти из большего меньшее: max(ОСигрок1,ОСигрок2)-min(ОСигрок1,ОСигрок2)
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
Сообщение отредактировал NeZnayu - Пятница, 25 Февраля 2011, 23:34 |
|
| |
vladboss | Дата: Суббота, 26 Февраля 2011, 00:30 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| мне примеры надо я так не очень понял Добавлено (26.02.2011, 00:30) --------------------------------------------- я никогда не делал "модуль боя" и не имею представления как это пишется и т.д. поэтому прошу детально в примерах простой бой продиманстрируйте....
-помог ставь +
АБП production ©
|
|
| |
NeZnayu | Дата: Суббота, 26 Февраля 2011, 00:30 | Сообщение # 6 |
__танцуй!__
Сейчас нет на сайте
| vladboss, я тебе фактически готовую формулу дал. Напиши что не понятно.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
vladboss | Дата: Суббота, 26 Февраля 2011, 00:36 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| смотри я правильно понял? $player1=$atk+$za+$hp //складываем статы первого игрока $player2=$atk+$za+$hp //второго дальше как определить у кого больше?
-помог ставь +
АБП production ©
|
|
| |
NeZnayu | Дата: Суббота, 26 Февраля 2011, 00:41 | Сообщение # 8 |
__танцуй!__
Сейчас нет на сайте
| Quote (vladboss) смотри я правильно понял? $player1=$atk+$za+$hp //складываем статы первого игрока $player2=$atk+$za+$hp //второго Ты забыл про коэффициенты. Quote (vladboss) дальше как определить у кого больше? Как определить у кого больше.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
vladboss | Дата: Суббота, 26 Февраля 2011, 01:17 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| голова у меня конечно в данный момент плохо работает....щас вот попробую написать Добавлено (26.02.2011, 01:15) --------------------------------------------- вот смотри....... на картинке то что у меня пока имеется это arena1.php //там ты пишешь имя игрока arena2.php //выводит твои статы и противника помоги с кнопочкой обьясни что происходит когда ее нажимаешь ("начать бой") и еще вот эта обработка статов она в отдельном файле идет или как??? -------------------------картинка------------=) Добавлено (26.02.2011, 01:17) --------------------------------------------- это я только что сделал поэтому без Атаки и без Защиты и кнопки нет...это позже сделаю
-помог ставь +
АБП production ©
Сообщение отредактировал vladboss - Суббота, 26 Февраля 2011, 14:56 |
|
| |
BUDARHANAT | Дата: Суббота, 26 Февраля 2011, 02:20 | Сообщение # 10 |
участник
Сейчас нет на сайте
| Насколько реально в браузерной игре ввести дистанцию и точность попадания ?
В этой жизни тот добивается чего-то, кто смог победить в себе свою лень, свои страхи, свою неуверенность, свои слабости и недостатки.
|
|
| |
Dizelist | Дата: Суббота, 26 Февраля 2011, 02:23 | Сообщение # 11 |
частый гость
Сейчас нет на сайте
| у меня такая задумка, может кто подскажет как реализовать... есть параметры сила ловка вынос и (скорость ударов) бой происходит не по принципу нажал ударил а удары наносятся по времени! допустим если у игрока1 скорость ударов = 6 то удар наносится каждые 6 сек а у игрока2 скорость ударов = 3 то он бьет каждые 3 сек! возможно ли такое реализовать? подскажите,если можно в примерах!
|
|
| |
vladboss | Дата: Суббота, 26 Февраля 2011, 02:28 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| вроде получилось спасибо))))))))))))))))) слушай я из базы данных по логину данные вытаскиваю Code $login1=$_SESSION['login']; $result1 = mysql_query("SELECT * FROM users WHERE login='$login1'",$db); Code $login2 = $_GET['login']; //я должен выбрать противника т.е. ввести его имя $result2 = mysql_query("SELECT * FROM users WHERE login='$login2'",$db); , а я хочу чтобы чел вводил уровень например 1 и ему рандомно наугад любого героя из базы данных с первым уровнем выдавало как это сделать??? я пробовал так Code $lvl_get = $_GET['lvl']; //ввожу уровень $result2 = mysql_query("SELECT * FROM users WHERE lvl='$lvl_get'",$db); но не вышло.....помоги пожалуйста Добавлено (26.02.2011, 02:28) --------------------------------------------- Dizelist, имей терпения без обид давайте мне сначала поможем.
-помог ставь +
АБП production ©
Сообщение отредактировал vladboss - Суббота, 26 Февраля 2011, 02:29 |
|
| |
Dizelist | Дата: Суббота, 26 Февраля 2011, 04:28 | Сообщение # 13 |
частый гость
Сейчас нет на сайте
| vladboss, попробуй как то так) Code $lvl_get = 1; //ввожу уровень $result2 = mysql_query("select count(*) from users WHERE lvl='$lvl_get'"); $tmp = mysql_fetch_array($result2);//получаем все id с выбраным лвл $new_result2=rand(1,$tmp[0]); //выбераем id по рандому
Сообщение отредактировал Dizelist - Суббота, 26 Февраля 2011, 05:21 |
|
| |
lvovand | Дата: Суббота, 26 Февраля 2011, 08:32 | Сообщение # 14 |
старожил
Сейчас нет на сайте
| можно сразу в запросе вытаскивать одного игрока $result2 = mysql_query("SELECT * FROM users WHERE lvl='$lvl_get' ORDER BY RAND() LIMIT 1",$db); $tmp = mysql_fetch_array($result2); и все, в $tmp будут данные одного случайного игрока
Разработка и продвижение сайтов. Дизайн
|
|
| |
vladboss | Дата: Суббота, 26 Февраля 2011, 11:25 | Сообщение # 15 |
постоянный участник
Сейчас нет на сайте
| все получилось....огромное вам всем спасибо))) с меня +Добавлено (26.02.2011, 11:15) --------------------------------------------- ой а как сделать что бы себя нельзя было выташить на бой.... ну чтобы против самого себя невозможно бится было .... Добавлено (26.02.2011, 11:25) --------------------------------------------- и еще если я вот ввожу не 1 а 2-ой уровень а его в базе даных нет.....и в результате выводит пустую страницу........ как проверку написать.....если есть такой lvl то выводим ..... если нет то выводим другое я знаю что как то так if ( что сдесь? ) {} else {}
-помог ставь +
АБП production ©
Сообщение отредактировал vladboss - Суббота, 26 Февраля 2011, 11:11 |
|
| |
lvovand | Дата: Суббота, 26 Февраля 2011, 11:27 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| $result2 = mysql_query("SELECT * FROM users WHERE lvl='$lvl_get' AND login <> '".$your_login."' ORDER BY RAND() LIMIT 1",$db); или id <> ".$your_id." условие в общем еще одно в запрос добавь и все
Разработка и продвижение сайтов. Дизайн
|
|
| |
vladboss | Дата: Суббота, 26 Февраля 2011, 11:51 | Сообщение # 17 |
постоянный участник
Сейчас нет на сайте
| да спасибо) Quote (vladboss) 2-ой уровень а его в базе даных нет.....и в результате выводит пустую страницу........ как проверку написать.....если есть такой lvl то выводим ..... если нет то выводим другое а это не подскажете???
-помог ставь +
АБП production ©
Сообщение отредактировал vladboss - Суббота, 26 Февраля 2011, 11:53 |
|
| |
lvovand | Дата: Суббота, 26 Февраля 2011, 12:01 | Сообщение # 18 |
старожил
Сейчас нет на сайте
| например, Code $res = mysql_query(....);
if(!$res){ //если запрос ничего не вернул } else{ //обработка запроса }
Разработка и продвижение сайтов. Дизайн
|
|
| |
vladboss | Дата: Суббота, 26 Февраля 2011, 12:14 | Сообщение # 19 |
постоянный участник
Сейчас нет на сайте
| не выходит.... я набираю 2(такого нет) должно выйти "игрока с таким уровнем нет" но все равно пустая стр. что не так? Code if(!$result2) { echo "игрока с таким уровнем нет"; }else{ тут обработка }
-помог ставь +
АБП production ©
|
|
| |
Assasin | Дата: Суббота, 26 Февраля 2011, 12:30 | Сообщение # 20 |
web-coder
Сейчас нет на сайте
| Quote (lvovand) $result2 = mysql_query("SELECT * FROM users WHERE lvl='$lvl_get' ORDER BY RAND() LIMIT 1",$db); Не советую использовать RAND() - он создает доп. таблицу и с нее берет случайное значение, а это доп. нагрузка на сервер. Если в таблице 10000 записей, то эта функция будет работать примерно 4-7 сек. И получается что Ддос можно сделать с помощью 1 компа, а не бот-нетовской сети. Поэтому используй такую вещь: Code $rnd = rand(1, mysql_result(mysql_query("SELECT MAX(id_user) FROM users"),0)); $query = mysql_query("SELECT * FROM users WHERE lvl= '".$lvl_get."' AND id_user='".$rnd."' LIMIT 1"); $result = mysql_fetch_array($query); По поводу проверки пробуй так: Code if (mysql_num_rows($query) != 0) { return true; //Игрок найден } else { return false; //Игрок не найден }
|
|
| |