Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/951: Рейтинг темы: голосов - 951, средняя оценка - 4.62
7 / 7 / 0
Регистрация: 20.04.2009
Сообщений: 45

Принцип создания браузерной игры

22.04.2009, 23:47. Показов 178500. Ответов 351
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С чего начинаются писаться браузерные игры? С регистрации игрока?
6
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.04.2009, 23:47
Ответы с готовыми решениями:

Создание браузерной игры...
Я хочу создать браузерную игру, какие типы программирования мне нужно знать? Добавлено через 36 секунд что бы создать движок игры?

Клиент для браузерной игры.
Я планирую сделать клиент для игры. С чего начать понятия не имею.

Написать бота для браузерной игры
Здрасте. я ничего не знаю про web програмирование. Однако поставил цель написать бота для браузерной игры. суть такова что нужно...

351
 Аватар для deny89
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 10
03.07.2011, 00:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от NEOSYS Посмотреть сообщение
За много ) 4 года прошло еще не все успел потратить

Клиент сам нашелся



553-353-073

Но не факт, что буду отвечать. Я в аську редко смотрю
а как можно с тобой связаться ...хочется спросить о скрипте который ты переделал)

Добавлено через 4 часа 16 минут
Цитата Сообщение от deny89 Посмотреть сообщение
а как можно с тобой связаться ...хочется спросить о скрипте который ты переделал)
ответь в аську)))
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
14.08.2011, 13:38
я вот застрял на создании боя. Сделать как в БК - могу, но хочется как в apeha к примеру. Искал готовые скрипты чтобы посмотреть строение - не нашел. В основном не пойму как реализовать сетку и скрипт рассчета перехода в определенную клетику. Тоесть если персонажи к примеру переходят в 1 клетку (четвером) кто из них перейдет и как переместить других в соседние клетки... И вот режим планирования хода... К прмиеру перешел из одной клетки в другую, ударил, перешел в другую, ударил... Отправил... Тут вот в чем вопрос, как все действия то записать в базу? переходов и ударов может быть сотня. Неужеле каждый переход и удар до сохранения записывать в базу? База умрет. Тогджа в каком виде писать в базу для дальнейшей обработки хода после завершения планирования?

Может есть у кого какие нить разработки боя или идеи?
0
 Аватар для afganec
31 / 31 / 11
Регистрация: 30.06.2009
Сообщений: 148
22.08.2011, 11:51
Если идет бой между персами - так или иначе неоходимо хранить инфу о состоянии игроков - как например я узнаю, сколько у тебя осталось hp, маны и прочего?
Следовательно необходима синхронизация на уровне БД.
И не думайте, что сервер умрет. Сервера специфичные машины, которые и задумываются под дикую нагрузку.

Каждое действие должно отражаться в таблицах хотя бы на момент боя. По окончании хватит и лога.
Я делал так - каждое действие имело свой уникальный в рамках таблицы id - при бое в таблицу(каждый бой имел уникальный id в рамках своей таблицы) заносились id игроков, id события(удар, блок, каст, крит и тд и тп) и в зависимости от этого id синхронизировалось состояние игроков - жизнь, мана и все, что с персом связано.

Удачи вам.
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 13
13.09.2011, 18:08
Всем доброго времени суток. Не поленился и прочитал все 19 страниц темы. Очень много интересного сумел найти для себя. всем спасибо за предоставленную информацию.

Теперь немного о себе: Я программист, разрабатываю браузерную онлайн игру без использования FLAS технологий. Движок игры пишу сам. Концепция игры уже создана (на разработку ушло 2 года). По сути моей целью является создать браузерную онлайн игру нового поколения, так как сегодняшние браузерные онлайн игры, скучные, однообразные и мало функциональные.

К чему я это все: Я набираю группу энтузиастов, которые согласятся помогать в разработке онлайн игры на добровольной основе (без оплаты). как только проект выйдет и начнет получать прибыль (планируемый выход реализ версии лето 2013 год бетта версии конец 2012 начало 2013) все кто на тот момент останутся в проекте и зарекомендуют себя при желании смогут остаться в проекте уже на платной основе (получать деньги) Щас создается портал на котором будут вестись разработки этого проекта и ряда других.

Кто нужен:
1) Люди для заполнения и базы данных
2) люди для создания эквипа (коего будет раз в 60 больше чем в любой браузерке)
3) сценаристы
4) дизайнеры
5) кодеры (знание PHP, JavaScript, HTML. Желательно работа с сабвершен или GIT)
6) Тестировщики
7) энтузиасты
на данный момент в команде пока 5 человек.

