Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Сетевая игра или что вроде этого (http://www.flasher.ru/forum/showthread.php?t=124723)

OsamuTedzuki 07.05.2009 00:28

Сетевая игра или что вроде этого
 
Здрасте, сильно не ругайте если вдруг не там тему создал или уже было(искал не нашел)...
появилась необходимость сделать браузерную игру, не знаю с чего начать: java script или action script, или все вместе... нужно реализовать следующее:

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

2morrowMan 07.05.2009 01:14

Запрограммировать.

IDimitry 07.05.2009 03:24

золотые слова

читать! много читать!

etc 07.05.2009 07:45

OsamuTedzuki, использовать сокеты, например.
Предвидя «а можно подробнее?», отвечаю «В гугле и википедии.».

Michaael 07.05.2009 11:25

да можно и простым ПХП что бы не мучатся сильно.... раз в 20-30 секунд отправлять запрос на то, создан ли бой с тобой или нет...
PHP код:

DEFINE('TIME_USER',60);              // Время активности пользователя (сек.)
  
DEFINE('TIME_BATTLE',60);            // Время жизни непринятого сражения (сек.)

  // Подгружаем модуль с функциями
  
require_once('func.php');

  
check_auth();                        // Проверяем авторизан-ли пользователь
  
db_open();                           // Открываем соединение с базой данных

  
$time_start getmicrotime();        // Вычисляем время, чтобы показать время генерации странички

  // Удаляем устаревшие записи о сражениях, время жизни которых истекло
  
$dtime time() - TIME_BATTLE;
  
//db_query('DELETE FROM game_battle WHERE lasttime < '.AP.$dtime.AP.';');

  // Получаем всю информацию о пользователе
  
db_query('SELECT * FROM game_user WHERE pass='.AP.$my['pass'].AP.' LIMIT 1;');
  
$my db_fetch();
  if(empty(
$my)){goto_error('Пользователь не найден в базе!');}

  
// Обновляем время последнего посещения для пользователя
  
db_query('UPDATE game_user SET lasttime='.AP.time().AP.' WHERE pass='.AP.$my['pass'].AP.' LIMIT 1;');

  
 
//преход если был принят бой другим игроком
    
    
db_query('SELECT * FROM game_battle WHERE (user1='.$my['id'].' OR user2='.$my['id'].') LIMIT 1;');
    
$battle db_fetch();
    if(!empty(
$battle))
      {
//    db_query('SELECT * FROM game_user WHERE id='.$battle['user1'].' LIMIT 1;');
//    $battle['user1'] = db_fetch();

 //    Получаем доп. информацию о втором игроке
 //   db_query('SELECT * FROM game_user WHERE id='.$battle['user2'].' LIMIT 1;');
 //   $battle['user2'] = db_fetch();
 
 
    
if(($battle['user1'] == $my['id'])&($battle['user2']!=0))
    {
    if(
$battle['user1enter']==0)
    {
    
db_query('DELETE FROM Hend WHERE id='.$my['id'].'');
     
db_query('UPDATE game_battle SET user1enter="1" WHERE user1='.$my['id'].' LIMIT 1;');
    
redirect('battle.php');
    }else
    {
redirect('battle.php');
    }
   }
    if((
$battle['user2'] == $my['id'])&($battle['user1']!=0))
    {
    if(
$battle['user2enter']==0)
    {
     
db_query('UPDATE game_battle SET user2enter="1" WHERE user2='.$my['id'].' LIMIT 1;');
    
redirect('battle.php');
    }else
    {
redirect('battle.php');}}
    }


// Если пользователь создал сражение
  
if(isset($_GET['add_battle']))
  {
    if(
$my['health'] > 0// Нельзя открыть битву, если нет здоровья
    
{
      
// Добавляем в таблицу запись о новой битве
     
db_query('INSERT INTO game_battle VALUES("auto_increment",'.AP.$my['id'].AP.',"0",'.AP.time().AP.',"0","0");');
      
redirect('game.php'); // Обновим страничку
    
}
  }
 
// Если пользователь принял чье-то сражение
  
if(isset($_GET['get_battle']))
  {
    
// Обновляем запись о сражении
    
    
db_query('UPDATE game_battle SET user2='.$my['id'].' WHERE id='.$_GET['get_battle'].' LIMIT 1;');
    
db_query('UPDATE game_battle SET user2enter="1" WHERE id='.$my['id'].' LIMIT 1;');
    
redirect('battle.php'); // Переходим в сражение
  
}

 
// Получаем список сражений
  
$dtime time() - TIME_BATTLE;
  
$cnt 0;
  
db_query('SELECT * FROM game_battle;');
  while(
$battle db_fetch())
  {
    
$cnt++;

    
// Получаем доп. информацию о первом игроке
    
db_query('SELECT * FROM game_user WHERE id='.$battle['user1'].' LIMIT 1;');
    
$battle['user1'] = db_fetch();

    
// Получаем доп. информацию о втором игроке
    
db_query('SELECT * FROM game_user WHERE id='.$battle['user2'].' LIMIT 1;');
    
$battle['user2'] = db_fetch();
    
    
    
// Выясняем, принят бой или нет
    
if($battle['user2'] == 0)
    {
      
$dtime TIME_BATTLE-(time()-$battle['lasttime']);
      echo 
$cnt.' - Бой открыт: ';
      echo 
$battle['user1']['name'].' (осталось '.$dtime.' сек.)';
      if(
$battle['user1']['id'] != $my['id'])
      {
        
// Нельзя принять бой, который создал ты сам
        
echo ' - <a href="game.php?get_battle='.$battle['id'].'">Принять бой</a> <br>';
      }
    }else{
      echo 
$cnt.' - Бой начался: ';
      echo 
$battle['user1']['name'].' vs. ';
      echo 
$battle['user2']['name'].'<br>';
    }

  } 

ну и тд....

OsamuTedzuki 07.05.2009 17:31

всем спасибо =) буду пробывать


Часовой пояс GMT +4, время: 12:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.