Javascript-форум (https://javascript.ru/forum/)
-   Я не знаю javascript (https://javascript.ru/forum/ya-ne-znayu-javascript/)
-   -   Бой как в mmorpg (https://javascript.ru/forum/ya-ne-znayu-javascript/3840-bojj-kak-v-mmorpg.html)

irka07 28.05.2009 15:30

Бой как в mmorpg
 
Здравствуйте!
Я начинающий писатель текстовых квестов в жанре фэнтези. Знаю html достаточно, чтобы сверстать несложную страницу и сайт. В свою работу хочу включить поединки между героем и монстрами. Пробовала разобраться с javascript, но без особых успехов :wacko:
Может кто поможет мне в этом сложном деле:help:
Надо скрипт, чтобы бой был как в mmorpg. Например как в БК, но проще. Есть у героя 2 параметра: сила и жизнь. Сила - это количество урона противнику, Жизнь - количество здоровья. При попадании в монстра, от его количества жизней отнимается число, а при угадывании его удара, от жизни героя ничего не отнимается. ну и т.д. пока у кого-нибудь не станет жизнь равно 0 и тогда переход на новую страницу сайта (или появление ссылки для переходя). И еще чтобы лог боя при каждом ходе высвечивался в textarea. И снабдить комментариями, что где надо будет поменять, чтобы можно было наделать много монстров.
Ну я думаю Вы играли в БК, и знаете что к чему и как. Ну вот и все. Надеюсь проблема раскрыта исчерпывающе.
Заранее всем откликнувшимся спасибо.:victory:

ZoNT 28.05.2009 16:29

можно грабить корованы?

irka07 28.05.2009 16:39

не поняла вопроса

AzriMan 28.05.2009 17:49

что такое БК? The Burning Crusade?

Gvozd 28.05.2009 21:56

Цитата:

Сообщение от irka07
не поняла вопроса

Стыдно не знать про корованы
Цитата:

Сообщение от AzriMan
что такое БК? The Burning Crusade?

Бойцовский Клуб
Скажу честно: ты ничего не потерял, что не знаеш об этой игре
я даже тебе завидую немного, хотя я и играл в нее всего день
irka07,
Ирина, к сожалению ваша задача должна решатся как на клиенте, так и на сервер. Это раз.
Во вторых, все запросы типа "сделайте мне" стоит задавать в разделе работа.
Здесь не пишут за вас скрипты, а помогают самим написать.
Если вы готовы сесть, и учить JS, а затем самостоятельно с некоторой нашей помощью написать скрипт, то мы вам поможем. Иначе- в Раздел Работа.

irka07 29.05.2009 08:18

Спасибо всем.

irka07 29.05.2009 10:08

Gvozd вот нашла подходящий скрипт, камень-ножницы-бумага.
<html>

<head>

<title>JAVA SCRIPT</title>

<script type="text/javascript">
 var us = 0;
 var co = 0;

//
function jsknb(user)
{
 pc = "Компьютер выбрал ";
 win = ". Вы выиграли!";
 lose = ". Вы проиграли!";
 draw = ". Ничья!"
 var res;
 if (Math.random()<0.4) { res = "камень"; }
  else if (Math.random()<0.7) { res = "ножницы"; }
   else  { res = "бумага"; }

 if (user=="no") {alert("Сделайте выбор!");}

switch (res)
{ 
case "камень": switch (user)
             {
		case "камень":  {alert(pc+res+draw);break;}
		case "ножницы": {co++;alert(pc+res+lose);break;}
		case "бумага":  {us++;alert(pc+res+win);break;}
             }; break;

case "ножницы": switch (user)
             {
		case "камень":  {us++;alert(pc+res+win);break;}
		case "ножницы": {alert(pc+res+draw);break;}
		case "бумага":  {co++;alert(pc+res+lose);break;}
             }; break;

case "бумага": switch (user)
             {
		case "камень":  {co++;alert(pc+res+lose);break;}
		case "ножницы": {us++;alert(pc+res+win);break;}
		case "бумага":  {alert(pc+res+draw);break;}
             }; break;
}
document.knb.txt1.value = "Компьютер: "+co;
document.knb.txt2.value = "Игрок: "+us;

}
</script>


<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
</head>

<body onLoad="showtime()" bgColor="#d2d2d2">



<form name="knb" value="no">
  <INPUT TYPE="radio" name="choice" onClick="document.knb.value = 'камень'">камень
  <br>
  <INPUT TYPE="radio" name="choice" onClick="document.knb.value = 'ножницы'">ножницы
  <br>
  <INPUT TYPE="radio" name="choice" onClick="document.knb.value = 'бумага'">бумага
  <br><br>
  <input type="button" name="button1" value="Играть!" onClick="jsknb(document.knb.value)">
  <br><br>Счет:<br>
  <INPUT TYPE="text" name="txt1" value="Компьютер: 0">
  <br>
  <INPUT TYPE="text" name="txt2" value="Игрок: 0">
</form>

</body>

</html>


Подскажете как переделать так, чтобы количество побед "Х" отминусовывалось от заданного числа "У" и чтобы когда станет "У"=0 у одного из игроков, то игра заканчивалась? То есть, чтобы счет шел на убывание

x-yuri 29.05.2009 10:33

отминусовывалось: -
числа: var
когда: if
игра заканчивалась: document.body.innerHTML = 'game over!<br>а теперь можно идти грабить корованы';

irka07 29.05.2009 11:20

-->

irka07 29.05.2009 15:59

уфф... ну подскажите куда и какое if вствить в скрипт, чтобы проверить значения противников равные 0, и перейти к следующему документу. Не получается у меня:cray:

x-yuri 29.05.2009 16:47

для начала надо отступы расставить, а то действительно не видно куда его вставлять

irka07 30.05.2009 08:48

-->

x-yuri 30.05.2009 09:02

а как же корованы :cray:

irka07 30.05.2009 09:09

Караваны... как-нибудь в другой раз :p

irka07 31.05.2009 20:07

Продолжаем тему.
Вот теперь подумываю как реализовать, чтобы значение us или co присваивалось другое, которое например было введено при начале игры (при распределении параметров героя). В начале игры, игрок распределяет n-сумму очков на параметры. И при переходе к поединку, значение жизни us или co бралось из "базы". Для этого наверное необходимо будет скрипт отдельный с записанными в нем данными делать как файл.js?

x-yuri 31.05.2009 20:41

еще раз - ничего не понял, кроме того, что us и co - это здоровье (скажем так)

irka07 31.05.2009 21:49

Параметр жизни задается вначале игры, каждый раз монстры разные (жизни их тоже). Хотелось бы не делать кучу html страничек и на каждой прописывать жизни героя и монстров. Допустим вначале сам игрок задает на сколько его герой здоров(присвоили) значение N(жизней) герою. Потом в процессе выполнения квеста, пройдя по скажем 10 страничкам, попадает на страничку поединка и учитывается его жизни N, которые он задал ранее.
Так вот, где прописать это значение (параметры героя), чтобы оттуда его колличество жизней включить в поединок

Gvozd 31.05.2009 22:45

irka07,
объясните зачем вы это делаете?
надеюсь вы же не собираетесь это запускать в свет
как я уже говорил делать такую задачу на клиенте как миниму глупо
всю логику надо пеерносить на сервер, оставив пользователю только уведомления, и возможность выбирать удары
прошел удар или нет должно вычислятся на сервере
и количество жизней также.
Иначе вашу игру будут взламывать все кому не лень
короче то, ч какого бока вы подошли к задаче не тянет на что-то что можно запустить и показать кому-то ни было. максимум на пробу пера в JS

irka07 31.05.2009 22:57

вы играли когданибудь в текстовые квесты, или книги-игры? Сервер тут ненужен, это не онлайн игра - в понимании "онлайн" игры. А лишь маленькое приложение к интерактивному литературному произведению. Чтобы глазки у читателя(игрока) расслабились от напряженного чтения с монитора компьютера. Да и онлайн-версию, можно скомпилировать в электронную книгу и играть в оффлайне.

Gvozd 31.05.2009 23:26

теперь мне ваша задуска более понятна
да, тут сервер и вправду не нужен
и пожалуй, у большинства людей возникают проблемы такого рода с глазами
Полагаю хранение жизней лучше всего сделать с пощью cookie-сов

x-yuri 31.05.2009 23:30

Gvozd, не думаю, что к этой задаче нужно относиться серьезно: читеришь - ну и ССЗБ :haha:

irka07, здоровье можно хранить в сессии на сервере или в cookies на клиенте
работа с cookie описана в cookies (там есть функции, которыми можно пользоваться)

Gvozd 31.05.2009 23:39

x-yuri,
теперь я уже вижу что она не так серьезна, как мне показалось вначале

irka07 01.06.2009 08:09

Gvozd с чего-бы мне быть серьезной:) я с яваскриптами воопще только начала знакомиться и далеко не все еще понимаю даже в работе того что сейчас делаю:D

x-yuri хм... предлогаете еще и переводчицей стать? :blink:

x-yuri 01.06.2009 08:23

нет предлагаю скопипастить оттуда функции. Перевести нужно только их названия и параметры ;)


Часовой пояс GMT +3, время: 19:45.