Ответы на вопросы:
1) вопрос по поводу того как рассчитать то в какой момент времени будет тот или иной персонаж в бою. Был приведен пример с броском гранаты. Все очень просто. Создаешь систему единиц времени игровых или систему ОД и относительно ее просчитываешь. Например на броско гранаты в точку в которой НАХОДИЛСЯ игрок2 надо потратить 6 единиц игрового времени (условные единицы) а на то чтобы игроку2 переместиться на 1 клетку надо потратить 4 единицы игрового времени. Таким образом получаем что когда упадет граната игрок2 будет стоять рядом с клеткой поражения. По данной логике можно строить любую боевую систему. Кстати в ТЗ похожая система реализованная на флеше.

Больше не отвеченных вопросов не нашел. Если будут другие вопросы задавайте, а лучше присоединяйтесь к разработке. Пока со мной можно связаться через скайп: mefise_ray или асю 430776665. Сам я из Рязани, приветствуется работа на удаленке. В скором времени выложу адрес сайта сообщества разработки на который вы можете зайти и принять участие в том или ином проекте.

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

Забыл еще сказать, при добавлении в асю или скайп прислать первое сообщение по заданному ниже шаблону.
contacts.add_me(UIN,"NIK NAME","group");

Не спрашивайте зачем просто пришлите.
UIN - ваш номер аси или имя в скайпе
NIK NAME - Ник с которым вы будите отображаться в моем списке контактов
group - группа в которую вы хотели бы добавиться. В качестве группы ОБЯЗАТЕЛЬНО указать "DevelopmentCL" если вы хотите добавиться чтобы задать вопрос тогда в качестве группы укажите "HELP"

Спасибо за внимание
0
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
14.09.2011, 13:04
Хм..
Удачи вам.
Сам я с вами работать не буду (занят другим проектом) ну на любые вопросы отвечу.
И ещё. Зря вы от флешь отказались. Вконтакте любит флешь а вконтакте это платформа для продажи игры. Если кто то хочет заработать то делают для вконтакте.
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 13
14.09.2011, 17:57
Во-первых в контакте мелкие проекты как правило. я не к этому стремлюсь.
Во-вторых у меня есть вполне обоснованные причины почему именно PHP без флеша, причем причины это как экономического, так и стратегического характера. Озвучивать их во всеуслышанье не стану, без обид, тек то будут со мной работать со временем поймут мою задумку и думается оценят ее.
0
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
14.09.2011, 18:20
эти мелкие проекты отлично зарабатывают. Флешь более динамичны.
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 13
14.09.2011, 18:29
динамику можно создать и без флеша. А у флеша огромное количество недостатков. На счет заработка проектов не спорю, мелкие проекты в контакте получают неплохую прибыль, но у меня немного другая концепция и политика, отличная от флеш игр в контакте и обычных браузерных игр, тем самым планируется получить неплохой доход.

Этот спор также бесполезен как спор о том чем лучше пользоваться Windows или Linux. Если основываться на среднестатистических данных то вы правы, но вы не знаете проводимую мной политику и ту информацию которую знаю я. Поэтому давайте отложим эти бесполезные споры и займемся решением насущных проблем =)
0
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
14.09.2011, 21:37
Цитата Сообщение от MefiseRay Посмотреть сообщение
оэтому давайте отложим эти бесполезные споры и займемся решением насущных проблем =)
я согласен. Можешь ли побольше рассказать об игре?
Она экономическая?
0
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 8
15.09.2011, 09:50
Прочел почти все страницы. Довольно таки интересная тема. Тоже делаю браузерку.

Вопрос: можно ли без js сделать в <input type="radio"> обработчик, а именно при выборе одного из нескольких, чтобы динамически(тут же) в диве отображалсь определенная картинка, заданная выбранному инпуту?

Как вытянуть оттуда value или id, чтобы задать например сюда: img/'.id.'.jpg и в дальнейшем использовать в бекграунде дива?
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 13
15.09.2011, 13:16
Цитата Сообщение от Wonderslav Посмотреть сообщение
Прочел почти все страницы. Довольно таки интересная тема. Тоже делаю браузерку.

Вопрос: можно ли без js сделать в <input type="radio"> обработчик, а именно при выборе одного из нескольких, чтобы динамически(тут же) в диве отображалсь определенная картинка, заданная выбранному инпуту?

Как вытянуть оттуда value или id, чтобы задать например сюда: img/'.id.'.jpg и в дальнейшем использовать в бекграунде дива?
к сожалению нет. PHP серверный язык, поэтому для обработки потребуется обращение к серверу. Для динамической обработки только JS или хорошо написанная CGI или что-то вроде этого. ОСновная страница я так понимаю либо PHP ибо HTML?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.09.2011, 13:30
В любой браузерке нужна регистрация. А при регистрации принято отправлять на емелю письмо с активационной ссылкой. Так вот, у меня ни какие письма не проходят, почтовый сервак просит атворизацию. Что делать?
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 13
15.09.2011, 13:34
Цитата Сообщение от Dzhekson6000 Посмотреть сообщение
я согласен. Можешь ли побольше рассказать об игре?
Она экономическая?
Жанр фентези. Обставлена как летопись целого мира. В игре используется искусственный интеллект. Механика максимально приближена к реальности: погодные явления, постоянное воздействие мира на игрока, постоянное воздействие игрока на мир. Все в динамике. Реальная экономическая система. Возможность арендовать магазины, заниматься перевозкой караванов, грабежом караванов, купле продажей, бартерной торговлей и даже стать мэром города. Нелинейные квесты с несколькими вариантами завершения от которых зависит дальнейшее развитие событий. масса квестов игроков (система наемников, когда оставляется какой то заказ в гильдии наемников игроком и цена оплаты, а наемники берутся за заказ, и по выполнении получают от этого игрока вознаграждение.) очень мощная система боя основанная на тактике. Множество скилов, более 4 начальных классов, 3 уровня классов, каждый уровень делится на 2 подкласса. таким образом всего около 50 классов. Множество статов которые можно регулировать по мере прокачки, куча неосновных статов которые влияют на разные аспекты. Огромное количество шмоток. максимальный уровень 99. расширяемый мир (в реализе планируется выпустить 3 страны по 3 города в каждом + 2 острова, всего более 3000 локаций) вид при перемещении сверху. неплохая графика, разгрузка сервера за счет параллельной работы серверов. Встроенная база знаний. система протекта. Мародерство. Свадьбы, покупка недвижимости... В общем все как в реальности, только в игре. Все это подкреплено красивой графикой, отличной музыкой и ОГРОМНЫМ функционалом, который не сравним даже с функционалом мморпг. Ну это если в крации о проекте. =)

Добавлено через 2 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
В любой браузерке нужна регистрация. А при регистрации принято отправлять на емелю письмо с активационной ссылкой. Так вот, у меня ни какие письма не проходят, почтовый сервак просит атворизацию. Что делать?
во-первых пришлите вашу функцию отправки чтобы было видно где косяк. Во вторых если вы отправляете с помощью php то русский текст он не понимает. ему надо прописать еще пару функций для настройки кодировки и т.д. опубликуйте кусок кода с отправкой а я подумаю что можно придумать.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.09.2011, 13:36
А я хочу морскую РПГ. Парусники с пушками, на мачтах флаги, должны быть острова, а в море - живность. Но не походовую же делать, а в реалтайме не знаю даже, как обновлять экран. Не раскажите, с чем аджакс едят? И как в браузере сделать псевдо 3D? Логин с паролем, кстати, на почте без кирилицы вообще.
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 13
15.09.2011, 13:52
Цитата Сообщение от taras atavin Посмотреть сообщение
А я хочу морскую РПГ. Парусники с пушками, на мачтах флаги, должны быть острова, а в море - живность. Но не походовую же делать, а в реалтайме не знаю даже как обновлять экран.
есть пара способов:

1) делаем динамические забросы php при выполнении каких либо действий или раз в 10с например. К сожалению это будет нагружать сервер.

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

3) делаем возможность перемещения на большие расстояния, то есть, игрок ставит курсор в ту точку куда ему надо плыть и нажимает на кнопку. с сервера получается обновленная информация об окружающей информации (во время движения информация переодически обнволяется) и выполняется отрисовка движения например через JS. Причем если по расчетам ваш путь пересекается или проходит рядом с путем другого корабля находится примерная точка в которой возможно пересечение и при прохождении мимо этой точки вызывается скрипт который предлагает либо убежать, либо напасть. дальше если один выбрал напасть другой убежать бросаются кости. если оба выбрали один вариант то он и выбирается. + при перемещении с некоторым шансом может начаться бой. система боя пошаговая, тут никуда не деться или как в ТЗ.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.09.2011, 14:20
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
$Query = "DROP TABLE `users`;";
$Result = mysql_query($Query);
$Query = "CREATE TABLE `users` (id INT UNSIGNED NOT NULL AUTO_INCREMENT,
login VARCHAR (256) NOT NULL UNIQUE, password VARCHAR (1024) NOT NULL, email VARCHAR (64) NOT NULL, active TINYINT NOT NULL, code INT UNSIGNED NOT NULL, PRIMARY KEY(id));";
$Result = mysql_query($Query);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{//if ($_SERVER["REQUEST_METHOD"] == "POST")
 if (isset($_POST["Login"]))
 {//if (isset($_POST["Login"]))
  $Login = addslashes($_POST["Login"]);
 }//if (isset($_POST["Login"]))
 else
 {//if (isset($_POST["Login"])) else
  $Login = "";
 }//if (isset($_POST["Login"])) else
 if (isset($_POST["Password"]))
 {//if (isset($_POST["Password"]))
  $Password = addslashes($_POST["Password"]);
 }//if (isset($_POST["Password"]))
 else
 {//if (isset($_POST["Password"])) else
  $Password = "";
 }//if (isset($_POST["Password"])) else
 if (isset($_POST["Email"]))
 {//if (isset($_POST["Email"]))
  $Email = addslashes($_POST["Email"]);
 }//if (isset($_POST["Email"]))
 else
 {//if (isset($_POST["Email"])) else
  $Email = "";
 }//if (isset($_POST["Email"])) else
}//if ($_SERVER["REQUEST_METHOD"] == "POST")
else
{//if ($_SERVER["REQUEST_METHOD"] == "POST") else
 $Login = "";
 $Password = "";
 $Email = "";
}//if ($_SERVER["REQUEST_METHOD"] == "POST") else
echo "<form action=\"\" method=\"post\">\n";
echo "<table border=1 cellspacing=0 bordercolor=\"black\">\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Login:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"text\" name=\"Login\" value=\"";
echo $Login;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Password:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"password\" name=\"Password\" value=\"";
echo $Password;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>e-mail:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"text\" name=\"Email\" value=\"";
echo $Email;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td colspan=2 valign=\"top\">\n";
echo "<center><input type=\"submit\" value=\"Войти\"></center>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</form>";
if ($Email != "")
{//if ($Email != "")
 if (filter_var($Email, FILTER_VALIDATE_EMAIL))
 {//if (filter_var($Email, FILTER_VALIDATE_EMAIL))
  $Query = "INSERT INTO `users` SET login='".$Login."', password='".$Password."', email='".$Email."', active=0, code=RAND()*2147483647;";
  $Result = mysql_query($Query);
  $Id = mysql_insert_id();
  $Query = "SELECT * FROM `users` WHERE (id='".$Id."');";
  $Result = mysql_query($Query);
  $Count = mysql_num_rows($Result);
  if ($Count > 0)
  {//if ($Count > 0)
   $Code = mysql_result ($Result, 0, "code");
   $Link = "http://".$domain."/activation.php?id=".$Id."&code=".$Code;
   $Message = "<p>Вы получили это письмо, так как ".$Email." указан в качестве e-mail при регистрааии на ".$domain.". <h1><center>Ваши данные на сервере</center></h1><p>Login:".$Login."</p><p>Password:".$Password.".</p><p>Для активации перейдите по ссылке: <a href=".$Link.">".$Link."</a>.</p>";
   mail($Email, "Регистрация", $Message, "codesite@yandex.ru");
  }//if ($Count > 0)
  else
  {//if ($Count > 0) else
   $Query = "SELECT * FROM `users` WHERE (login='".$Login."');";
   $Result = mysql_query($Query);
   if (mysql_num_rows($Result)>0)
   {//if (mysql_num_rows($Result)>0)
    echo "<p>Такой login уже есть.</p>";
   }//if (mysql_num_rows($Result)>0)
   else
   {//if (mysql_num_rows($Result)>0) else
    echo "<p>Не известная ошибка.</p>";
   }//if (mysql_num_rows($Result)>0) else
  }//if ($Count > 0) else
 }//if (filter_var($Email, FILTER_VALIDATE_EMAIL))
 else
 {//if (filter_var($Email, FILTER_VALIDATE_EMAIL)) else
  echo "<p>Проверьте e-mail!</p>";
 }//if (filter_var($Email, FILTER_VALIDATE_EMAIL)) else
}//if ($Email != "")
Добавлено через 2 минуты
Цитата Сообщение от MefiseRay Посмотреть сообщение
2) на счет пошаговой игры, я так понимаю вы имеете в виду что-то вроде героев? к счастью, использую php нам не надо ждать пока походит другой игрок. Поэтому разрешаем передвигаться на одну клетку и при каждом перемещении или действии проверяем обновление информации на сервере.
корабль игрока бьёт другой корабль, стоя на месте, к нему подходит третий корабль, который останется невидимым для игрока, пока его корабль не двинется.

Добавлено через 3 минуты
Цитата Сообщение от MefiseRay Посмотреть сообщение
3) делаем возможность перемещения на большие расстояния, то есть, игрок ставит курсор в ту точку куда ему надо плыть и нажимает на кнопку. с сервера получается обновленная информация об окружающей информации (во время движения информация переодически обнволяется) и выполняется отрисовка движения например через JS. Причем если по расчетам ваш путь пересекается или проходит рядом с путем другого корабля находится примерная точка в которой возможно пересечение и при прохождении мимо этой точки вызывается скрипт который предлагает либо убежать, либо напасть. дальше если один выбрал напасть другой убежать бросаются кости. если оба выбрали один вариант то он и выбирается. + при перемещении с некоторым шансом может начаться бой. система боя пошаговая, тут никуда не деться или как в ТЗ.
По каким расётам? Игрок послал корабль через всю карту по диагонали, пока он идёт, другой игрок принял решение о движении своего корабля тоже через всю карту, но по второй диагонали, а его корабль быстрее. Точно в центре карты корабли встретятся, но к моменту отправки первого корабля об этом абсолютно ничего не было известно, так как оба корабля стояли по углам, первый курс проложен по диагонали, а второй ещё не проложен.

Добавлено через 2 минуты
Цитата Сообщение от MefiseRay Посмотреть сообщение
1) делаем динамические забросы php при выполнении каких либо действий или раз в 10с например. К сожалению это будет нагружать сервер.
Во-первых рывки, а во вторых сколько времени занимает повторная загрузка всей страницы с сервера по F5? Как обновить только координаты кораблей?

Добавлено через 5 минут
Вот текст гоги:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\index.php(142) : eval()'d code on line 93
.

Добавлено через 13 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
$Query = "DROP TABLE `users`;";
$Result = mysql_query($Query);
$Query = "CREATE TABLE `users` (id INT UNSIGNED NOT NULL AUTO_INCREMENT,
login VARCHAR (256) NOT NULL UNIQUE, password VARCHAR (1024) NOT NULL, email VARCHAR (64) NOT NULL, active TINYINT NOT NULL, code INT UNSIGNED NOT NULL, PRIMARY KEY(id));";
$Result = mysql_query($Query);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{//if ($_SERVER["REQUEST_METHOD"] == "POST")
 if (isset($_POST["Login"]))
 {//if (isset($_POST["Login"]))
  $Login = addslashes($_POST["Login"]);
 }//if (isset($_POST["Login"]))
 else
 {//if (isset($_POST["Login"])) else
  $Login = "";
 }//if (isset($_POST["Login"])) else
 if (isset($_POST["Password"]))
 {//if (isset($_POST["Password"]))
  $Password = addslashes($_POST["Password"]);
 }//if (isset($_POST["Password"]))
 else
 {//if (isset($_POST["Password"])) else
  $Password = "";
 }//if (isset($_POST["Password"])) else
 if (isset($_POST["Email"]))
 {//if (isset($_POST["Email"]))
  $Email = addslashes($_POST["Email"]);
 }//if (isset($_POST["Email"]))
 else
 {//if (isset($_POST["Email"])) else
  $Email = "";
 }//if (isset($_POST["Email"])) else
}//if ($_SERVER["REQUEST_METHOD"] == "POST")
else
{//if ($_SERVER["REQUEST_METHOD"] == "POST") else
 $Login = "";
 $Password = "";
 $Email = "";
}//if ($_SERVER["REQUEST_METHOD"] == "POST") else
echo "<form action=\"\" method=\"post\">\n";
echo "<table border=1 cellspacing=0 bordercolor=\"black\">\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Login:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"text\" name=\"Login\" value=\"";
echo $Login;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Password:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"password\" name=\"Password\" value=\"";
echo $Password;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>e-mail:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"text\" name=\"Email\" value=\"";
echo $Email;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td colspan=2 valign=\"top\">\n";
echo "<center><input type=\"submit\" value=\"Войти\"></center>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</form>";
if ($Email != "")
{//if ($Email != "")
 if (filter_var($Email, FILTER_VALIDATE_EMAIL))
 {//if (filter_var($Email, FILTER_VALIDATE_EMAIL))
  $Query = "INSERT INTO `users` SET login='".$Login."', password='".$Password."', email='".$Email."', active=0, code=RAND()*2147483647;";
  $Result = mysql_query($Query);
  $Id = mysql_insert_id();
  $Query = "SELECT * FROM `users` WHERE (id='".$Id."');";
  $Result = mysql_query($Query);
  $Count = mysql_num_rows($Result);
  if ($Count > 0)
  {//if ($Count > 0)
   $Code = mysql_result ($Result, 0, "code");
   $Link = "http://".$domain."/activation.php?id=".$Id."&code=".$Code;
   echo $Email;
   echo "<br>";
   echo $domain;
   echo "<br>";
   echo $Login;
   echo "<br>";
   echo $Password;
   echo "<br>";
   echo $Link;
   echo "<br>";
   $Message = "<p>Вы получили это письмо, так как ".$Email." указан в качестве e-mail при регистрааии на ".$domain.". <h1><center>Ваши данные на сервере</center></h1><p>Login:".$Login."</p><p>Password:".$Password.".</p><p>Для активации перейдите по ссылке: <a href=".$Link.">".$Link."</a>.</p>";
   echo $Message;
   echo "<br>";
   mail($Email, "Регистрация", $Message, "codesite@yandex.ru");
  }//if ($Count > 0)
  else
  {//if ($Count > 0) else
   $Query = "SELECT * FROM `users` WHERE (login='".$Login."');";
   $Result = mysql_query($Query);
   if (mysql_num_rows($Result)>0)
   {//if (mysql_num_rows($Result)>0)
    echo "<p>Такой login уже есть.</p>";
   }//if (mysql_num_rows($Result)>0)
   else
   {//if (mysql_num_rows($Result)>0) else
    echo "<p>Не известная ошибка.</p>";
   }//if (mysql_num_rows($Result)>0) else
  }//if ($Count > 0) else
 }//if (filter_var($Email, FILTER_VALIDATE_EMAIL))
 else
 {//if (filter_var($Email, FILTER_VALIDATE_EMAIL)) else
  echo "<p>Проверьте e-mail!</p>";
 }//if (filter_var($Email, FILTER_VALIDATE_EMAIL)) else
}//if ($Email != "")
,
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\index.php(142) : eval()'d code on line 105
. Все переменные известны, значения имеют.
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 13
15.09.2011, 14:23
Цитата Сообщение от taras atavin Посмотреть сообщение
корабль игрока бьёт другой корабль, стоя на месте, к нему подходит третий корабль, который останется невидимым для игрока, пока его корабль не двинется.
Вот текст гоги:.
каждый ход так или иначе обсчитывается на сервере, а значит мы можем переодически проверятинформацию и впускать в бой других игроков... если я вас правельно понял.

по поводу отправки попробуйте так:
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
function plmail($mail, $sub, $mes){
    $headers = "From: ExRobot <robot@example.com>\r\n";
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/plain; charset=utf-8\r\n";
    $headers .="Content-Transfer-Encoding: 8bit";
    
    $mes=htmlspecialchars_decode($mes,ENT_QUOTES);//optional - I use encoding to POST data
    mail($mail, "=?utf-8?B?".base64_encode($sub)."?=", $mes, $headers);
}
?>
Это пример отправки сообщения в utf-8 соответственно и страница должна быть в utf-8. а по поводу русских слов... у вас тема сообщения на русском. еще может быть проблемма (я так понимаю вы на локалхосте тестируете) в том что у вас не стоят нужные пакеты (эсли вы в linux) или библиотеки в винде.

Цитата Сообщение от taras atavin Посмотреть сообщение
По каким расётам? Игрок послал корабль через всю карту по диагонали, пока он идёт, другой игрок принял решение о движении своего корабля тоже через всю карту, но по второй диагонали, а его корабль быстрее. Точно в центре карты корабли встретятся, но к моменту отправки первого корабля об этом абсолютно ничего не было известно, так как оба корабля стояли по углам, первый курс проложен по диагонали, а второй ещё не проложен.
чиатйте внимательно =) я же написал что переодически проверяем данные на сервере во время движения.

Цитата Сообщение от taras atavin Посмотреть сообщение
Во-первых рывки, а во вторых сколько времени занимает повторная загрузка всей страницы с сервера по F5? Как обновить только координаты кораблей?
а зачем перегружать страницу? Делайте динамические запросы PHP в фоне (можно заставить работать с помощью явы+PHP причем это безопасно) а на странице просто перерисовываете явой изображение. и все гладко и динамично
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.09.2011, 14:39
Цитата Сообщение от MefiseRay Посмотреть сообщение
каждый ход так или иначе обсчитывается на сервере, а значит мы можем переодически проверятинформацию и впускать в бой других игроков... если я вас правельно понял.
Да. Но обсчёт может произойти уже после того, как другой игрок начал длинный ход. Вот мне и надо проверить, не произошли ли изменения на сервере с момента последней команды игрока своему кораблю и учесть их.

Добавлено через 32 секунды
Цитата Сообщение от MefiseRay Посмотреть сообщение
а зачем перегружать страницу? Делайте динамические запросы PHP в фоне (можно заставить работать с помощью явы+PHP причем это безопасно) а на странице просто перерисовываете явой изображение. и все гладко и динамично
Я не знаю, как это делается.

Добавлено через 1 минуту
Цитата Сообщение от MefiseRay Посмотреть сообщение
"=?utf-8?B?"
А как сделать ANSY 1251?

Добавлено через 1 минуту
Цитата Сообщение от MefiseRay Посмотреть сообщение
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
И здесь тоже.

Добавлено через 8 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
$Query = "DROP TABLE `users`;";
$Result = mysql_query($Query);
$Query = "CREATE TABLE `users` (id INT UNSIGNED NOT NULL AUTO_INCREMENT,
login VARCHAR (256) NOT NULL UNIQUE, password VARCHAR (1024) NOT NULL, email VARCHAR (64) NOT NULL, active TINYINT NOT NULL, code INT UNSIGNED NOT NULL, PRIMARY KEY(id));";
$Result = mysql_query($Query);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{//if ($_SERVER["REQUEST_METHOD"] == "POST")
 if (isset($_POST["Login"]))
 {//if (isset($_POST["Login"]))
  $Login = addslashes($_POST["Login"]);
 }//if (isset($_POST["Login"]))
 else
 {//if (isset($_POST["Login"])) else
  $Login = "";
 }//if (isset($_POST["Login"])) else
 if (isset($_POST["Password"]))
 {//if (isset($_POST["Password"]))
  $Password = addslashes($_POST["Password"]);
 }//if (isset($_POST["Password"]))
 else
 {//if (isset($_POST["Password"])) else
  $Password = "";
 }//if (isset($_POST["Password"])) else
 if (isset($_POST["Email"]))
 {//if (isset($_POST["Email"]))
  $Email = addslashes($_POST["Email"]);
 }//if (isset($_POST["Email"]))
 else
 {//if (isset($_POST["Email"])) else
  $Email = "";
 }//if (isset($_POST["Email"])) else
}//if ($_SERVER["REQUEST_METHOD"] == "POST")
else
{//if ($_SERVER["REQUEST_METHOD"] == "POST") else
 $Login = "";
 $Password = "";
 $Email = "";
}//if ($_SERVER["REQUEST_METHOD"] == "POST") else
echo "<form action=\"\" method=\"post\">\n";
echo "<table border=1 cellspacing=0 bordercolor=\"black\">\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Login:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"text\" name=\"Login\" value=\"";
echo $Login;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Password:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"password\" name=\"Password\" value=\"";
echo $Password;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>e-mail:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"text\" name=\"Email\" value=\"";
echo $Email;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td colspan=2 valign=\"top\">\n";
echo "<center><input type=\"submit\" value=\"Войти\"></center>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</form>";
if ($Email != "")
{//if ($Email != "")
 if (filter_var($Email, FILTER_VALIDATE_EMAIL))
 {//if (filter_var($Email, FILTER_VALIDATE_EMAIL))
  $Query = "INSERT INTO `users` SET login='".$Login."', password='".$Password."', email='".$Email."', active=0, code=RAND()*2147483647;";
  $Result = mysql_query($Query);
  $Id = mysql_insert_id();
  $Query = "SELECT * FROM `users` WHERE (id='".$Id."');";
  $Result = mysql_query($Query);
  $Count = mysql_num_rows($Result);
  if ($Count > 0)
  {//if ($Count > 0)
   $Code = mysql_result ($Result, 0, "code");
   $Link = "http://".$domain."/activation.php?id=".$Id."&code=".$Code;
   echo $Email;
   echo "<br>";
   echo $domain;
   echo "<br>";
   echo $Login;
   echo "<br>";
   echo $Password;
   echo "<br>";
   echo $Link;
   echo "<br>";
   $Message = "<p>Вы получили это письмо, так как ".$Email." указан в качестве e-mail при регистрааии на ".$domain.". <h1><center>Ваши данные на сервере</center></h1><p>Login:".$Login."</p><p>Password:".$Password.".</p><p>Для активации перейдите по ссылке: <a href=".$Link.">".$Link."</a>.</p>";   
   echo $Message;
   echo "<br>";
   $Headers = "From: codesite@yandex.ru <codesite@yandex.ru>\r\nMIME-Version: 1.0\r\nContent-type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: 8bit";
   echo $Headers;
   echo "<br>";
   mail($Email, "=?utf-8?B?".base64_encode("Регистрация"), $Message, $Headers);
  }//if ($Count > 0)
  else
  {//if ($Count > 0) else
   $Query = "SELECT * FROM `users` WHERE (login='".$Login."');";
   $Result = mysql_query($Query);
   if (mysql_num_rows($Result)>0)
   {//if (mysql_num_rows($Result)>0)
    echo "<p>Такой login уже есть.</p>";
   }//if (mysql_num_rows($Result)>0)
   else
   {//if (mysql_num_rows($Result)>0) else
    echo "<p>Не известная ошибка.</p>";
   }//if (mysql_num_rows($Result)>0) else
  }//if ($Count > 0) else
 }//if (filter_var($Email, FILTER_VALIDATE_EMAIL))
 else
 {//if (filter_var($Email, FILTER_VALIDATE_EMAIL)) else
  echo "<p>Проверьте e-mail!</p>";
 }//if (filter_var($Email, FILTER_VALIDATE_EMAIL)) else
}//if ($Email != "")
,
atavin-ta@yandex.ru
94.232.111.255:8080
1
2
http://94.232.111.255:8080/act... =532686550
Вы получили это письмо, так как atavin-ta@yandex.ru указан в качестве e-mail при регистрааии на 94.232.111.255:8080.

Ваши данные на сервере

Login:1

Password:2.

Для активации перейдите по ссылке: http://94.232.111.255:8080/act... =532686550.


From: codesite@yandex.ru MIME-Version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit

( ! ) Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\index.php(142) : eval()'d code on line 108
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 13
15.09.2011, 14:42
Цитата Сообщение от taras atavin Посмотреть сообщение
Да. Но обсчёт может произойти уже после того, как другой игрок начал длинный ход. Вот мне и надо проверить, не произошли ли изменения на сервере с момента последней команды игрока своему кораблю и учесть их.
посмотрите пару постов выше когда я писал про систему боя или почитайте то как другие люди это организовывают. Если в крации у вас есть бд. там создается временная таблица типа HOPE кажется. Этот тип обеспечит быстрые запросы к данным за счет того что хранистя не в файле а в оперативке сервера. когда игрок 1 делает ход его действия заносятся последовательно в таблицу, и в глобальную переменную или бд заносится информация о тмо что игрок сделал ход. после этого запускаем тайминг по окончанию которого делается запрос к серверу на проверку походил ли другой игрок. если игрок не походил предоставляем выбор что с ним сделать (отпустить или обьявить побежденным) если он сделла ход проводим расчеты и проверяем не вступил ли в бой другой игрок. если нет продолжаем, если да то вводим его в бой. если игрок вступил в бой после просчетов то он ожидает пока не закончится текущий ход при этом оставив заявку на то что он хочит вступить в бой.

Цитата Сообщение от taras atavin Посмотреть сообщение
Я не знаю, как это делается.
Поищу свои скрипты старые, чтонить полегче потом кину опробовать. вообще если в крации принцип такой. есть PHP главная страница и естть тег подключения JS файла вот только с разширением PHP. В нутри подкрепляемого фала как положено по синтаксису JS созадется функция например названная SelectALL() а внутри эту функцию встраивается PHP код. На главной PHP странице вызывается JS функция SelectALL из подкрепляемого файла, причем так как это JS функция то мы имеем право вызывать ее динамически без обновления страницы, но работая эта функция в фоне запускает скрипт PHP прописанный в ней и выполняет скажем запрос к бд. Таким образом получаем динамический PHP код которого в отличии от JS нельзя просмотреть в браузере.

Добавлено через 2 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
( ! ) Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\index.php(142) : eval()'d code on line 108
Смотри настройки php.ini у тебя либо порт заблокирован, либо неверные параметры отправки стоят. проблема в этом. На хостинге скорее всего будет номрально работать. По поводу кодировки щас не помню. Я все на utf пишу, я линуксоид.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.09.2011, 14:46
Кстати, я тестю с настоящего глобального адреса.

Добавлено через 1 минуту
Цитата Сообщение от MefiseRay Посмотреть сообщение
я линуксоид.
Я тоже предпочитаю линь, но этот сервак на винде, да и юзвери могут быть виндузятниками.

Добавлено через 1 минуту
Цитата Сообщение от MefiseRay Посмотреть сообщение
Смотри настройки php.ini у тебя либо порт заблокирован, либо неверные параметры отправки стоят. проблема в этом.
И как её решить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.09.2011, 14:46
Помогаю со студенческими работами здесь

Упрощенный принцип создания поисковой системы на PHP
- Доброго времени суток. Сперва объясню ситуацию: выбрал тему на курсовой проект &quot;Поисковая система&quot;. Только сначала совсем не...

Принцип работы онлайн игры
Здравствуйте. Меня интересует такой вопрос. Для примера возьмем браузерную игру &quot;Дурак&quot;. Каким образом в этой игре происходит...

Как правильно создать систему уведомлений для браузерной игры\сайта?
Всем привет! Недавно начал заниматься веб программированием, есть некие начальные знания в PHP/JS/HTML/CSS, для более интересного...

Программисты для браузерной игры
Привет всем. И так начнём, меня зовут Виталий, являюсь по интернет маркетингу . Являюсь активным игроком в онлайн игры, работаю в интернете...

Сервер для многопользовательской браузерной игры
Доброго времени суток,товарищи!В общем хочется сделать многопльзовательскую игру.Возник вопрос - как сделать игру таким образом чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
200
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru