Вторник, 26 Ноября 2024, 19:53

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
модуль боя
vladbossДата: Пятница, 25 Февраля 2011, 17:20 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
все привет)
хочу узнать как проходит бой...в чем логика как он пишется...
кто знает напишите как ообще работает модуль боя что бы можно было по примеру свой написать...


-помог ставь +

АБП production ©
EmptikДата: Пятница, 25 Февраля 2011, 20:43 | Сообщение # 2
почетный гость
Сейчас нет на сайте
не забудь добавить что такой бой как в легенде полная фигня, цитирую:
Quote (Emptik)
в браузерных играх у меня бой представляется как в наследии драконов...

Quote (Emptik)
выбор куда атаковать где ставить блок

Quote (vladboss)
а мне это кажется абсурдным ............ удар в голову...........блок ноги ....**** какая то

P.S. Влад, сори что раскрыл разговор из скайпа unsure


Пропал, найдусь не скоро...
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; //Игрок не найден
}

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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