Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как устроен скрипт боя?
 
 автор: ZEROoo   (25.08.2006 в 13:18)   письмо автору
 
 

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

   
 
 автор: DEM   (25.08.2006 в 13:38)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 13:18)
 

В БК скрипт боя навернео строчек на 500 (не меньше)... просто когда подаётся заявка она добавляется в БД и там будет поля кто против кого и кто куда бьёт (если принимает значение например поле atack1 - 1, то значит первый игрок бьёт в голову, если atack1 - 2 в туловище и т.д.) и с арсчётами там вообще полная мурня, пока не забивай себе этим голову... И почему именов БК? Игр по БК полно, и есть недавно открывшиеся и я думаю админы будут рады сообщить тебе как там работает их система (ну или если игра только-только открылась можешь там наянтся программистом ))))))

   
 
 автор: ZEROoo   (25.08.2006 в 13:41)   письмо автору
 
   для: DEM   (25.08.2006 в 13:38)
 

нет мы делаем коечто совершено новое этого ешё никогда небыло а бк как пример она самая известная мы не делаем ачередной клон бк это совершенно другое

   
 
 автор: DEM   (25.08.2006 в 13:43)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 13:41)
 

Ну тогда удачи, но говорю черьёзно, расчёты боя в БК очень геморойные, да и тем более там вроде многое написано на perle и возможно там намного всё сложнее с боями

   
 
 автор: ZEROoo   (25.08.2006 в 13:43)   письмо автору
 
   для: DEM   (25.08.2006 в 13:38)
 

тоесть типа игрок обрашяется к таблицы смотрит куда его ударили а заносит урон в своё таблицу что типо да ??

   
 
 автор: Unkind™   (25.08.2006 в 13:49)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 13:43)
 

:) Не играл ни разу в подобные игры, но представляю о чем вы говорите...Можно сделать так:
Когда первый пользователь ударяет второго, то в скрипте вычисляется (случайным образом или в зависимости от уровня, характеристик не знаю) куда он попал и какой урон. У второго пользователя отнимается столько-то жизней, а в эфир заносится что-то типа:
"Первый ударил Второго в плечо и отнял 5% жизни"

   
 
 автор: ZEROoo   (25.08.2006 в 13:52)   письмо автору
 
   для: Unkind™   (25.08.2006 в 13:49)
 

это понятно просто как зделать обшение между двумя пользователями с помошью одного скрипта ???

   
 
 автор: ZEROoo   (25.08.2006 в 13:50)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 13:43)
 

если ктонибудь может расказать подробнее то расскажите родина вас не забудет :))))

   
 
 автор: DEM   (25.08.2006 в 13:51)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 13:43)
 

Ну вот как я бы делал: Сначало идёт проверка сколько жиззней у игрока, если 0 или меньше, вывести "ВЫ ПРОИГРАЛИ", если больше нуля, то вывести форму (радиалбутоны), игрок выбирает по одному радиалу и нажимает кнопку УДАРИТЬ, скрипт сканирует то что он выбрал, например вот удары:

<input name="a1" type="radio" value="В голову" checked>
<input name="a2" type="radio" value="В туловище" checked>
<input name="a3" type="radio" value="В пояс" checked>
<input name="a4" type="radio" value=" то что ниже пояса" checked>

А потом скрипт проверяет что он выбрал и заносит в БД (в поле atack1 (если атаковал первый игрок)) например a3, потом атк же проверяется блок, а потом просто проверяется, если удар первого игрока и блок второго стоят в a3, то заблокировать удар, если же нет, то нанести удар. После прощёта всего этого всё очищается и начинается заново... Тут конечно нету проверки, если ловкость столько-то и т.д. и т.п. попадёт ли игрок, сколько урона нанесёт и т.д. Но как основа я удмаю сгодится

   
 
 автор: ZEROoo   (25.08.2006 в 13:53)   письмо автору
 
   для: DEM   (25.08.2006 в 13:51)
 

как это в бд хранить я честноговоря таблицу себе представить не магу

   
 
 автор: DEM   (25.08.2006 в 14:00)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 13:53)
 





CREATE TABLE `player1` (
  `login` varchar(30) NOT NULL default '',
  `battle_id` varchar(30) NOT NULL default '',
  `atack1` varchar(30) NOT NULL default '',
  `block1` varchar(5) NOT NULL default '',
  KEY `player` (`player`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;



CREATE TABLE `player2` (
  `login` varchar(30) NOT NULL default '',
  `battle_id` varchar(30) NOT NULL default '',
  `atack2` varchar(30) NOT NULL default '',
  `block2` varchar(5) NOT NULL default '',
  KEY `player` (`player`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


 


Пусть например в первой таблице будет игрок подавший заявку, а во второй принявшик, и вроде всё норм... То есть по баттле_ид проверяешь игроков которые находятся в одном бое, по логину, ники этих игроков в про атак1, атак2 и блок1, блок2 я уже говорил выше

   
 
 автор: ZEROoo   (25.08.2006 в 14:07)   письмо автору
 
   для: DEM   (25.08.2006 в 14:00)
 

а может всё в адну таблицу??

   
 
 автор: ZEROoo   (25.08.2006 в 14:20)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 14:07)
 

я чето не понял для каждого боя сваю таблицу саздавать????

   
 
 автор: ZEROoo   (25.08.2006 в 14:21)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 14:20)
 

или просто таблица с записями кто куда ударил после кждого удара запись с id моего боя меняется типа я ударил туд противник туда итд

   
 
 автор: ZEROoo   (25.08.2006 в 14:55)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 14:21)
 

кароче всё равно не понимаю до конца если можете обьясните дураку ну не понимаю я до конца как это происходт мля!!!!!!

   
 
 автор: DEM   (25.08.2006 в 17:56)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 14:21)
 

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


$sql1 = "INSERT INTO team1(  login , 
  battle_id , 
  atack1, 
  block1  
) VALUES ('$login1',
  '$battle_id' , 
 '0', 
  '0')";
  
$result1 = mysql_query($sql1);


И то же самое для таблицы team2

ЗЫ, коненчо можно запихнуть всё в одну БД, что-то вроде этого выйдет


CREATE TABLE `battle` ( 
  `login1` varchar(30) NOT NULL default '', 
  `login2` varchar(30) NOT NULL default '', 
  `battle_id` varchar(30) NOT NULL default '', 
  `atack1` varchar(30) NOT NULL default '', 
  `block1` varchar(5) NOT NULL default '', 
  `atack2` varchar(30) NOT NULL default '', 
  `block2` varchar(5) NOT NULL default '', 
) ENGINE=MyISAM DEFAULT CHARSET=cp1251; 




Можно еще добавить IP1 и IP2 и если они равны например вывести сообщение "СРАЖАТЬСЯ НА ОДНОМ АЙПИ ЗАПРЕЩЕНО!!"

   
 
 автор: ZEROoo   (25.08.2006 в 13:56)   письмо автору
 
   для: DEM   (25.08.2006 в 13:51)
 

спасибо я начинаю понимать как это зделать но не даканца

   
 
 автор: Football   (25.08.2006 в 18:12)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 13:56)
 

Если не до конца, то вообще не советую делать.
Делая онлайн игру надо самое главное все олично представлять как все будет происходить. На этом я прогорел, когда недавно хотел написать что-то подобное. Хотя если только так, для себя, для души...

   
 
 автор: DEM   (25.08.2006 в 18:36)   письмо автору
 
   для: Football   (25.08.2006 в 18:12)
 

Человек же написал "МЫ ДЕЛАЕМ ИГРУ, НО ОНА НЕ БУДЕТ ПОХОЖА НА БК", значит он делает как минимум с еще одним человеком, но вот я с вами согласен, если полностью не представляешь всё что будет в игре, лучше пока не браться за это... тем более в игре есть еще куча задач которые нужно решить, пока лучше сделать их, а уж потом братья за бом ( ну или пусть их делпет человек который это всё хорошо понимает и знает)

   
 
 автор: Football   (25.08.2006 в 20:53)   письмо автору
 
   для: DEM   (25.08.2006 в 18:36)
 

Тоже согласен с вами. ИМХО любую игру онлайн, когда делаешь надо:
1) Продумать все характеристики (если она РПГ)
2) Продумать все формулы
3) Начинать делать игру только после этого

Самое интересное, что когда я её делал, то мне это уже надоело на 2 пункте. Если все не продумать, то будет только хуже. Переписывать придеться все заново. Но как говориться: "Человек учитится на своих ошибках". Я уже научился на этом, поэтому теперь пишу форум, причем очень постепенно, что бы не надоедало пистаь однообразный код.

   
 
 автор: DEM   (25.08.2006 в 21:06)   письмо автору
 
   для: Football   (25.08.2006 в 20:53)
 

Ну лично я пока сделал каркас движка (игрового), а терь проектирую, до формул с боем пока не добрался, но думаю друга заставить сесть и подумать, пусть тож что нить хорошее сделает )))

ЗЫ. Если делаете большой проект, всегда делайте проектирование! Коненчо вы тогда напишите больше, но во первых - это будет не РНР код, а во вторых - тогда надо будет просто знать унжные функции и всё, потом протсо перенести с теоретической части (из вашего проектирования) в практическую (в РНР код)

   
 
 автор: Axxil   (26.08.2006 в 11:54)   письмо автору
 
   для: Football   (25.08.2006 в 18:12)
 

Google тоже начинался как университетский проект в Стенфорде, чуть ли не курсовая :)
Просто нужно верить в то что ты делаешь и любить это дело.

Хотя согласен. Он-лайн игра явно не для граждан первого-второго года обучения PHP
Это как раз случай когда без грамотного и скурпулёзного проектирования не обойтись никак.
Если конечно есть желание создать действительно МНОГОпользовательсктй проект.

   
 
 автор: cheops   (26.08.2006 в 15:46)   письмо автору
 
   для: Axxil   (26.08.2006 в 11:54)
 

С другой стороны игра и не один год делается... постоянно обрастает возможностями, мирами или сюжетами... Самый верный способ образовать группу из нескольких человек, которым самим интересно в игру будет играть, а по мере работы проекта - он обрастёт сторонними игроками, да и сами разработчики опыта поднаберутся. Тут лучше действовать по принципу - глаза боятся, руки делают.

   
 
 автор: Axxil   (26.08.2006 в 17:15)   письмо автору
 
   для: cheops   (26.08.2006 в 15:46)
 

Это верно. То же БК поначалу игроки делали за игровые кредиты.
Там всё грамотно было сделано. Написали движок, привлекли игроков и продали проект.
Чем не схема :)

   
 
 автор: ZEROoo   (26.08.2006 в 21:20)   письмо автору
 
   для: Axxil   (26.08.2006 в 17:15)
 

вобшем на бк это похоже не будет сюжет чють чють другой и ссистема игры другая а попо поводу того что надо понимать как происходит бой и все другие процесы так я вот и пытаюсь ронять я в принуепе и до этого и понимал но рещил проконцультироватся вдруг кто лучше знает или идеии хорошие есть вот и на пхп пишу уже года два так что исходники чюжие читаю в принципе не напрягаясь но не делать же игру на основе чюжих идей и работ темболе то что мы хотим зделать ешё небыло у нас есть своя изюминка я о ней умолчю типа комерческая тайна :))))))))))
пишите еше очень интерестно почитать :))

   
 
 автор: ZEROoo   (26.08.2006 в 21:21)   письмо автору
 
   для: ZEROoo   (26.08.2006 в 21:20)
 

ntcn

   
 
 автор: DEM   (26.08.2006 в 22:23)   письмо автору
 
   для: ZEROoo   (26.08.2006 в 21:20)
 

Ну если бой будет обсолютно другой, чем в бк, то я думаю там будет обсолютно другая система, ты хотя бы скажи на что похожа, потому что во многих играх другая обсолютно система боя и там всё сделано по другому...

   
 
 автор: ZEROoo   (27.08.2006 в 09:38)   письмо автору
 
   для: DEM   (26.08.2006 в 22:23)
 

не я думаю схема будет похожая тоесть работать будет также.....

   
 
 автор: Giga   (25.08.2006 в 22:04)   письмо автору
 
   для: ZEROoo   (25.08.2006 в 13:18)
 

Есть такая игра в wap как Амулет Дракона, система боя там немного другая. Но может сгодиться? Вот скрипт http://visavi.net/files/dosug/amulet_v0.47.php

   
 
 автор: DEM   (25.08.2006 в 22:16)   письмо автору
 
   для: Giga   (25.08.2006 в 22:04)
 

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

Я посмотрел этот скриптик, как я понял человек хочет делать игру на МУСКУЛЕ (MySQL), а поскольку создание игры не начинается с создания боёв, я думаю ему придётся уже переделывать дофиига, а еще легче просто начать заново

   
 
 автор: Football   (26.08.2006 в 11:09)   письмо автору
 
   для: DEM   (25.08.2006 в 22:16)
 

Да и не только потому что "не практично".
Новичку довольно сложно разбираться в чужих скриптах.
Если он захочет что-то сделать своё в этом скрипте он попросту не сможет найти куда это засунуть.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования